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

3.0 KiB

1case_idbranchnpuopused_core_numsplit_bm_cntn_cntgrid_kcore_mapb_coremerge_b0single_core_msingle_core_nsingle_core_kk_l1b_l1l1_formbase_mbase_nbase_kl2_policy_inl2_policy_outswizzle_wworkspace_bytestail_strategyfixpipe_unitflagout_dtype_bytesnote
2merge_demo_1IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4164645125122b_双batch乒乓6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)True2双batch乒乓: 2*(MK+KN)*dtype=256KB <= L1
3iter_demo_1IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4164642562562b_双batch乒乓6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)True2双batch乒乓: 2*(MK+KN)*dtype=128KB <= L1
4iter_demo_2IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)1611281281281282b_双batch乒乓128128128allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)True2双batch乒乓: 2*(MK+KN)*dtype=128KB <= L1
5iter_demo_3IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)64110241024512641d_两侧都切K32102416allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)True2两侧都切K: k_L1=64, K段成对流水, batch边界天然无缝
6iter_demo_4IterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)216464819210241d_两侧都切K6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)True2两侧都切K: k_L1=1024, K段成对流水, batch边界天然无缝
7fp16_out_demoIterBatchAscend950PRbatch_mat_mul_v33232111切B轮转分配(核间零重复读零依赖)4164645125122b_双batch乒乓6464256allocate(GM->L1随路驻留L2)direct_gm(输出仅写一次,直写GM不占L2)00不涉及(核内不切M/N)True2双batch乒乓: 2*(MK+KN)*dtype=256KB <= L1
8to_matmul_demo转MatmulAscend950PRbatch_mat_mul_v3321111010000100000True2BatchA=1或BatchB=1, 折叠转普通Matmul (该分支详实现待后续迭代)
9special_k1特殊分支Ascend950PRbatch_mat_mul_v3321111010000100000True2K=1, Cube 无用, 走 AIV 向量通路 (该分支详实现待后续迭代)
10asw_fallback_demoASW_BasicAscend950PRbatch_mat_mul_v3321111010000100000True2IterBatch/MergeBatch 进入条件均不满足 (如负载均衡/搬移效率不达标), 回落 ASW_Basic (该分支详实现待后续迭代); IterBatch未过: 3_L1驻留形态(四选一, 核心要求: 单batch核内零重复读); MergeBatch未过: 1_batch关系与每核份额: BatchA==BatchB 且 b_core=B/C>=2*b0; 2_L0C容量: 2*(b0*M)*(b0*N)*4B <= L0C; 5_访存Bound: 2MN/(M+N) < R16/b0