42 lines
3.9 KiB
Plaintext
42 lines
3.9 KiB
Plaintext
=== to_matmul_demo: B=1 M=2048 N=2048 K=2048 bf16 -> [转Matmul]
|
|
仲裁: BatchA=1或BatchB=1, 折叠转普通Matmul
|
|
方案: 核数=32 切分=B1xM0xN0xK1 b_core=0 b0=1 k_L1=0 L1形态=
|
|
时延: 总=35.35us 稳态=35.35 drain=0.00 | MTE2=10.49(GM=10.49+cmd=0.00) MMAD=35.35 FIX=5.24 | 瓶颈=MMAD
|
|
=== special_k0_demo: B=128 M=256 N=256 K=0 bf16 -> [特殊分支]
|
|
仲裁: K=0纯写值
|
|
方案: 核数=64 切分=B1xM1xN1xK1 b_core=0 b0=1 k_L1=0 L1形态=UB驻留(AIV)
|
|
时延: 总=10.49us 稳态=10.49 drain=0.00 | MTE2=0.00(GM=0.00+cmd=0.00) MMAD=0.00 FIX=10.49 | 瓶颈=FIXPIPE
|
|
=== special_k1_demo: B=128 M=256 N=256 K=1 bf16 -> [特殊分支]
|
|
仲裁: K=1逐元素乘, 走AIV向量通路
|
|
方案: 核数=64 切分=B1xM1xN1xK1 b_core=0 b0=1 k_L1=0 L1形态=UB驻留(AIV) UB乒乓
|
|
时延: 总=10.49us 稳态=10.49 drain=0.00 | MTE2=0.08(GM=0.08+cmd=0.00) MMAD=0.62 FIX=10.49 | 瓶颈=FIXPIPE
|
|
=== merge_demo_k_trunc: B=2048 M=32 N=32 K=256 bf16 -> [MergeBatch]
|
|
仲裁: 两分支均合法, 仲裁: [分界条件] MergeBatch最优=True (k_L1=K(截断); b_core=64 vs 阈值 b0*(T_comp+T_write)/T_cmd=6.0; drain惩罚=(b0-1)*(T_comp+T_write)=0.23us, 搬移节省=b_core*(1-1/b0)*T_cmd=2.40us); [时延模型] T_MergeBatch=43.04us vs T_IterBatch=45.22us -> MergeBatch更优; [裁决] MergeBatch
|
|
方案: 核数=32 切分=B32xM1xN1xK1 b_core=64 b0=4 k_L1=256 L1形态=合并驻留
|
|
时延: 总=43.04us 稳态=42.74 drain=0.30 | MTE2=42.74(GM=41.94+cmd=0.80) MMAD=8.84 FIX=2.62 | 瓶颈=MTE2_GM
|
|
=== merge_iter_arbitrate: B=128 M=64 N=64 K=512 bf16 -> [IterBatch]
|
|
仲裁: 两分支均合法, 仲裁: [分界条件] MergeBatch最优=False (k_L1=K(截断); b_core=4 vs 阈值 b0*(T_comp+T_write)/T_cmd=17.6; drain惩罚=(b0-1)*(T_comp+T_write)=0.44us, 搬移节省=b_core*(1-1/b0)*T_cmd=0.10us); [时延模型] T_MergeBatch=11.49us vs T_IterBatch=11.13us -> IterBatch更优; [裁决] IterBatch
|
|
方案: 核数=32 切分=B32xM1xN1xK1 b_core=4 b0=1 k_L1=512 L1形态=b_双batch乒乓
|
|
时延: 总=11.13us 稳态=10.69 drain=0.44 | MTE2=10.69(GM=10.49+cmd=0.20) MMAD=1.10 FIX=0.66 | 瓶颈=MTE2_GM
|
|
=== iter_demo_form_b: B=128 M=64 N=64 K=256 bf16 -> [IterBatch]
|
|
仲裁: 仅 IterBatch 条件满足
|
|
方案: 核数=32 切分=B32xM1xN1xK1 b_core=4 b0=1 k_L1=256 L1形态=b_双batch乒乓
|
|
时延: 总=5.74us 稳态=5.44 drain=0.30 | MTE2=5.44(GM=5.24+cmd=0.20) MMAD=0.55 FIX=0.66 | 瓶颈=MTE2_GM
|
|
=== iter_demo_form_d: B=64 M=64 N=64 K=8192 bf16 -> [IterBatch]
|
|
仲裁: 仅 IterBatch 条件满足
|
|
方案: 核数=32 切分=B32xM1xN1xK1 b_core=2 b0=1 k_L1=1024 L1形态=d_两侧都切K
|
|
时延: 总=85.40us 稳态=84.69 drain=0.72 | MTE2=84.69(GM=83.89+cmd=0.80) MMAD=8.84 FIX=0.33 | 瓶颈=MTE2_GM
|
|
=== streamk_demo: B=4 M=128 N=128 K=10240 bf16 -> [StreamK]
|
|
仲裁: P<=C/2, B/M/N并行度买不满, 切K (grid_K=32)
|
|
方案: 核数=32 切分=B1xM1xN1xK32 b_core=1 b0=1 k_L1=256 L1形态=K段标准分块流水
|
|
时延: 总=9.96us 稳态=6.55 drain=3.41 | MTE2=6.55(GM=6.55+cmd=0.00) MMAD=2.76 FIX=0.00 | 瓶颈=MTE2_GM
|
|
=== asw_demo_full: B=2 M=8192 N=8192 K=1024 bf16 -> [ASW_Basic]
|
|
仲裁: ASW_Basic兜底 (StreamK未过: 1_并行缺口: P=B*MN*4B/L0C <= C/2; 2_单核K段下限: K/grid_K >= 256B/dtype 且 grid_K>=2; 3_归约代价可接受)
|
|
方案: 核数=32 切分=B1xM47xN47xK1 b_core=0 b0=1 k_L1=256 L1形态=双缓冲驻留当前tile输入
|
|
时延: 总=565.59us 稳态=565.59 drain=0.00 | MTE2=41.94(GM=41.94+cmd=0.00) MMAD=565.59 FIX=167.77 | 瓶颈=MMAD
|
|
=== asw_demo_reduce_core: B=16 M=256 N=256 K=128 bf16 -> [ASW_Basic_降核]
|
|
仲裁: ASW_Basic兜底 (StreamK未过: 2_单核K段下限: K/grid_K >= 256B/dtype 且 grid_K>=2)
|
|
方案: 核数=16 切分=B1xM1xN1xK1 b_core=0 b0=1 k_L1=128 L1形态=标准核内流水
|
|
时延: 总=2.62us 稳态=2.62 drain=0.00 | MTE2=2.62(GM=2.62+cmd=0.00) MMAD=1.10 FIX=2.62 | 瓶颈=MTE2_GM
|
|
[recommend] 10 个 case -> t.csv
|