Files
matmul-analysis/BMM/BMM_Theory/examples/result_evaluate.csv
admin b0b48b9073 Fix #36: MergeBatch 合并搬移效率收益建模 (move_eff) + t_cmd_ns 置 0
用户澄清: MergeBatch vs IterBatch 的本质区别不只是 DMA 命令数 —— 合并 b0 个
batch 的左/右矩阵一起搬入 L1, 使单块 tile = nValue*dValue*dt 放大 b0 倍 (堆叠
方向视转置: A ND 非转置沿 M(nValue), B ND 非转置沿 N(dValue)), 搬移效率更高,
即便 T_cmd=0 也有效益。

- models.move_eff: 单命令搬移效率 eff = min(1, tile/min_TileSize) (16KB 饱和,
  与进入条件4效率下限语义同源); gm_move_time 按 A/B 两侧字节加权
  t = (V_A/eff_A + V_B/eff_B)/BW_gm; 只影响时间列, GM 字节量仍 = V_in
- IterBatch: l1_form 补驻留侧返回; move_tiles 分侧口径 (a/b 双侧整K, c 驻留侧
  整K+对侧k_l1, d 双侧k_l1), evaluate 接入效率加权
- MergeBatch: 合并 tile 放大 b0 倍接入效率加权; beats_iterbatch 净收益 =
  命令节省(cmds差×T_cmd) + 效率节省(t_data差) − drain惩罚, K截断且效率打平且
  T_cmd>0 时严格退化为 v1.1 §4.5 闭式; 退役 T_cmd<=0 策略特判
- router: 退役 "T_cmd<=0 策略优先 MergeBatch" 覆盖, 时延模型统一终审
- hardware: t_cmd_ns 50 -> 0 (未标定按 0; 合并收益不再依赖 T_cmd 估计值)
- 作用域: 仅切B 两分支接入 (逐命令 tile 小、效率差显著); ASW/StreamK 单命令
  tile 通常已饱和, 极端小 tile 走 issue#34 效率降级标注通道
- 用户 case 家族 B=128,M=1~16,N=128,K=512: m=1~8 -> MergeBatch (效率节省
  ~0.61us > drain), m=16 -> IterBatch (iter A tile 恰达 16KB 饱和, 效率打平,
  drain 决定); 分界与时延全家族一致
- demo: merge_demo_k_trunc 形状 (2048,32,32,256)->(2048,16,64,128) (原形状
  两侧 tile 均已 16KB 饱和, t_cmd=0 下无收益转 IterBatch; 新形状 iter A tile
  4KB eff=0.25 vs 合并 16KB eff=1.0, 保持 MergeBatch 胜出演示且仍 K截断)
- 测试: 74/74 (新增 TestIssue36 5 例: 效率曲线/字节不变/效率差胜出/家族;
  TestArbitration/TestZeroCmdHandling 按 t_cmd=0+效率语义重写; TestIssue35
  家族期望更新)
- 文档: 01_MergeBatch §4/§5 效率模型+泛化净收益; 02_IterBatch 口径注;
  00_总纲胜出条件; 01_软件架构 T_cmd 标定说明; 05 时间列效率口径注; README 要点
- 验证: examples 重生成可复现 0 diff; 压力 10000 例 0 崩溃/0 NaN/0 违规/
  0 GM<V_in, 七分支覆盖 (MergeBatch 386 例)
2026-09-07 21:09:49 +08:00

43 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-0583886081.6131938461538462e-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.0167772163.2263876923076923e-060.03.2263876923076923e-060.03.2263876923076923e-06FIXPIPETrue写出Bound(L2写口)瓶颈在 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.03.103030303030303e-07167772163.2263876923076923e-060.03.2263876923076923e-060.03.2263876923076923e-06FIXPIPETrue写出Bound(L2写口)瓶颈在 Fixpipe 写出: 检查输出 dtype (fp16/fp8 可减半写出量), 或评估输出驻留 L2 异步回写策略
5merge_demo_k_trunc204820481664128bf16bf16bf16FalseFalseFalseTrue0merge_demo_k_truncMergeBatchAscend950PRbatch_mat_mul_v33232111切B均分(核间零重复读零依赖)6446425612812812合并驻留6425664allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2b0=4 (L0C上限5.7/算存比上限23.7/b_core=64); K截断; 合并后单次DMA搬入 A'[64,128]+B'[128,256]; 输出落点: L2驻留 (整case V_in+V_out=40.0MB vs L2=128MB)419430400.02.62144e-050.02.62144e-05160.02147483648.04.418690633744856e-0641943048.065969230769231e-070.02.62144e-051.1945434884457107e-072.6333854348844573e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
6merge_iter_arbitrate1281286464512bf16bf16bf16FalseFalseFalseTrue0merge_iter_arbitrateIterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4164645125122b_双batch乒乓6464256allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2双batch乒乓: 2*(MK+KN)*dtype=256KB <= L1; 输出落点: L2驻留167772160.01.048576e-050.01.048576e-0540.0536870912.01.104672658436214e-0610485762.0164923076923077e-070.01.048576e-053.265804723013612e-071.081234047230136e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
7iter_demo_form_b1281286464256bf16bf16bf16FalseFalseFalseTrue0iter_demo_form_bIterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4164642562562b_双batch乒乓6464256allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2双batch乒乓: 2*(MK+KN)*dtype=128KB <= L1; 输出落点: L2驻留83886080.05.24288e-060.05.24288e-0640.0268435456.05.52336329218107e-0710485762.0164923076923077e-070.05.24288e-061.8849638999683443e-075.431376389996834e-06MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
8iter_demo_form_d646464648192bf16bf16bf16FalseFalseFalseTrue0iter_demo_form_dIterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)216464819210241d_两侧都切K6464256allocate(GM->L1随路驻留L2)direct_gm(整case超L2: 输入优先驻留L2, 输出直写GM不占L2)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=1024, K段成对流水, batch边界天然无缝; dValueA=2048B/dValueB=128B; 输出落点: 直写GM1342177280.08.388608e-050.08.388608e-05160.04294967296.08.837381267489712e-065242883.2768e-070.08.421376e-057.16176329218107e-078.492993632921811e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
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写最终2097152001.31072e-050.01.31072e-050.00.01342177280.02.761681646090535e-060.00.03.4067453613053613e-061.31072e-053.4067453613053613e-061.651394536130536e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
10asw_demo_full22819281921024bf16bf16bf16FalseFalseFalseTrue0asw_demo_fullASW_BasicAscend950PRbatch_mat_mul_v332116161B->M->N线性映射+ASW滑窗蛇形(W=4)0151251210241281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100016True2tile枚举: P=16, 有界枚举最优 mCnt=16 x nCnt=16 (tile 512x512, 每batch搬入512.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=64.0MB, V_out=256.0MB, L2=128MB); 尾轮: r=0 无尾轮6710886410066329604.194304e-050.000193583261538461540.000235526301538461530.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标准核内流水25625664allocateresident(整case全驻留S_A)00不涉及(每核一块无尾轮)1110000True2P=16.00<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)209715202.62144e-060.02.62144e-060.00.0268435456.01.104672658436214e-0620971528.065969230769231e-070.02.62144e-060.02.62144e-06MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
12b4_m1_n128_k256441128256bf16bf16bf16FalseFalseFalseTrue0b4_m1_n128_k256ASW_Basic_降核Ascend950PRbatch_mat_mul_v311111降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置0111282562561标准核内流水1128128allocateresident(整case全驻留S_A)00不涉及(每核一块无尾轮)1110000True2P=0.01<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)26419205.28384e-060.05.28384e-060.00.0262144.01.7260510288065844e-0810246.3015384615384615e-090.05.28384e-060.05.28384e-06MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
13b8_m2_n192_k128882192128bf16bf16bf16FalseFalseFalseTrue0b8_m2_n192_k128ASW_Basic_降核Ascend950PRbatch_mat_mul_v311111降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置0121921281281标准核内流水219280allocateresident(整case全驻留S_A)00不涉及(每核一块无尾轮)1110000True2P=0.05<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)39731207.94624e-060.07.94624e-060.00.0786432.05.178153086419753e-0861443.7809230769230766e-080.07.94624e-060.07.94624e-06MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
14b16_m4_n256_k19216164256192bf16bf16bf16FalseFalseFalseTrue0b16_m4_n256_k192ASW_Basic_降核Ascend950PRbatch_mat_mul_v311111降核: 只用1核, 每核一个L0C满载输出块, 其余核闲置0142561921921标准核内流水425664allocateresident(整case全驻留S_A)00不涉及(每核一块无尾轮)1110000True2P=0.25<C, 降核是理性选择 (强切则 tile 跌破搬移效率下限反而更慢)159744003.19488e-050.03.19488e-050.00.06291456.04.1425224691358024e-07327682.0164923076923077e-070.03.19488e-050.03.19488e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
15b32_m8_n128_k25632328128256bf16bf16bf16FalseFalseFalseTrue0b32_m8_n128_k256IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)1181282562561a_单batch全驻留8128128allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2单batch全驻留: (MK+KN)*dtype=68KB <= L1; 输出落点: L2驻留22282240.01.6384e-060.01.6384e-0610.016777216.03.452102057613169e-08655361.2603076923076923e-080.01.6384e-064.712409749920861e-081.6855240974992087e-06MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
16b64_m16_n256_k512646416256512bf16bf16bf16FalseFalseFalseTrue0b64_m16_n256_k512IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)21162565122401c_一侧驻留+对侧切K1625664allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2一侧驻留(A)+对侧切K: A驻留16KB, 预算L1/2, k_L1=240, dValueA=480B/dValueB=512B; 输出落点: L2驻留178257920.01.114112e-050.01.114112e-0560.0268435456.05.52336329218107e-075242881.0082461538461538e-070.01.114112e-051.798661348528015e-071.1320986134852803e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
17b128_m8_n192_k2561281288192256bf16bf16bf16FalseFalseFalseTrue0b128_m8_n192_k256IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4181922562562b_双batch乒乓819280allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2双batch乒乓: 2*(MK+KN)*dtype=200KB <= L1; 输出落点: L2驻留131072000.09.17504e-060.09.17504e-0640.0100663296.02.0712612345679012e-073932167.561846153846153e-080.09.17504e-067.068614624881291e-089.245726146248813e-06MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
18b32_m16_n8192_k716832321681927168bf16bf16bf16FalseFalseFalseTrue0b32_m16_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v3321181B->M->N线性映射+ASW滑窗蛇形(W=4)0116102471681121双缓冲驻留当前tile输入16102416allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A01110008True2tile枚举: 效率降级(放开约束4, dValue 按 128B 硬下限, 搬移效率低于模型假设, 时延可能低估): P=1, mCnt=1 x nCnt=8 (tile 16x1024, 每batch搬入113.8MB, r=0); Base tile 16x1024 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=3591.0MB, V_out=8.0MB, L2=128MB); 尾轮: r=0 无尾轮3765436416513802240.002353397769.880812307692307e-060.00236327857230769250.00.060129542144.00.0001237233377448559683886085.24288e-060.00.00236852145230769230.00.0023685214523076923MTE2True访存Bound(GM读写共享+L2重复读)效率降级标注 (plan.note): 搬移效率下限不满足 —— 方案照常给出 (兜底), 但实际效率低于模型假设, 时延可能低估; 建议调整 dtype/布局 | 瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
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写最终5369364480.00.000335585280.00.000335585280.00.0536870912.01.104672658436214e-060.00.01.731729603729604e-060.000335585281.731729603729604e-060.0003373170096037296MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
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写最终93998284800.000587489280.00.000587489280.00.01879048192.03.866354304526749e-060.00.01.7726896037296038e-060.000587489281.7726896037296038e-060.0005892619696037297MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
21b32_m64_n64_k7168323264647168bf16bf16bf16FalseFalseFalseTrue0b32_m64_n64_k7168IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)116464716810241d_两侧都切K6464256allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=1024, K段成对流水, batch边界天然无缝; dValueA=2048B/dValueB=128B; 输出落点: L2驻留587202560.03.670016e-050.03.670016e-0570.01879048192.03.866354304526749e-062621445.041230769230769e-080.03.670016e-056.027486369104147e-073.730290863691042e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
22b64_m1024_n1024_k71686464102410247168bf16bf16bf16FalseFalseFalseTrue0b64_m1024_n1024_k7168IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)21102410247168641d_两侧都切K17617664allocate(GM->L1随路驻留L2)direct_gm(整case超L2: 输入优先驻留L2, 输出直写GM不占L2)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=64, K段成对流水, batch边界天然无缝; dValueA=128B/dValueB=2048B; 输出落点: 直写GM18790481920.00.001174405120.00.001174405122240.0962072674304.00.00197957340391769541342177288.388608e-050.00.00197957340391769545.078042126748971e-050.0020303538251851853MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
23b128_m2048_n2048_k1536128128204820481536bf16bf16bf16FalseFalseFalseTrue0b128_m2048_n2048_k1536ASW_BasicAscend950PRbatch_mat_mul_v3321441B->M->N线性映射+ASW滑窗蛇形(W=4)0151251215361281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100064True2tile枚举: P=1, 有界枚举最优 mCnt=4 x nCnt=4 (tile 512x512, 每batch搬入48.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=1536.0MB, V_out=1024.0MB, L2=128MB); 尾轮: r=0 无尾轮161061273648318382080.001006632960.00092919965538461540.00193583261538461540.00.01649267441664.00.003393554406716049310737418240.000671088640.00.00339355440671604930.00.0033935544067160493MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
24b64_m1024_n8192_k20486464102481922048bf16bf16bf16FalseFalseFalseTrue0b64_m1024_n8192_k2048ASW_BasicAscend950PRbatch_mat_mul_v33212161B->M->N线性映射+ASW滑窗蛇形(W=4)0151251220481281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100064True2tile枚举: P=1, 有界枚举最优 mCnt=2 x nCnt=16 (tile 512x512, 每batch搬入128.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=2304.0MB, V_out=1024.0MB, L2=128MB); 尾轮: r=0 无尾轮241591910461740154880.001509949440.00118731067076923080.00269726011076923050.00.02199023255552.00.00452473920895473310737418240.000671088640.00.0045247392089547330.00.004524739208954733MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
25b32_m1024_n1024_k512323210241024512bf16bf16bf16FalseFalseFalseTrue0b32_m1024_n1024_k512IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)1110241024512641d_两侧都切K17617664allocate(GM->L1随路驻留L2)resident(整case输入+输出<=L2: 输出驻留L2异步回写, GM写=0)00不涉及(核内不切M/N)1110000True2两侧都切K: k_L1=64, K段成对流水, batch边界天然无缝; dValueA=128B/dValueB=2048B; 输出落点: L2驻留671088640.04.194304e-050.04.194304e-0580.034359738368.07.06990501399177e-05671088641.290555076923077e-050.07.06990501399177e-052.1742932036720483e-059.244198217663819e-05MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
26b128_m4096_n4096_k8192128128409640968192bf16bf16bf16FalseFalseFalseTrue0b128_m4096_n4096_k8192ASW_BasicAscend950PRbatch_mat_mul_v3321881B->M->N线性映射+ASW滑窗蛇形(W=4)0151251281921281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A0111000256True2tile枚举: P=1, 有界枚举最优 mCnt=8 x nCnt=8 (tile 512x512, 每batch搬入1024.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=16384.0MB, V_out=4096.0MB, L2=128MB); 尾轮: r=0 无尾轮171798691841202590842880.010737418240.0231267469784615380.0338641652184615350.00.035184372088832.00.0723958273432757242949672960.002684354560.00.072395827343275720.00.07239582734327572MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
27b32_m8192_n4096_k71683232819240967168bf16bf16bf16FalseFalseFalseTrue0b32_m8192_n4096_k7168ASW_BasicAscend950PRbatch_mat_mul_v33211681B->M->N线性映射+ASW滑窗蛇形(W=4)0151251271681281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A0111000128True2tile枚举: P=1, 有界枚举最优 mCnt=16 x nCnt=8 (tile 512x512, 每batch搬入1792.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=5376.0MB, V_out=2048.0MB, L2=128MB); 尾轮: r=0 无尾轮5637144576544923975680.003523215360.0104793072246153840.0140025225846153840.00.015393162788864.00.03167317446268312621474836480.001342177280.00.0316731744626831260.00.031673174462683126MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
28b32_m2048_n2048_k81923232204820488192bf16bf16bf16FalseFalseFalseTrue0b32_m2048_n2048_k8192ASW_BasicAscend950PRbatch_mat_mul_v3321441B->M->N线性映射+ASW滑窗蛇形(W=4)0151251281921281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100016True2tile枚举: P=1, 有界枚举最优 mCnt=4 x nCnt=4 (tile 512x512, 每batch搬入256.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=2048.0MB, V_out=256.0MB, L2=128MB); 尾轮: r=0 无尾轮214748364864424509440.001342177280.00123893287384615370.0025811101538461540.00.02199023255552.00.0045247392089547332684354560.000167772160.00.0045247392089547330.00.004524739208954733MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
29b64_m4096_n2048_k128646440962048128bf16bf16bf16FalseFalseFalseTrue0b64_m4096_n2048_k128ASW_BasicAscend950PRbatch_mat_mul_v3321841B->M->N线性映射+ASW滑窗蛇形(W=4)015125121281281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100064True2tile枚举: P=1, 有界枚举最优 mCnt=8 x nCnt=4 (tile 512x512, 每batch搬入8.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=96.0MB, V_out=1024.0MB, L2=128MB); 尾轮: r=0 无尾轮1006632964362076166.291456e-058.388608e-050.000146800639999999980.00.0137438953472.00.000282796200559670810737418240.000671088640.00.000817889280.00.00081788928MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
30b16_m1024_n1024_k81921616102410248192bf16bf16bf16FalseFalseFalseTrue0b16_m1024_n1024_k8192ASW_BasicAscend950PRbatch_mat_mul_v3321221B->M->N线性映射+ASW滑窗蛇形(W=4)0151251281921281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A01110002True2tile枚举: P=2, 有界枚举最优 mCnt=2 x nCnt=2 (tile 512x512, 每batch搬入64.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=512.0MB, V_out=32.0MB, L2=128MB); 尾轮: r=0 无尾轮5368709125368709120.000335544320.000103244406153846150.00043878872615384610.00.0274877906944.00.0005655924011193416335544322.097152e-050.00.00056559240111934160.00.0005655924011193416MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
31b4_m32768_n128_k1284432768128128bf16bf16bf16FalseFalseFalseTrue0b4_m32768_n128_k128ASW_BasicAscend950PRbatch_mat_mul_v33216411B->M->N线性映射+ASW滑窗蛇形(W=4)015121281281281双缓冲驻留当前tile输入51212832allocate(输入驻留L2吸收重复读)resident(整case全驻留S_A: 输出驻留L2异步回写, GM写=0)40A01110008True2tile枚举: P=8, 有界枚举最优 mCnt=64 x nCnt=1 (tile 512x128, 每batch搬入10.0MB, r=0); Base tile 512x128 (L0C 单缓冲方形用满); L2场景: A_整case全驻留(输入+输出<=L2) (V_in=32.1MB, V_out=32.0MB, L2=128MB); 尾轮: r=0 无尾轮3368550482575362.105344e-051.5879876923076922e-062.2641427692307692e-050.00.04294967296.08.837381267489712e-06335544326.452775384615385e-060.02.2641427692307692e-050.02.2641427692307692e-05MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
32b8_m32768_n2048_k51288327682048512bf16bf16bf16FalseFalseFalseTrue0b8_m32768_n2048_k512ASW_BasicAscend950PRbatch_mat_mul_v33216441B->M->N线性映射+ASW滑窗蛇形(W=4)015125125121281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100064True2tile枚举: P=4, 有界枚举最优 mCnt=64 x nCnt=4 (tile 512x512, 每batch搬入256.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=272.0MB, V_out=1024.0MB, L2=128MB); 尾轮: r=0 无尾轮28521267218622709760.000178257920.000358129033846153850.00053638695384615390.00.0549755813888.00.001131184802238683210737418240.000671088640.00.00120747559384615380.00.0012074755938461538MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
33b4_m131072_n128_k12844131072128128bf16bf16bf16FalseFalseFalseTrue0b4_m131072_n128_k128ASW_BasicAscend950PRbatch_mat_mul_v332125611B->M->N线性映射+ASW滑窗蛇形(W=4)015121281281281双缓冲驻留当前tile输入51212832allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100032True2tile枚举: P=8, 有界枚举最优 mCnt=256 x nCnt=1 (tile 512x128, 每batch搬入40.0MB, r=0); Base tile 512x128 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=128.1MB, V_out=128.0MB, L2=128MB); 尾轮: r=0 无尾轮134348800334233608.3968e-056.427569230769231e-069.039556923076924e-050.00.017179869184.03.534952506995885e-051342177288.388608e-050.00.000174281649230769220.00.00017428164923076922MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
34b8_m131072_n1024_k256881310721024256bf16bf16bf16FalseFalseFalseTrue0b8_m131072_n1024_k256ASW_BasicAscend950PRbatch_mat_mul_v332125621B->M->N线性映射+ASW滑窗蛇形(W=4)015125122561281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A0111000128True2tile枚举: P=4, 有界枚举最优 mCnt=256 x nCnt=2 (tile 512x512, 每batch搬入256.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=516.0MB, V_out=2048.0MB, L2=128MB); 尾轮: r=0 无尾轮54106521616064184320.000338165760.000308926621538461540.00064709238153846160.00.0549755813888.00.001131184802238683221474836480.001342177280.00.00198926966153846170.00.0019892696615384617MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
35b16_m32768_n8192_k716816163276881927168bf16bf16bf16FalseFalseFalseTrue0b16_m32768_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v332164161B->M->N线性映射+ASW滑窗蛇形(W=4)0151251271681281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A0111000512True2tile枚举: P=2, 有界枚举最优 mCnt=64 x nCnt=16 (tile 512x512, 每batch搬入14336.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=8960.0MB, V_out=8192.0MB, L2=128MB); 尾轮: r=0 无尾轮93952409602311229276160.00587202560.0444467168492307660.050318742449230760.00.061572651155456.00.126692697850732585899345920.005368709120.00.12669269785073250.00.1266926978507325MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
36b4_m32768_n128_k819244327681288192bf16bf16bf16FalseFalseFalseTrue0b4_m32768_n128_k8192ASW_BasicAscend950PRbatch_mat_mul_v33216411B->M->N线性映射+ASW滑窗蛇形(W=4)0151212881921921双缓冲驻留当前tile输入51212832allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A01110008True2tile枚举: P=8, 有界枚举最优 mCnt=64 x nCnt=1 (tile 512x128, 每batch搬入640.0MB, r=0); Base tile 512x128 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=2056.0MB, V_out=32.0MB, L2=128MB); 尾轮: r=0 无尾轮21558722565284823040.001347420160.00010163121230769230.00144905137230769230.00.0274877906944.00.0005655924011193416335544322.097152e-050.00.00147002289230769220.00.0014700228923076922MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
37b32_m131072_n8192_k12832321310728192128bf16bf16bf16FalseFalseFalseTrue0b32_m131072_n8192_k128ASW_BasicAscend950PRbatch_mat_mul_v3321256161B->M->N线性映射+ASW滑窗蛇形(W=4)015125121281281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A01110004096True2tile枚举: P=1, 有界枚举最优 mCnt=256 x nCnt=16 (tile 512x512, 每batch搬入1024.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=1088.0MB, V_out=65536.0MB, L2=128MB); 尾轮: r=0 无尾轮1140850688332188876800.000713031680.0063882476307692310.0071012793107692310.00.08796093022208.00.01809895683581893687194767360.042949672960.00.050050952270769220.00.05005095227076922MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
38b64_m32768_n8192_k153664643276881921536bf16bf16bf16FalseFalseFalseTrue0b64_m32768_n8192_k1536ASW_BasicAscend950PRbatch_mat_mul_v332164161B->M->N线性映射+ASW滑窗蛇形(W=4)0151251215361281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A01110002048True2tile枚举: P=1, 有界枚举最优 mCnt=64 x nCnt=16 (tile 512x512, 每batch搬入3072.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=7680.0MB, V_out=32768.0MB, L2=128MB); 尾轮: r=0 无尾轮80530636801981053665280.00503316480.038097185870769230.043130350670769230.00.052776558133248.00.10859374101491358343597383680.021474836480.00.108593741014913580.00.10859374101491358MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
39b8_m131072_n8192_k81928813107281928192bf16bf16bf16FalseFalseFalseTrue0b8_m131072_n8192_k8192ASW_BasicAscend950PRbatch_mat_mul_v3321256161B->M->N线性映射+ASW滑窗蛇形(W=4)0151251281921281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A01110001024True2tile枚举: P=4, 有界枚举最优 mCnt=256 x nCnt=16 (tile 512x512, 每batch搬入65536.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: C_双侧超L2: 最小替换2D分组(组间落空GM, 窗口L2) (V_in=17408.0MB, V_out=16384.0MB, L2=128MB); 最小替换分组 m_grp=8x n_grp=8 (GM倍率3.76, 窗口L2/batch=57344.0MB); 尾轮: r=0 无尾轮687194767364810363371520.042949672960.092506987913846150.135456660873846140.00.0140737488355328.00.2895833093731029171798691840.010737418240.00.28958330937310290.00.2895833093731029MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
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写最终1765539843932160.000110346247.561846153846153e-080.000110421858461538460.00.02818572288.05.799531456790123e-060.00.02.566079254079254e-070.000110421858461538462.566079254079254e-070.00011067846638694638MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
41b64_m1024_n7168_k71686464102471687168bf16bf16bf16FalseFalseFalseTrue0b64_m1024_n7168_k7168ASW_BasicAscend950PRbatch_mat_mul_v33212141B->M->N线性映射+ASW滑窗蛇形(W=4)0151251271681281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100056True2tile枚举: P=1, 有界枚举最优 mCnt=2 x nCnt=14 (tile 512x512, 每batch搬入392.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=7168.0MB, V_out=896.0MB, L2=128MB); 尾轮: r=0 无尾轮7516192768187904819200.004697620480.00361355421538461520.0083111746953846160.00.06734508720128.00.0138570138274238699395240960.000587202560.00.0138570138274238690.00.013857013827423869MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
42b32_m8192_n8192_k71683232819281927168bf16bf16bf16FalseFalseFalseTrue0b32_m8192_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v332116161B->M->N线性映射+ASW滑窗蛇形(W=4)0151251271681281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A0111000256True2tile枚举: P=1, 有界枚举最优 mCnt=16 x nCnt=16 (tile 512x512, 每batch搬入3584.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=7168.0MB, V_out=4096.0MB, L2=128MB); 尾轮: r=0 无尾轮75161927681127428915200.004697620480.0216813252923076930.0263789457723076940.00.030786325577728.00.0633463489253662542949672960.002684354560.00.063346348925366250.00.06334634892536625MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
43b8_m4096_n4096_k1288840964096128bf16bf16bf16FalseFalseFalseTrue0b8_m4096_n4096_k128ASW_BasicAscend950PRbatch_mat_mul_v3321881B->M->N线性映射+ASW滑窗蛇形(W=4)015125121281281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A011100016True2tile枚举: P=4, 有界枚举最优 mCnt=8 x nCnt=8 (tile 512x512, 每batch搬入16.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=16.0MB, V_out=256.0MB, L2=128MB); 尾轮: r=0 无尾轮167772161174405121.048576e-052.2584713846153845e-053.307047384615384e-050.00.034359738368.07.06990501399177e-052684354560.000167772160.00.000200842633846153830.00.00020084263384615383MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争
44b128_m8192_n8192_k7168128128819281927168bf16bf16bf16FalseFalseFalseTrue0b128_m8192_n8192_k7168ASW_BasicAscend950PRbatch_mat_mul_v332116161B->M->N线性映射+ASW滑窗蛇形(W=4)0151251271681281双缓冲驻留当前tile输入25625664allocate(输入驻留L2吸收重复读)direct_gm(输出直写GM, 输入优先驻留L2)40A01110001024True2tile枚举: P=1, 有界枚举最优 mCnt=16 x nCnt=16 (tile 512x512, 每batch搬入3584.0MB, r=0); Base tile 256x256 (L0C 单缓冲方形用满); L2场景: B_单batch可驻留(全驻留或单侧驻留+对侧滑窗) (V_in=28672.0MB, V_out=16384.0MB, L2=128MB); 尾轮: r=0 无尾轮300647710724509715660800.018790481920.086725301169230770.105515783089230780.00.0123145302310912.00.253385395701465171798691840.010737418240.00.2533853957014650.00.253385395701465MMADTrue计算Bound瓶颈在 Cube 计算: 已接近理论算力上限, 检查是否有冗余计算 (MergeBatch 交叉项) 可消除
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.09.92969696969697e-065368709120.000335544320.00.000336240639999999960.00.00033624063999999996MTE2True访存Bound(GM读写共享+L2重复读)瓶颈在 MTE2 搬移链 (GM 读写共享总线 + L2 重复读): 可增大 tile 提升 dValue/单核搬移量、利用 L2 驻留吸收重复读 (ASW swizzle/分组方向), 或评估输出驻留 L2 以减少 GM 直写与读竞争