Update BMM_Theory: bmm_theory/branches/merge_batch.py
This commit is contained in:
@@ -82,6 +82,20 @@ class MergeBatchBranch(Branch):
|
||||
"5_访存Bound: 2MN/(M+N) < R16/b0",
|
||||
c5, f"AI={ai:.1f} vs R16/b0={s.r16/MIN_B0:.1f}"))
|
||||
|
||||
# 条件 6: 转置对齐 (参考 bmmv3 源码条件 17/20)
|
||||
# A 转置且 M>1 时, tempAlignM = b0 * alignM (M 维按 b0 对齐)
|
||||
# A 转置或 B 不转置时, minBaseK 需按 basic_block_size 对齐
|
||||
from ..models import align_up
|
||||
if case.trans_a and m > 1:
|
||||
temp_align_m = MIN_B0 * align_up(m, s.fractal)
|
||||
l0a_need_trans = temp_align_m * s.fractal * dt * 2
|
||||
c6 = l0a_need_trans <= s.l0a_bytes
|
||||
checks.append(ConditionCheck(
|
||||
"6_A转置对齐: A转置时 tempAlignM=b0*alignM 需驻留 L0A",
|
||||
c6, f"tempAlignM={temp_align_m}, L0A需{l0a_need_trans/1024:.0f}KB(≤{s.l0a_bytes/1024:.0f})"))
|
||||
else:
|
||||
checks.append(ConditionCheck("6_A转置对齐", True, "A不转置或M=1, 无额外对齐要求"))
|
||||
|
||||
return checks
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user