34 KiB
34 KiB
| 1 | case_id | batch_a | batch_b | m | n | k | dtype_a | dtype_b | dtype_c | trans_a | trans_b | has_bias | out_nd | deterministic_level | plan_case_id | plan_branch | plan_npu | plan_op | plan_used_core_num | plan_split_b | plan_m_cnt | plan_n_cnt | plan_grid_k | plan_core_map | plan_b_core | plan_merge_b0 | plan_single_core_m | plan_single_core_n | plan_single_core_k | plan_k_l1 | plan_b_l1 | plan_l1_form | plan_base_m | plan_base_n | plan_base_k | plan_l2_policy_in | plan_l2_policy_out | plan_swizzle_w | plan_workspace_bytes | plan_tail_strategy | plan_tail_m_cnt | plan_tail_n_cnt | plan_tail_k_cnt | plan_tail_m_main | plan_tail_n_main | plan_tail_block_cnt | plan_tail_wave_num | plan_fixpipe_unitflag | plan_out_dtype_bytes | plan_note | gm_read_bytes | l2_read_bytes | t_mte2_gm | t_mte2_l2 | t_mte2 | dma_cmd_count | t_dma_cmd | cube_flops | t_mmad | fixpipe_bytes | t_fixpipe | t_reduce | t_steady | t_drain | t_total | bottleneck | feasible | violations | bound_type | advice |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | to_matmul_demo | 1 | 1 | 2048 | 2048 | 2048 | bf16 | bf16 | bf16 | False | False | False | True | 0 | to_matmul_demo | 转Matmul | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 0 | 0 | 1 | 折叠为 Matmul [2048,2048]x[2048,2048], 复用 Matmul 切分体系 | 0 | 1 | 0 | 0 | 2048 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 转Matmul后由 Matmul 体系决定 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | BatchB=1免费折叠: 左矩阵 [1,2048,2048] 视图折叠为 [2048,2048], 零重排零 split | 16777216 | 0.0 | 1.048576e-05 | 0.0 | 1.048576e-05 | 0.0 | 0.0 | 17179869184.0 | 3.534952506995885e-05 | 8388608 | 5.24288e-06 | 0.0 | 3.534952506995885e-05 | 0.0 | 3.534952506995885e-05 | MMAD | True | 计算Bound | 瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除 | ||||
| 3 | special_k0_demo | 128 | 128 | 256 | 256 | 0 | bf16 | bf16 | bf16 | False | False | False | True | 0 | special_k0_demo | 特殊分支 | Ascend950PR | batch_mat_mul_v3 | 64 | 1 | 1 | 1 | 1 | AIV 核间按行均分 (无 Cube tile 概念) | 0 | 1 | 0 | 0 | 0 | 0 | 1 | UB驻留(AIV) | 0 | 0 | 0 | allocate | direct_gm | 0 | 0 | 不涉及(AIV逐元素) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | False | 2 | K=0纯写值: 无任何计算, C=bias 或 0, 纯 AIV 写值; 按行均分到 AIV 核 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 16777216 | 1.048576e-05 | 0.0 | 1.048576e-05 | 0.0 | 1.048576e-05 | FIXPIPE | True | 写出Bound | 瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略 | |
| 4 | special_k1_demo | 128 | 128 | 256 | 256 | 1 | bf16 | bf16 | bf16 | False | False | False | True | 0 | special_k1_demo | 特殊分支 | Ascend950PR | batch_mat_mul_v3 | 64 | 1 | 1 | 1 | 1 | AIV 核间按行均分 (无 Cube tile 概念) | 0 | 1 | 0 | 0 | 1 | 0 | 1 | UB驻留(AIV) UB乒乓 | 0 | 0 | 0 | allocate | direct_gm | 0 | 0 | 不涉及(AIV逐元素) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | False | 2 | K=1逐元素乘: 退化为 C=A⊙B 无累加深度, Cube 16x16x16 粒度浪费 15/16; 走 AIV 通路 GM->UB->Mul->GM, UB乒乓 (B>=2*AIV 双batch乒乓流水) | 131072 | 0.0 | 8.192e-08 | 0.0 | 8.192e-08 | 0.0 | 0.0 | 8388608.0 | 6.206060606060606e-07 | 16777216 | 1.048576e-05 | 0.0 | 1.048576e-05 | 0.0 | 1.048576e-05 | FIXPIPE | True | 写出Bound | 瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略 | |
| 5 | merge_demo_k_trunc | 2048 | 2048 | 32 | 32 | 256 | bf16 | bf16 | bf16 | False | False | False | True | 0 | merge_demo_k_trunc | MergeBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B均分(核间零重复读零依赖) | 64 | 4 | 128 | 128 | 256 | 256 | 8 | 合并驻留 | 128 | 128 | 128 | allocate(GM->L1随路驻留L2) | direct_gm | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | b0=4 (L0C上限5.7/算存比上限19.0/b_core=64); K截断; 合并后单次DMA搬入 A'[128,256]+B'[256,128] | 2097152 | 0.0 | 4.194304e-05 | 0.0 | 4.2743039999999997e-05 | 16.0 | 8.000000000000001e-07 | 134217728.0 | 8.837381267489712e-06 | 131072 | 2.62144e-06 | 0.0 | 4.2743039999999997e-05 | 3.0192408230452674e-07 | 4.3044964082304525e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 6 | merge_iter_arbitrate | 128 | 128 | 64 | 64 | 512 | bf16 | bf16 | bf16 | False | False | False | True | 0 | merge_iter_arbitrate | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 4 | 1 | 64 | 64 | 512 | 512 | 2 | b_双batch乒乓 | 64 | 64 | 256 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 双batch乒乓: 2*(MK+KN)*dtype=256KB <= L1 | 524288 | 0.0 | 1.048576e-05 | 0.0 | 1.0685759999999999e-05 | 4 | 2.0000000000000002e-07 | 16777216.0 | 1.104672658436214e-06 | 32768 | 6.5536e-07 | 0.0 | 1.0685759999999999e-05 | 4.400081646090535e-07 | 1.1125768164609053e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 7 | iter_demo_form_b | 128 | 128 | 64 | 64 | 256 | bf16 | bf16 | bf16 | False | False | False | True | 0 | iter_demo_form_b | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 4 | 1 | 64 | 64 | 256 | 256 | 2 | b_双batch乒乓 | 64 | 64 | 256 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 双batch乒乓: 2*(MK+KN)*dtype=128KB <= L1 | 262144 | 0.0 | 5.24288e-06 | 0.0 | 5.4428799999999995e-06 | 4 | 2.0000000000000002e-07 | 8388608.0 | 5.52336329218107e-07 | 32768 | 6.5536e-07 | 0.0 | 5.4428799999999995e-06 | 3.0192408230452674e-07 | 5.744804082304526e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 8 | iter_demo_form_d | 64 | 64 | 64 | 64 | 8192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | iter_demo_form_d | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 2 | 1 | 64 | 64 | 8192 | 1024 | 1 | d_两侧都切K | 64 | 64 | 256 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 两侧都切K: k_L1=1024, K段成对流水, batch边界天然无缝; dValueA=2048B/dValueB=128B | 4194304 | 0.0 | 8.388608e-05 | 0.0 | 8.468608e-05 | 16 | 8.000000000000001e-07 | 134217728.0 | 8.837381267489712e-06 | 16384 | 3.2768e-07 | 0.0 | 8.468608e-05 | 7.16176329218107e-07 | 8.540225632921811e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 9 | streamk_demo | 4 | 4 | 128 | 128 | 10240 | bf16 | bf16 | bf16 | False | False | False | True | 0 | streamk_demo | StreamK | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 1 | 1 | 32 | B/M/N切出4块, 每块32核切K归约 (归约组内核c负责K段[c*K/32,(c+1)*K/32)) | 1 | 1 | 128 | 128 | 320 | 256 | 1 | K段标准分块流水 | 128 | 128 | 64 | allocate(部分和驻留L2) | resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换) | 0 | 8388608 | grid_K=32路切K+归约 | 1 | 1 | 32 | 0 | 0 | 0 | 0 | True | 4 | P=1.00, grid_K=32, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终 | 327680.0 | 0.0 | 6.5536e-06 | 0.0 | 6.5536e-06 | 0.0 | 0.0 | 41943040.0 | 2.761681646090535e-06 | 0.0 | 0.0 | 3.4067453613053613e-06 | 6.5536e-06 | 3.4067453613053613e-06 | 9.960345361305361e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 10 | asw_demo_full | 2 | 2 | 8192 | 8192 | 1024 | bf16 | bf16 | bf16 | False | False | False | True | 0 | asw_demo_full | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 47 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 1024 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | 方案B | 52 | 52 | 1 | 52 | 52 | 2 | 139 | True | 2 | L2场景B_输入驻留输出直写GM, r_in=1.00; 尾轮: 周长型主导, rho=0.06<rho_dv=0.53, A1b被dValue卡死, 方案B反超 | 67108864.0 | 0.0 | 4.194304e-05 | 0.0 | 4.194304e-05 | 0.0 | 0.0 | 274877906944.0 | 0.0005655924011193416 | 268435456 | 0.00016777216 | 0.0 | 0.0005655924011193416 | 0.0 | 0.0005655924011193416 | MMAD | True | 计算Bound | 瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除 | |
| 11 | asw_demo_reduce_core | 16 | 16 | 256 | 256 | 128 | bf16 | bf16 | bf16 | False | False | False | True | 0 | asw_demo_reduce_core | ASW_Basic_降核 | Ascend950PR | batch_mat_mul_v3 | 16 | 1 | 1 | 1 | 1 | 降核: 只用16核, 每核一个L0C满载输出块, 其余核闲置 | 0 | 1 | 256 | 256 | 128 | 128 | 1 | 标准核内流水 | 256 | 256 | 64 | allocate | direct_gm | 0 | 0 | 不涉及(每核一块无尾轮) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | P=16.00<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢) | 2097152.0 | 0.0 | 2.62144e-06 | 0.0 | 2.62144e-06 | 0.0 | 0.0 | 268435456.0 | 1.104672658436214e-06 | 2097152 | 2.62144e-06 | 0.0 | 2.62144e-06 | 0.0 | 2.62144e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 12 | b4_m1_n128_k256 | 4 | 4 | 1 | 128 | 256 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b4_m1_n128_k256 | ASW_Basic_降核 | Ascend950PR | batch_mat_mul_v3 | 1 | 1 | 1 | 1 | 1 | 降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置 | 0 | 1 | 1 | 128 | 256 | 256 | 1 | 标准核内流水 | 1 | 128 | 128 | allocate | direct_gm | 0 | 0 | 不涉及(每核一块无尾轮) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | P=0.01<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢) | 264192.0 | 0.0 | 5.28384e-06 | 0.0 | 5.28384e-06 | 0.0 | 0.0 | 262144.0 | 1.7260510288065844e-08 | 1024 | 2.048e-08 | 0.0 | 5.28384e-06 | 0.0 | 5.28384e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 13 | b8_m2_n192_k128 | 8 | 8 | 2 | 192 | 128 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b8_m2_n192_k128 | ASW_Basic_降核 | Ascend950PR | batch_mat_mul_v3 | 1 | 1 | 1 | 1 | 1 | 降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置 | 0 | 1 | 2 | 192 | 128 | 128 | 1 | 标准核内流水 | 2 | 192 | 80 | allocate | direct_gm | 0 | 0 | 不涉及(每核一块无尾轮) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | P=0.05<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢) | 397312.0 | 0.0 | 7.94624e-06 | 0.0 | 7.94624e-06 | 0.0 | 0.0 | 786432.0 | 5.178153086419753e-08 | 6144 | 1.2288e-07 | 0.0 | 7.94624e-06 | 0.0 | 7.94624e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 14 | b16_m4_n256_k192 | 16 | 16 | 4 | 256 | 192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b16_m4_n256_k192 | ASW_Basic_降核 | Ascend950PR | batch_mat_mul_v3 | 1 | 1 | 1 | 1 | 1 | 降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置 | 0 | 1 | 4 | 256 | 192 | 192 | 1 | 标准核内流水 | 4 | 256 | 64 | allocate | direct_gm | 0 | 0 | 不涉及(每核一块无尾轮) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | P=0.25<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢) | 1597440.0 | 0.0 | 3.19488e-05 | 0.0 | 3.19488e-05 | 0.0 | 0.0 | 6291456.0 | 4.1425224691358024e-07 | 32768 | 6.5536e-07 | 0.0 | 3.19488e-05 | 0.0 | 3.19488e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 15 | b32_m8_n128_k256 | 32 | 32 | 8 | 128 | 256 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m8_n128_k256 | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 1 | 1 | 8 | 128 | 256 | 256 | 1 | a_单batch全驻留 | 8 | 128 | 128 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 单batch全驻留: (MK+KN)*dtype=68KB <= L1 | 69632 | 0.0 | 1.39264e-06 | 0.0 | 1.44264e-06 | 1 | 5.0000000000000004e-08 | 524288.0 | 3.452102057613169e-08 | 2048 | 4.096e-08 | 0.0 | 1.44264e-06 | 7.548102057613169e-08 | 1.5181210205761316e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 16 | b64_m16_n256_k512 | 64 | 64 | 16 | 256 | 512 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b64_m16_n256_k512 | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 2 | 1 | 16 | 256 | 512 | 240 | 1 | c_一侧驻留+对侧切K | 16 | 256 | 64 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 一侧驻留(A)+对侧切K: A驻留16KB, 预算L1/2, k_L1=240, dValueA=480B/dValueB=512B | 557056 | 0.0 | 1.56672e-05 | 0.0 | 1.5967200000000002e-05 | 6 | 3.0000000000000004e-07 | 8388608.0 | 5.52336329218107e-07 | 16384 | 3.2768e-07 | 0.0 | 1.5967200000000002e-05 | 2.932938271604938e-07 | 1.6260493827160496e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 17 | b128_m8_n192_k256 | 128 | 128 | 8 | 192 | 256 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b128_m8_n192_k256 | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 4 | 1 | 8 | 192 | 256 | 256 | 2 | b_双batch乒乓 | 8 | 192 | 80 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 双batch乒乓: 2*(MK+KN)*dtype=200KB <= L1 | 409600 | 0.0 | 8.192e-06 | 0.0 | 8.392e-06 | 4 | 2.0000000000000002e-07 | 3145728.0 | 2.0712612345679012e-07 | 12288 | 2.4576e-07 | 0.0 | 8.392e-06 | 1.1322153086419754e-07 | 8.505221530864198e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 18 | b32_m16_n8192_k7168 | 32 | 32 | 16 | 8192 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m16_n8192_k7168 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 1 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 7168 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 47 | True | 2 | L2场景C_输入超L2分组执行, r_in=1.09; 尾轮: r=0 无尾轮 | 4103077888.0000005 | 0.0 | 0.0025644236800000005 | 0.0 | 0.0025644236800000005 | 0.0 | 0.0 | 60129542144.0 | 0.00012372333774485596 | 8388608 | 5.24288e-06 | 0.0 | 0.0025644236800000005 | 0.0 | 0.0025644236800000005 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 19 | b4_m1_n8192_k8192 | 4 | 4 | 1 | 8192 | 8192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b4_m1_n8192_k8192 | StreamK | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 1 | 1 | 32 | B/M/N切出4块, 每块32核切K归约 (归约组内核c负责K段[c*K/32,(c+1)*K/32)) | 1 | 1 | 1 | 8192 | 256 | 256 | 1 | K段标准分块流水 | 1 | 128 | 64 | allocate(部分和驻留L2) | resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换) | 0 | 4194304 | grid_K=32路切K+归约 | 1 | 1 | 32 | 0 | 0 | 0 | 0 | True | 4 | P=0.50, grid_K=32, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终 | 262144.0 | 0.0 | 5.24288e-06 | 0.0 | 5.24288e-06 | 0.0 | 0.0 | 33554432.0 | 2.209345316872428e-06 | 0.0 | 0.0 | 3.4067453613053613e-06 | 5.24288e-06 | 3.4067453613053613e-06 | 8.64962536130536e-06 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 20 | b16_m2_n4096_k7168 | 16 | 16 | 2 | 4096 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b16_m2_n4096_k7168 | StreamK | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 1 | 1 | 16 | B/M/N切出16块, 每块16核切K归约 (归约组内核c负责K段[c*K/16,(c+1)*K/16)) | 1 | 1 | 2 | 4096 | 448 | 256 | 1 | K段标准分块流水 | 2 | 128 | 64 | allocate(部分和驻留L2) | resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换) | 0 | 8388608 | grid_K=16路切K+归约 | 1 | 1 | 16 | 0 | 0 | 0 | 0 | True | 4 | P=2.00, grid_K=16, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终 | 458752.0 | 0.0 | 9.17504e-06 | 0.0 | 9.17504e-06 | 0.0 | 0.0 | 58720256.0 | 3.866354304526749e-06 | 0.0 | 0.0 | 1.7159757575757577e-06 | 9.17504e-06 | 1.7159757575757577e-06 | 1.0891015757575759e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 21 | b32_m64_n64_k7168 | 32 | 32 | 64 | 64 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m64_n64_k7168 | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 1 | 1 | 64 | 64 | 7168 | 1024 | 1 | d_两侧都切K | 64 | 64 | 256 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 两侧都切K: k_L1=1024, K段成对流水, batch边界天然无缝; dValueA=2048B/dValueB=128B | 1835008 | 0.0 | 3.6700159999999995e-05 | 0.0 | 3.705016e-05 | 7 | 3.5000000000000004e-07 | 58720256.0 | 3.866354304526749e-06 | 8192 | 1.6384e-07 | 0.0 | 3.705016e-05 | 7.16176329218107e-07 | 3.77663363292181e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 22 | b64_m1024_n1024_k7168 | 64 | 64 | 1024 | 1024 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b64_m1024_n1024_k7168 | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 2 | 1 | 1024 | 1024 | 7168 | 64 | 1 | d_两侧都切K | 176 | 176 | 64 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 两侧都切K: k_L1=64, K段成对流水, batch边界天然无缝; dValueA=128B/dValueB=2048B | 58720256 | 0.0 | 0.0011744051199999998 | 0.0 | 0.00118560512 | 224 | 1.1200000000000001e-05 | 30064771072.0 | 0.0019795734039176954 | 4194304 | 8.388608e-05 | 0.0 | 0.0019795734039176954 | 5.078042126748971e-05 | 0.0020303538251851853 | MMAD | True | 计算Bound | 瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除 | |
| 23 | b128_m2048_n2048_k1536 | 128 | 128 | 2048 | 2048 | 1536 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b128_m2048_n2048_k1536 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 12 | 12 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 1536 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 576 | True | 2 | L2场景C_输入超L2分组执行, r_in=12.00; 尾轮: r=0 无尾轮 | 19327352832.0 | 0.0 | 0.01207959552 | 0.0 | 0.01207959552 | 0.0 | 0.0 | 1649267441664.0 | 0.0033935544067160493 | 1073741824 | 0.00067108864 | 0.0 | 0.01207959552 | 0.0 | 0.01207959552 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 24 | b64_m1024_n8192_k2048 | 64 | 64 | 1024 | 8192 | 2048 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b64_m1024_n8192_k2048 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 6 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 2048 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 564 | True | 2 | L2场景C_输入超L2分组执行, r_in=10.56; 尾轮: r=0 无尾轮 | 25501368320.0 | 0.0 | 0.0159383552 | 0.0 | 0.0159383552 | 0.0 | 0.0 | 2199023255552.0 | 0.004524739208954733 | 1073741824 | 0.00067108864 | 0.0 | 0.0159383552 | 0.0 | 0.0159383552 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 25 | b32_m1024_n1024_k512 | 32 | 32 | 1024 | 1024 | 512 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m1024_n1024_k512 | IterBatch | Ascend950PR | batch_mat_mul_v3 | 32 | 32 | 1 | 1 | 1 | 切B轮转分配(核间零重复读零依赖) | 1 | 1 | 1024 | 1024 | 512 | 64 | 1 | d_两侧都切K | 176 | 176 | 64 | allocate(GM->L1随路驻留L2) | direct_gm(输出仅写一次,直写GM不占L2) | 0 | 0 | 不涉及(核内不切M/N) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | True | 2 | 两侧都切K: k_L1=64, K段成对流水, batch边界天然无缝; dValueA=128B/dValueB=2048B | 2097152 | 0.0 | 4.194304e-05 | 0.0 | 4.234304e-05 | 8 | 4.0000000000000003e-07 | 1073741824.0 | 7.06990501399177e-05 | 2097152 | 4.194304e-05 | 0.0 | 7.06990501399177e-05 | 5.078042126748971e-05 | 0.0001214794714074074 | MMAD | True | 计算Bound | 瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除 | |
| 26 | b128_m4096_n4096_k8192 | 128 | 128 | 4096 | 4096 | 8192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b128_m4096_n4096_k8192 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 24 | 24 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 8192 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 2304 | True | 2 | L2场景C_输入超L2分组执行, r_in=24.00; 尾轮: r=0 无尾轮 | 412316860416.0 | 0.0 | 0.25769803776 | 0.0 | 0.25769803776 | 0.0 | 0.0 | 35184372088832.0 | 0.07239582734327572 | 4294967296 | 0.00268435456 | 0.0 | 0.25769803776 | 0.0 | 0.25769803776 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 27 | b32_m8192_n4096_k7168 | 32 | 32 | 8192 | 4096 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m8192_n4096_k7168 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 47 | 24 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 7168 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 1128 | True | 2 | L2场景C_输入超L2分组执行, r_in=31.67; 尾轮: r=0 无尾轮 | 178509578240.0 | 0.0 | 0.1115684864 | 0.0 | 0.1115684864 | 0.0 | 0.0 | 15393162788864.0 | 0.031673174462683126 | 2147483648 | 0.00134217728 | 0.0 | 0.1115684864 | 0.0 | 0.1115684864 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 28 | b32_m2048_n2048_k8192 | 32 | 32 | 2048 | 2048 | 8192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m2048_n2048_k8192 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 12 | 12 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 8192 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 144 | True | 2 | L2场景C_输入超L2分组执行, r_in=12.00; 尾轮: r=0 无尾轮 | 25769803776.0 | 0.0 | 0.01610612736 | 0.0 | 0.01610612736 | 0.0 | 0.0 | 2199023255552.0 | 0.004524739208954733 | 268435456 | 0.00016777216 | 0.0 | 0.01610612736 | 0.0 | 0.01610612736 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 29 | b64_m4096_n2048_k128 | 64 | 64 | 4096 | 2048 | 128 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b64_m4096_n2048_k128 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 24 | 12 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 128 | 128 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 576 | True | 2 | L2场景B_输入驻留输出直写GM, r_in=1.00; 尾轮: r=0 无尾轮 | 100663296.0 | 0.0 | 6.291456e-05 | 0.0 | 6.291456e-05 | 0.0 | 0.0 | 137438953472.0 | 0.0002827962005596708 | 1073741824 | 0.00067108864 | 0.0 | 0.00067108864 | 0.0 | 0.00067108864 | FIXPIPE | True | 写出Bound | 瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略 | |
| 30 | b16_m1024_n1024_k8192 | 16 | 16 | 1024 | 1024 | 8192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b16_m1024_n1024_k8192 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 6 | 6 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 8192 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 18 | True | 2 | L2场景C_输入超L2分组执行, r_in=6.00; 尾轮: r=0 无尾轮 | 3221225472.0 | 0.0 | 0.00201326592 | 0.0 | 0.00201326592 | 0.0 | 0.0 | 274877906944.0 | 0.0005655924011193416 | 33554432 | 2.097152e-05 | 0.0 | 0.00201326592 | 0.0 | 0.00201326592 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 31 | b4_m32768_n128_k128 | 4 | 4 | 32768 | 128 | 128 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b4_m32768_n128_k128 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 187 | 1 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 128 | 128 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | resident(输出驻留L2异步回写) | 4 | 0 | 方案B | 205 | 1 | 1 | 205 | 1 | 12 | 24 | True | 2 | L2场景A_全驻留, r_in=1.00; 尾轮: 面积型主导, A1b与方案B严格打平(T=28.96us), 选方案B工程简洁 (一套tile) | 33685504.0 | 0.0 | 2.105344e-05 | 0.0 | 2.105344e-05 | 0.0 | 0.0 | 4294967296.0 | 8.837381267489712e-06 | 33554432 | 6.452775384615385e-06 | 0.0 | 2.105344e-05 | 0.0 | 2.105344e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 32 | b8_m32768_n2048_k512 | 8 | 8 | 32768 | 2048 | 512 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b8_m32768_n2048_k512 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 187 | 12 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 512 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 561 | True | 2 | L2场景C_输入超L2分组执行, r_in=1.24; 尾轮: r=0 无尾轮 | 352321536.0 | 0.0 | 0.00022020096 | 0.0 | 0.00022020096 | 0.0 | 0.0 | 549755813888.0 | 0.0011311848022386832 | 1073741824 | 0.00067108864 | 0.0 | 0.0011311848022386832 | 0.0 | 0.0011311848022386832 | MMAD | True | 计算Bound | 瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除 | |
| 33 | b4_m131072_n128_k128 | 4 | 4 | 131072 | 128 | 128 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b4_m131072_n128_k128 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 745 | 1 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 128 | 128 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | 方案B | 820 | 1 | 1 | 820 | 1 | 4 | 94 | True | 2 | L2场景C_输入超L2分组执行, r_in=1.00; 尾轮: 面积型主导, A1b与方案B严格打平(T=115.39us), 选方案B工程简洁 (一套tile) | 134610944.0 | 0.0 | 8.413184e-05 | 0.0 | 8.413184e-05 | 0.0 | 0.0 | 17179869184.0 | 3.534952506995885e-05 | 134217728 | 8.388608e-05 | 0.0 | 8.413184e-05 | 0.0 | 8.413184e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 34 | b8_m131072_n1024_k256 | 8 | 8 | 131072 | 1024 | 256 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b8_m131072_n1024_k256 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 745 | 6 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 256 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | 方案B | 820 | 7 | 1 | 820 | 7 | 16 | 1118 | True | 2 | L2场景C_输入超L2分组执行, r_in=1.06; 尾轮: 面积型主导, A1b与方案B严格打平(T=1384.63us), 选方案B工程简洁 (一套tile) | 574619648.0 | 0.0 | 0.00035913728 | 0.0 | 0.00035913728 | 0.0 | 0.0 | 549755813888.0 | 0.0011311848022386832 | 2147483648 | 0.00134217728 | 0.0 | 0.00134217728 | 0.0 | 0.00134217728 | FIXPIPE | True | 写出Bound | 瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略 | |
| 35 | b16_m32768_n8192_k7168 | 16 | 16 | 32768 | 8192 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b16_m32768_n8192_k7168 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 187 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 7168 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | 方案B | 205 | 52 | 1 | 205 | 52 | 16 | 4395 | True | 2 | L2场景C_输入超L2分组执行, r_in=75.00; 尾轮: 周长型主导, rho=0.50<rho_dv=0.53, A1b被dValue卡死, 方案B反超 | 704643072000.0 | 0.0 | 0.44040192 | 0.0 | 0.44040192 | 0.0 | 0.0 | 61572651155456.0 | 0.1266926978507325 | 8589934592 | 0.00536870912 | 0.0 | 0.44040192 | 0.0 | 0.44040192 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 36 | b4_m32768_n128_k8192 | 4 | 4 | 32768 | 128 | 8192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b4_m32768_n128_k8192 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 187 | 1 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 8192 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | 方案B | 205 | 1 | 1 | 205 | 1 | 12 | 24 | True | 2 | L2场景C_输入超L2分组执行, r_in=1.14; 尾轮: 周长型主导, rho=0.38<rho_dv=0.53, A1b被dValue卡死, 方案B反超 | 2466250752.0 | 0.0 | 0.00154140672 | 0.0 | 0.00154140672 | 0.0 | 0.0 | 274877906944.0 | 0.0005655924011193416 | 33554432 | 2.097152e-05 | 0.0 | 0.00154140672 | 0.0 | 0.00154140672 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 37 | b32_m131072_n8192_k128 | 32 | 32 | 131072 | 8192 | 128 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m131072_n8192_k128 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 745 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 128 | 128 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 35015 | True | 2 | L2场景C_输入超L2分组执行, r_in=2.88; 尾轮: r=0 无尾轮 | 3288334336.0 | 0.0 | 0.00205520896 | 0.0 | 0.00205520896 | 0.0 | 0.0 | 8796093022208.0 | 0.01809895683581893 | 68719476736 | 0.04294967296 | 0.0 | 0.04294967296 | 0.0 | 0.04294967296 | FIXPIPE | True | 写出Bound | 瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略 | |
| 38 | b64_m32768_n8192_k1536 | 64 | 64 | 32768 | 8192 | 1536 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b64_m32768_n8192_k1536 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 187 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 1536 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 17578 | True | 2 | L2场景C_输入超L2分组执行, r_in=75.00; 尾轮: r=0 无尾轮 | 603979776000.0 | 0.0 | 0.37748736 | 0.0 | 0.37748736 | 0.0 | 0.0 | 52776558133248.0 | 0.10859374101491358 | 34359738368 | 0.02147483648 | 0.0 | 0.37748736 | 0.0 | 0.37748736 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 39 | b8_m131072_n8192_k8192 | 8 | 8 | 131072 | 8192 | 8192 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b8_m131072_n8192_k8192 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 745 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 8192 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A1b | 2 | 2 | 1 | 2 | 2 | 24 | 8754 | True | 2 | L2场景C_输入超L2分组执行, r_in=44.53; 尾轮: 周长型主导, rho=0.75>=rho_dv=0.53, A1b恒优 (尾轮tile缩√rho=0.87倍凑满核) | 812822560768.0 | 0.0 | 0.50801410048 | 0.0 | 0.50801410048 | 0.0 | 0.0 | 140737488355328.0 | 0.2895833093731029 | 17179869184 | 0.01073741824 | 0.0 | 0.50801410048 | 0.0 | 0.50801410048 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 40 | b8_m16_n7168_k1536 | 8 | 8 | 16 | 7168 | 1536 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b8_m16_n7168_k1536 | StreamK | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 1 | 2 | 2 | B/M/N切出16块, 每块2核切K归约 (归约组内核c负责K段[c*K/2,(c+1)*K/2)) | 1 | 1 | 16 | 3584 | 768 | 256 | 1 | K段标准分块流水 | 16 | 128 | 64 | allocate(部分和驻留L2) | resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换) | 0 | 3670016 | grid_K=2路切K+归约 | 1 | 1 | 2 | 0 | 0 | 0 | 0 | True | 4 | P=14.00, grid_K=2, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终 | 786432.0 | 0.0 | 1.572864e-05 | 0.0 | 1.572864e-05 | 0.0 | 0.0 | 100663296.0 | 6.628035950617284e-06 | 0.0 | 0.0 | 2.3655235431235433e-07 | 1.572864e-05 | 2.3655235431235433e-07 | 1.5965192354312353e-05 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 41 | b64_m1024_n7168_k7168 | 64 | 64 | 1024 | 7168 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b64_m1024_n7168_k7168 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 6 | 41 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 7168 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 492 | True | 2 | L2场景C_输入超L2分组执行, r_in=10.38; 尾轮: r=0 无尾轮 | 77980499968.0 | 0.0 | 0.04873781248 | 0.0 | 0.04873781248 | 0.0 | 0.0 | 6734508720128.0 | 0.013857013827423869 | 939524096 | 0.00058720256 | 0.0 | 0.04873781248 | 0.0 | 0.04873781248 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 42 | b32_m8192_n8192_k7168 | 32 | 32 | 8192 | 8192 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b32_m8192_n8192_k7168 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 47 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 7168 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 2209 | True | 2 | L2场景C_输入超L2分组执行, r_in=47.00; 尾轮: r=0 无尾轮 | 353261060096.0 | 0.0 | 0.22078816256 | 0.0 | 0.22078816256 | 0.0 | 0.0 | 30786325577728.0 | 0.06334634892536625 | 4294967296 | 0.00268435456 | 0.0 | 0.22078816256 | 0.0 | 0.22078816256 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 43 | b8_m4096_n4096_k128 | 8 | 8 | 4096 | 4096 | 128 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b8_m4096_n4096_k128 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 24 | 24 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 128 | 128 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 144 | True | 2 | L2场景B_输入驻留输出直写GM, r_in=1.00; 尾轮: r=0 无尾轮 | 16777216.0 | 0.0 | 1.048576e-05 | 0.0 | 1.048576e-05 | 0.0 | 0.0 | 34359738368.0 | 7.06990501399177e-05 | 268435456 | 0.00016777216 | 0.0 | 0.00016777216 | 0.0 | 0.00016777216 | FIXPIPE | True | 写出Bound | 瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略 | |
| 44 | b128_m8192_n8192_k7168 | 128 | 128 | 8192 | 8192 | 7168 | bf16 | bf16 | bf16 | False | False | False | True | 0 | b128_m8192_n8192_k7168 | ASW_Basic | Ascend950PR | batch_mat_mul_v3 | 32 | 1 | 47 | 47 | 1 | B->M->N线性映射+ASW滑窗蛇形(W=4) | 0 | 1 | 176 | 176 | 7168 | 256 | 1 | 双缓冲驻留当前tile输入 | 176 | 176 | 80 | allocate(输入驻留L2吸收重复读) | direct_gm(输出直写GM不占L2) | 4 | 0 | A0 | 1 | 1 | 1 | 0 | 0 | 0 | 8836 | True | 2 | L2场景C_输入超L2分组执行, r_in=47.00; 尾轮: r=0 无尾轮 | 1413044240384.0 | 0.0 | 0.88315265024 | 0.0 | 0.88315265024 | 0.0 | 0.0 | 123145302310912.0 | 0.253385395701465 | 17179869184 | 0.01073741824 | 0.0 | 0.88315265024 | 0.0 | 0.88315265024 | MTE2_GM | True | 访存Bound(GM) | 瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向) | |
| 45 | special_k1_b64 | 64 | 64 | 8192 | 512 | 1 | bf16 | bf16 | bf16 | False | False | False | True | 0 | special_k1_b64 | 特殊分支 | Ascend950PR | batch_mat_mul_v3 | 64 | 1 | 1 | 1 | 1 | AIV 核间按行均分 (无 Cube tile 概念) | 0 | 1 | 0 | 0 | 1 | 0 | 1 | UB驻留(AIV) AIV单缓冲 | 0 | 0 | 0 | allocate | direct_gm | 0 | 0 | 不涉及(AIV逐元素) | 1 | 1 | 1 | 0 | 0 | 0 | 0 | False | 2 | K=1逐元素乘: 退化为 C=A⊙B 无累加深度, Cube 16x16x16 粒度浪费 15/16; 走 AIV 通路 GM->UB->Mul->GM, AIV单缓冲 (B<2*AIV 逐batch单缓冲串行) | 1114112 | 0.0 | 6.9632e-07 | 0.0 | 6.9632e-07 | 0.0 | 0.0 | 268435456.0 | 1.985939393939394e-05 | 536870912 | 0.00033554432 | 0.0 | 0.00033554432 | 0.0 | 0.00033554432 | FIXPIPE | True | 写出Bound | 瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略 |