Fix issues #23-#25 (+#26 标注): GM读写共享总线累加计时 / ASW-切M/N 共享块 GM首读1次+L2重复读(n-1)次、场景按单batch判定、分组预算不再除B / StreamK 按plan实际tile芯片口径评估 / 降核线性带宽假设文档标注

This commit is contained in:
2026-09-04 11:43:23 +08:00
parent f4b23d9f05
commit 4843053ad3
10 changed files with 248 additions and 180 deletions

View File

@@ -134,7 +134,7 @@ class TestTimingSanity(unittest.TestCase):
# MergeBatch case 必为访存 Bound (进入条件 5)
case = mkcase(128, 64, 64, 512)
mb = MergeBatchBranch().analyze(case)
self.assertIn(mb.timing.bottleneck, ("MTE2_GM", "MTE2_L2"))
self.assertIn(mb.timing.bottleneck, ("MTE2", "MMAD"))
def test_fixpipe_dtype_conversion(self):
# C 指定 fp16 输出时, 写出量按 2B 而非 L0C 的 4B
@@ -224,10 +224,9 @@ class TestIssueRegression2(unittest.TestCase):
t = sk.timing
self.assertAlmostEqual(t.t_fixpipe, 0.0) # 归约串行口径下无稳态 fixpipe 账
self.assertAlmostEqual(t.fixpipe_bytes, 0.0)
# 端到端 = max(MTE2, MMAD) + 归约, 不再虚高到 55us/FIXPIPE
expect = max(t.t_mte2, t.t_mmad) + t.t_reduce
self.assertAlmostEqual(t.t_total, expect)
self.assertEqual(t.bottleneck, "MTE2_GM")
# 端到端 = 稳态(MTE2搬移链) + 归约, fixpipe 无重复账
self.assertEqual(t.bottleneck, "MTE2")
self.assertAlmostEqual(t.t_total, t.t_steady + t.t_drain)
def test_issue12_k1_pingpong_still_ok(self):
# issue#12/#17: K=1 且 B>=128 仍走 UB 乒乓 (原行为不变)