Files
matmul-analysis/BMM/BMM_Theory/examples/result_evaluate.csv

34 KiB

1case_idbatch_abatch_bmnkdtype_adtype_bdtype_ctrans_atrans_bhas_biasout_nddeterministic_levelplan_case_idplan_branchplan_npuplan_opplan_used_core_numplan_split_bplan_m_cntplan_n_cntplan_grid_kplan_core_mapplan_b_coreplan_merge_b0plan_single_core_mplan_single_core_nplan_single_core_kplan_k_l1plan_b_l1plan_l1_formplan_base_mplan_base_nplan_base_kplan_l2_policy_inplan_l2_policy_outplan_swizzle_wplan_workspace_bytesplan_tail_strategyplan_tail_m_cntplan_tail_n_cntplan_tail_k_cntplan_tail_m_mainplan_tail_n_mainplan_tail_block_cntplan_tail_wave_numplan_fixpipe_unitflagplan_out_dtype_bytesplan_notegm_read_bytesl2_read_bytest_mte2_gmt_mte2_l2t_mte2dma_cmd_countt_dma_cmdcube_flopst_mmadfixpipe_bytest_fixpipet_reducet_steadyt_draint_totalbottleneckfeasibleviolationsbound_typeadvice
2to_matmul_demo11204820482048bf16bf16bf16FalseFalseFalseTrue0to_matmul_demo转MatmulAscend950PRbatch_mat_mul_v3321001折叠为 Matmul [2048,2048]x[2048,2048], 复用 Matmul 切分体系010020480100000转Matmul后由 Matmul 体系决定1110000True2BatchB=1免费折叠: 左矩阵 [1,2048,2048] 视图折叠为 [2048,2048], 零重排零 split167772160.01.048576e-050.01.048576e-050.00.017179869184.03.534952506995885e-0583886085.24288e-060.03.534952506995885e-050.03.534952506995885e-05MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
3special_k0_demo1281282562560bf16bf16bf16FalseFalseFalseTrue0special_k0_demo特殊分支Ascend950PRbatch_mat_mul_v3641111AIV 核间按行均分 (无 Cube tile 概念)0100001UB驻留(AIV)000allocatedirect_gm00不涉及(AIV逐元素)1110000False2K=0纯写值: 无任何计算, C=bias 或 0, 纯 AIV 写值; 按行均分到 AIV 核0.00.00.00.00.00.00.00.00.0167772161.048576e-050.01.048576e-050.01.048576e-05FIXPIPETrue写出Bound瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略
4special_k1_demo1281282562561bf16bf16bf16FalseFalseFalseTrue0special_k1_demo特殊分支Ascend950PRbatch_mat_mul_v3641111AIV 核间按行均分 (无 Cube tile 概念)0100101UB驻留(AIV) UB乒乓000allocatedirect_gm00不涉及(AIV逐元素)1110000False2K=1逐元素乘: 退化为 C=A⊙B 无累加深度, Cube 16x16x16 粒度浪费 15/16; 走 AIV 通路 GM->UB->Mul->GM, UB乒乓 (B>=2*AIV 双batch乒乓流水)1310720.08.192e-080.08.192e-080.00.08388608.06.206060606060606e-07167772161.048576e-050.01.048576e-050.01.048576e-05FIXPIPETrue写出Bound瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略
5merge_demo_k_trunc204820483232256bf16bf16bf16FalseFalseFalseTrue0merge_demo_k_truncMergeBatchAscend950PRbatch_mat_mul_v33232111切B均分(核间零重复读零依赖)6441281282562568合并驻留128128128allocate(GM->L1随路驻留L2)direct_gm00不涉及(核内不切M/N)1110000True2b0=4 (L0C上限5.7/算存比上限19.0/b_core=64); K截断; 合并后单次DMA搬入 A'[128,256]+B'[256,128]20971520.04.194304e-050.04.2743039999999997e-0516.08.000000000000001e-07134217728.08.837381267489712e-061310722.62144e-060.04.2743039999999997e-053.0192408230452674e-074.3044964082304525e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
6merge_iter_arbitrate1281286464512bf16bf16bf16FalseFalseFalseTrue0merge_iter_arbitrateIterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4164645125122b_双batch乒乓6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2双batch乒乓: 2*(MK+KN)*dtype=256KB <= L15242880.01.048576e-050.01.0685759999999999e-0542.0000000000000002e-0716777216.01.104672658436214e-06327686.5536e-070.01.0685759999999999e-054.400081646090535e-071.1125768164609053e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
7iter_demo_form_b1281286464256bf16bf16bf16FalseFalseFalseTrue0iter_demo_form_bIterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4164642562562b_双batch乒乓6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2双batch乒乓: 2*(MK+KN)*dtype=128KB <= L12621440.05.24288e-060.05.4428799999999995e-0642.0000000000000002e-078388608.05.52336329218107e-07327686.5536e-070.05.4428799999999995e-063.0192408230452674e-075.744804082304526e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
8iter_demo_form_d646464648192bf16bf16bf16FalseFalseFalseTrue0iter_demo_form_dIterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)216464819210241d_两侧都切K6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=1024, K段成对流水, batch边界天然无缝; dValueA=2048B/dValueB=128B41943040.08.388608e-050.08.468608e-05168.000000000000001e-07134217728.08.837381267489712e-06163843.2768e-070.08.468608e-057.16176329218107e-078.540225632921811e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
9streamk_demo4412812810240bf16bf16bf16FalseFalseFalseTrue0streamk_demoStreamKAscend950PRbatch_mat_mul_v33211132B/M/N切出4块, 每块32核切K归约 (归约组内核c负责K段[c*K/32,(c+1)*K/32))111281283202561K段标准分块流水12812864allocate(部分和驻留L2)resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换)08388608grid_K=32路切K+归约11320000True4P=1.00, grid_K=32, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终327680.00.06.5536e-060.06.5536e-060.00.041943040.02.761681646090535e-060.00.03.4067453613053613e-066.5536e-063.4067453613053613e-069.960345361305361e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
10asw_demo_full22819281921024bf16bf16bf16FalseFalseFalseTrue0asw_demo_fullASW_BasicAscend950PRbatch_mat_mul_v332147471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617610242561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40方案B5252152522139True2L2场景B_输入驻留输出直写GM, r_in=1.00; 尾轮: 周长型主导, rho=0.06<rho_dv=0.53, A1b被dValue卡死, 方案B反超67108864.00.04.194304e-050.04.194304e-050.00.0274877906944.00.00056559240111934162684354560.000167772160.00.00056559240111934160.00.0005655924011193416MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
11asw_demo_reduce_core1616256256128bf16bf16bf16FalseFalseFalseTrue0asw_demo_reduce_coreASW_Basic_降核Ascend950PRbatch_mat_mul_v3161111降核: 只用16核, 每核一个L0C满载输出块, 其余核闲置012562561281281标准核内流水25625664allocatedirect_gm00不涉及(每核一块无尾轮)1110000True2P=16.00<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)2097152.00.02.62144e-060.02.62144e-060.00.0268435456.01.104672658436214e-0620971522.62144e-060.02.62144e-060.02.62144e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
12b4_m1_n128_k256441128256bf16bf16bf16FalseFalseFalseTrue0b4_m1_n128_k256ASW_Basic_降核Ascend950PRbatch_mat_mul_v311111降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置0111282562561标准核内流水1128128allocatedirect_gm00不涉及(每核一块无尾轮)1110000True2P=0.01<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)264192.00.05.28384e-060.05.28384e-060.00.0262144.01.7260510288065844e-0810242.048e-080.05.28384e-060.05.28384e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
13b8_m2_n192_k128882192128bf16bf16bf16FalseFalseFalseTrue0b8_m2_n192_k128ASW_Basic_降核Ascend950PRbatch_mat_mul_v311111降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置0121921281281标准核内流水219280allocatedirect_gm00不涉及(每核一块无尾轮)1110000True2P=0.05<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)397312.00.07.94624e-060.07.94624e-060.00.0786432.05.178153086419753e-0861441.2288e-070.07.94624e-060.07.94624e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
14b16_m4_n256_k19216164256192bf16bf16bf16FalseFalseFalseTrue0b16_m4_n256_k192ASW_Basic_降核Ascend950PRbatch_mat_mul_v311111降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置0142561921921标准核内流水425664allocatedirect_gm00不涉及(每核一块无尾轮)1110000True2P=0.25<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)1597440.00.03.19488e-050.03.19488e-050.00.06291456.04.1425224691358024e-07327686.5536e-070.03.19488e-050.03.19488e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
15b32_m8_n128_k25632328128256bf16bf16bf16FalseFalseFalseTrue0b32_m8_n128_k256IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)1181282562561a_单batch全驻留8128128allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2单batch全驻留: (MK+KN)*dtype=68KB <= L1696320.01.39264e-060.01.44264e-0615.0000000000000004e-08524288.03.452102057613169e-0820484.096e-080.01.44264e-067.548102057613169e-081.5181210205761316e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
16b64_m16_n256_k512646416256512bf16bf16bf16FalseFalseFalseTrue0b64_m16_n256_k512IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)21162565122401c_一侧驻留+对侧切K1625664allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2一侧驻留(A)+对侧切K: A驻留16KB, 预算L1/2, k_L1=240, dValueA=480B/dValueB=512B5570560.01.56672e-050.01.5967200000000002e-0563.0000000000000004e-078388608.05.52336329218107e-07163843.2768e-070.01.5967200000000002e-052.932938271604938e-071.6260493827160496e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
17b128_m8_n192_k2561281288192256bf16bf16bf16FalseFalseFalseTrue0b128_m8_n192_k256IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4181922562562b_双batch乒乓819280allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2双batch乒乓: 2*(MK+KN)*dtype=200KB <= L14096000.08.192e-060.08.392e-0642.0000000000000002e-073145728.02.0712612345679012e-07122882.4576e-070.08.392e-061.1322153086419754e-078.505221530864198e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
18b32_m16_n8192_k716832321681927168bf16bf16bf16FalseFalseFalseTrue0b32_m16_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v33211471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617671682561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A011100047True2L2场景C_输入超L2分组执行, r_in=1.09; 尾轮: r=0 无尾轮4103077888.00000050.00.00256442368000000050.00.00256442368000000050.00.060129542144.00.0001237233377448559683886085.24288e-060.00.00256442368000000050.00.0025644236800000005MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
19b4_m1_n8192_k819244181928192bf16bf16bf16FalseFalseFalseTrue0b4_m1_n8192_k8192StreamKAscend950PRbatch_mat_mul_v33211132B/M/N切出4块, 每块32核切K归约 (归约组内核c负责K段[c*K/32,(c+1)*K/32))11181922562561K段标准分块流水112864allocate(部分和驻留L2)resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换)04194304grid_K=32路切K+归约11320000True4P=0.50, grid_K=32, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终262144.00.05.24288e-060.05.24288e-060.00.033554432.02.209345316872428e-060.00.03.4067453613053613e-065.24288e-063.4067453613053613e-068.64962536130536e-06MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
20b16_m2_n4096_k71681616240967168bf16bf16bf16FalseFalseFalseTrue0b16_m2_n4096_k7168StreamKAscend950PRbatch_mat_mul_v33211116B/M/N切出16块, 每块16核切K归约 (归约组内核c负责K段[c*K/16,(c+1)*K/16))11240964482561K段标准分块流水212864allocate(部分和驻留L2)resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换)08388608grid_K=16路切K+归约11160000True4P=2.00, grid_K=16, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终458752.00.09.17504e-060.09.17504e-060.00.058720256.03.866354304526749e-060.00.01.7159757575757577e-069.17504e-061.7159757575757577e-061.0891015757575759e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
21b32_m64_n64_k7168323264647168bf16bf16bf16FalseFalseFalseTrue0b32_m64_n64_k7168IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)116464716810241d_两侧都切K6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=1024, K段成对流水, batch边界天然无缝; dValueA=2048B/dValueB=128B18350080.03.6700159999999995e-050.03.705016e-0573.5000000000000004e-0758720256.03.866354304526749e-0681921.6384e-070.03.705016e-057.16176329218107e-073.77663363292181e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
22b64_m1024_n1024_k71686464102410247168bf16bf16bf16FalseFalseFalseTrue0b64_m1024_n1024_k7168IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)21102410247168641d_两侧都切K17617664allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=64, K段成对流水, batch边界天然无缝; dValueA=128B/dValueB=2048B587202560.00.00117440511999999980.00.001185605122241.1200000000000001e-0530064771072.00.001979573403917695441943048.388608e-050.00.00197957340391769545.078042126748971e-050.0020303538251851853MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
23b128_m2048_n2048_k1536128128204820481536bf16bf16bf16FalseFalseFalseTrue0b128_m2048_n2048_k1536ASW_BasicAscend950PRbatch_mat_mul_v332112121B->M->N线性映射+ASW滑窗蛇形(W=4)0117617615362561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A0111000576True2L2场景C_输入超L2分组执行, r_in=12.00; 尾轮: r=0 无尾轮19327352832.00.00.012079595520.00.012079595520.00.01649267441664.00.003393554406716049310737418240.000671088640.00.012079595520.00.01207959552MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
24b64_m1024_n8192_k20486464102481922048bf16bf16bf16FalseFalseFalseTrue0b64_m1024_n8192_k2048ASW_BasicAscend950PRbatch_mat_mul_v33216471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617620482561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A0111000564True2L2场景C_输入超L2分组执行, r_in=10.56; 尾轮: r=0 无尾轮25501368320.00.00.01593835520.00.01593835520.00.02199023255552.00.00452473920895473310737418240.000671088640.00.01593835520.00.0159383552MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
25b32_m1024_n1024_k512323210241024512bf16bf16bf16FalseFalseFalseTrue0b32_m1024_n1024_k512IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)1110241024512641d_两侧都切K17617664allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=64, K段成对流水, batch边界天然无缝; dValueA=128B/dValueB=2048B20971520.04.194304e-050.04.234304e-0584.0000000000000003e-071073741824.07.06990501399177e-0520971524.194304e-050.07.06990501399177e-055.078042126748971e-050.0001214794714074074MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
26b128_m4096_n4096_k8192128128409640968192bf16bf16bf16FalseFalseFalseTrue0b128_m4096_n4096_k8192ASW_BasicAscend950PRbatch_mat_mul_v332124241B->M->N线性映射+ASW滑窗蛇形(W=4)0117617681922561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A01110002304True2L2场景C_输入超L2分组执行, r_in=24.00; 尾轮: r=0 无尾轮412316860416.00.00.257698037760.00.257698037760.00.035184372088832.00.0723958273432757242949672960.002684354560.00.257698037760.00.25769803776MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
27b32_m8192_n4096_k71683232819240967168bf16bf16bf16FalseFalseFalseTrue0b32_m8192_n4096_k7168ASW_BasicAscend950PRbatch_mat_mul_v332147241B->M->N线性映射+ASW滑窗蛇形(W=4)0117617671682561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A01110001128True2L2场景C_输入超L2分组执行, r_in=31.67; 尾轮: r=0 无尾轮178509578240.00.00.11156848640.00.11156848640.00.015393162788864.00.03167317446268312621474836480.001342177280.00.11156848640.00.1115684864MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
28b32_m2048_n2048_k81923232204820488192bf16bf16bf16FalseFalseFalseTrue0b32_m2048_n2048_k8192ASW_BasicAscend950PRbatch_mat_mul_v332112121B->M->N线性映射+ASW滑窗蛇形(W=4)0117617681922561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A0111000144True2L2场景C_输入超L2分组执行, r_in=12.00; 尾轮: r=0 无尾轮25769803776.00.00.016106127360.00.016106127360.00.02199023255552.00.0045247392089547332684354560.000167772160.00.016106127360.00.01610612736MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
29b64_m4096_n2048_k128646440962048128bf16bf16bf16FalseFalseFalseTrue0b64_m4096_n2048_k128ASW_BasicAscend950PRbatch_mat_mul_v332124121B->M->N线性映射+ASW滑窗蛇形(W=4)011761761281281双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A0111000576True2L2场景B_输入驻留输出直写GM, r_in=1.00; 尾轮: r=0 无尾轮100663296.00.06.291456e-050.06.291456e-050.00.0137438953472.00.000282796200559670810737418240.000671088640.00.000671088640.00.00067108864FIXPIPETrue写出Bound瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略
30b16_m1024_n1024_k81921616102410248192bf16bf16bf16FalseFalseFalseTrue0b16_m1024_n1024_k8192ASW_BasicAscend950PRbatch_mat_mul_v3321661B->M->N线性映射+ASW滑窗蛇形(W=4)0117617681922561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A011100018True2L2场景C_输入超L2分组执行, r_in=6.00; 尾轮: r=0 无尾轮3221225472.00.00.002013265920.00.002013265920.00.0274877906944.00.0005655924011193416335544322.097152e-050.00.002013265920.00.00201326592MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
31b4_m32768_n128_k1284432768128128bf16bf16bf16FalseFalseFalseTrue0b4_m32768_n128_k128ASW_BasicAscend950PRbatch_mat_mul_v332118711B->M->N线性映射+ASW滑窗蛇形(W=4)011761761281281双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)resident(输出驻留L2异步回写)40方案B2051120511224True2L2场景A_全驻留, r_in=1.00; 尾轮: 面积型主导, A1b与方案B严格打平(T=28.96us), 选方案B工程简洁 (一套tile)33685504.00.02.105344e-050.02.105344e-050.00.04294967296.08.837381267489712e-06335544326.452775384615385e-060.02.105344e-050.02.105344e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
32b8_m32768_n2048_k51288327682048512bf16bf16bf16FalseFalseFalseTrue0b8_m32768_n2048_k512ASW_BasicAscend950PRbatch_mat_mul_v3321187121B->M->N线性映射+ASW滑窗蛇形(W=4)011761765122561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A0111000561True2L2场景C_输入超L2分组执行, r_in=1.24; 尾轮: r=0 无尾轮352321536.00.00.000220200960.00.000220200960.00.0549755813888.00.001131184802238683210737418240.000671088640.00.00113118480223868320.00.0011311848022386832MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
33b4_m131072_n128_k12844131072128128bf16bf16bf16FalseFalseFalseTrue0b4_m131072_n128_k128ASW_BasicAscend950PRbatch_mat_mul_v332174511B->M->N线性映射+ASW滑窗蛇形(W=4)011761761281281双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40方案B820118201494True2L2场景C_输入超L2分组执行, r_in=1.00; 尾轮: 面积型主导, A1b与方案B严格打平(T=115.39us), 选方案B工程简洁 (一套tile)134610944.00.08.413184e-050.08.413184e-050.00.017179869184.03.534952506995885e-051342177288.388608e-050.08.413184e-050.08.413184e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
34b8_m131072_n1024_k256881310721024256bf16bf16bf16FalseFalseFalseTrue0b8_m131072_n1024_k256ASW_BasicAscend950PRbatch_mat_mul_v332174561B->M->N线性映射+ASW滑窗蛇形(W=4)011761762562561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40方案B820718207161118True2L2场景C_输入超L2分组执行, r_in=1.06; 尾轮: 面积型主导, A1b与方案B严格打平(T=1384.63us), 选方案B工程简洁 (一套tile)574619648.00.00.000359137280.00.000359137280.00.0549755813888.00.001131184802238683221474836480.001342177280.00.001342177280.00.00134217728FIXPIPETrue写出Bound瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略
35b16_m32768_n8192_k716816163276881927168bf16bf16bf16FalseFalseFalseTrue0b16_m32768_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v3321187471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617671682561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40方案B20552120552164395True2L2场景C_输入超L2分组执行, r_in=75.00; 尾轮: 周长型主导, rho=0.50<rho_dv=0.53, A1b被dValue卡死, 方案B反超704643072000.00.00.440401920.00.440401920.00.061572651155456.00.126692697850732585899345920.005368709120.00.440401920.00.44040192MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
36b4_m32768_n128_k819244327681288192bf16bf16bf16FalseFalseFalseTrue0b4_m32768_n128_k8192ASW_BasicAscend950PRbatch_mat_mul_v332118711B->M->N线性映射+ASW滑窗蛇形(W=4)0117617681922561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40方案B2051120511224True2L2场景C_输入超L2分组执行, r_in=1.14; 尾轮: 周长型主导, rho=0.38<rho_dv=0.53, A1b被dValue卡死, 方案B反超2466250752.00.00.001541406720.00.001541406720.00.0274877906944.00.0005655924011193416335544322.097152e-050.00.001541406720.00.00154140672MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
37b32_m131072_n8192_k12832321310728192128bf16bf16bf16FalseFalseFalseTrue0b32_m131072_n8192_k128ASW_BasicAscend950PRbatch_mat_mul_v3321745471B->M->N线性映射+ASW滑窗蛇形(W=4)011761761281281双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A011100035015True2L2场景C_输入超L2分组执行, r_in=2.88; 尾轮: r=0 无尾轮3288334336.00.00.002055208960.00.002055208960.00.08796093022208.00.01809895683581893687194767360.042949672960.00.042949672960.00.04294967296FIXPIPETrue写出Bound瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略
38b64_m32768_n8192_k153664643276881921536bf16bf16bf16FalseFalseFalseTrue0b64_m32768_n8192_k1536ASW_BasicAscend950PRbatch_mat_mul_v3321187471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617615362561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A011100017578True2L2场景C_输入超L2分组执行, r_in=75.00; 尾轮: r=0 无尾轮603979776000.00.00.377487360.00.377487360.00.052776558133248.00.10859374101491358343597383680.021474836480.00.377487360.00.37748736MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
39b8_m131072_n8192_k81928813107281928192bf16bf16bf16FalseFalseFalseTrue0b8_m131072_n8192_k8192ASW_BasicAscend950PRbatch_mat_mul_v3321745471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617681922561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A1b22122248754True2L2场景C_输入超L2分组执行, r_in=44.53; 尾轮: 周长型主导, rho=0.75>=rho_dv=0.53, A1b恒优 (尾轮tile缩√rho=0.87倍凑满核)812822560768.00.00.508014100480.00.508014100480.00.0140737488355328.00.2895833093731029171798691840.010737418240.00.508014100480.00.50801410048MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
40b8_m16_n7168_k1536881671681536bf16bf16bf16FalseFalseFalseTrue0b8_m16_n7168_k1536StreamKAscend950PRbatch_mat_mul_v3321122B/M/N切出16块, 每块2核切K归约 (归约组内核c负责K段[c*K/2,(c+1)*K/2))111635847682561K段标准分块流水1612864allocate(部分和驻留L2)resident(部分和4B驻留L2, 防精度丢失不随C的fp16/fp8转换)03670016grid_K=2路切K+归约1120000True4P=14.00, grid_K=2, 部分和驻留L2按4B写出, AIV归约后按C dtype=2B写最终786432.00.01.572864e-050.01.572864e-050.00.0100663296.06.628035950617284e-060.00.02.3655235431235433e-071.572864e-052.3655235431235433e-071.5965192354312353e-05MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
41b64_m1024_n7168_k71686464102471687168bf16bf16bf16FalseFalseFalseTrue0b64_m1024_n7168_k7168ASW_BasicAscend950PRbatch_mat_mul_v33216411B->M->N线性映射+ASW滑窗蛇形(W=4)0117617671682561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A0111000492True2L2场景C_输入超L2分组执行, r_in=10.38; 尾轮: r=0 无尾轮77980499968.00.00.048737812480.00.048737812480.00.06734508720128.00.0138570138274238699395240960.000587202560.00.048737812480.00.04873781248MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
42b32_m8192_n8192_k71683232819281927168bf16bf16bf16FalseFalseFalseTrue0b32_m8192_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v332147471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617671682561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A01110002209True2L2场景C_输入超L2分组执行, r_in=47.00; 尾轮: r=0 无尾轮353261060096.00.00.220788162560.00.220788162560.00.030786325577728.00.0633463489253662542949672960.002684354560.00.220788162560.00.22078816256MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
43b8_m4096_n4096_k1288840964096128bf16bf16bf16FalseFalseFalseTrue0b8_m4096_n4096_k128ASW_BasicAscend950PRbatch_mat_mul_v332124241B->M->N线性映射+ASW滑窗蛇形(W=4)011761761281281双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A0111000144True2L2场景B_输入驻留输出直写GM, r_in=1.00; 尾轮: r=0 无尾轮16777216.00.01.048576e-050.01.048576e-050.00.034359738368.07.06990501399177e-052684354560.000167772160.00.000167772160.00.00016777216FIXPIPETrue写出Bound瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略
44b128_m8192_n8192_k7168128128819281927168bf16bf16bf16FalseFalseFalseTrue0b128_m8192_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v332147471B->M->N线性映射+ASW滑窗蛇形(W=4)0117617671682561双缓冲驻留当前tile输入17617680allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM不占L2)40A01110008836True2L2场景C_输入超L2分组执行, r_in=47.00; 尾轮: r=0 无尾轮1413044240384.00.00.883152650240.00.883152650240.00.0123145302310912.00.253385395701465171798691840.010737418240.00.883152650240.00.88315265024MTE2_GMTrue访存Bound(GM)瓶颈在 GM 搬入: 可考虑增大 tile 提升 dValue/单核搬移量, 或利用 L2 驻留吸收重复读 (MergeBatch/ASW swizzle 方向)
45special_k1_b64646481925121bf16bf16bf16FalseFalseFalseTrue0special_k1_b64特殊分支Ascend950PRbatch_mat_mul_v3641111AIV 核间按行均分 (无 Cube tile 概念)0100101UB驻留(AIV) AIV单缓冲000allocatedirect_gm00不涉及(AIV逐元素)1110000False2K=1逐元素乘: 退化为 C=A⊙B 无累加深度, Cube 16x16x16 粒度浪费 15/16; 走 AIV 通路 GM->UB->Mul->GM, AIV单缓冲 (B<2*AIV 逐batch单缓冲串行)11141120.06.9632e-070.06.9632e-070.00.0268435456.01.985939393939394e-055368709120.000335544320.00.000335544320.00.00033554432FIXPIPETrue写出Bound瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略