Fix #39: Ascend950DT L2 带宽定为 7.5TB/s (读写各自独享)
- 用户澄清口径: 950DT L2 = 7.5TB/s, 读写各自独享 (白皮书未分档, issue#38 曾沿用 950PR 的 5.2TB/s 待标定) - ascend950dt.py: 三个 DT SKU (36/32/28核) bw_l2 = 7.5e12, 文档串同步 - 模型无结构改动: bw_l2 单字段本就是"读口/写口各自独享"语义 (L2 重复读与 Fixpipe→L2 写分开计账, assemble_timing issue#23 口径); 950PR 各档维持 5.2TB/s - tests: DT 三档 bw_l2=7.5e12 / PR 两档 5.2e12 锁定 + bw_l2_pc 派生 + S_A 场景 DT fixpipe 走 7.5TB/s 写口端到端验证; 88/88 通过; examples 44 例 0 diff; 压力回归 10000 例干净
This commit is contained in:
@@ -1038,6 +1038,7 @@ class TestIssue38(unittest.TestCase):
|
||||
s = ASCEND950PR
|
||||
self.assertEqual((s.aic_num, s.aiv_num), (32, 64))
|
||||
self.assertEqual(s.bw_gm, 1.6e12)
|
||||
self.assertEqual(s.bw_l2, 5.2e12) # PR 保持 5.2TB/s
|
||||
self.assertEqual(s.l2_bytes, 128 * 1024 * 1024)
|
||||
self.assertAlmostEqual(s.q16, 486e12 / 32)
|
||||
self.assertEqual(s.gm_capacity_gb, 128.0)
|
||||
@@ -1066,6 +1067,10 @@ class TestIssue38(unittest.TestCase):
|
||||
self.assertEqual(ASCEND950DT.l2_bytes, 128 * 1024 * 1024)
|
||||
self.assertEqual(ASCEND950DT.gm_capacity_gb, 144.0)
|
||||
self.assertEqual(ASCEND950DT.cube_peak_tflops, 547.0)
|
||||
# L2 带宽: DT 三档 7.5TB/s 读写各自独享 (issue#39 用户澄清)
|
||||
for dt_spec in (ASCEND950DT, ASCEND950DT_C32, ASCEND950DT_C28):
|
||||
self.assertEqual(dt_spec.bw_l2, 7.5e12)
|
||||
self.assertAlmostEqual(ASCEND950DT.bw_l2_pc, 7.5e12 / 36)
|
||||
self.assertEqual((ASCEND950DT_C32.aic_num,
|
||||
ASCEND950DT_C32.cube_peak_tflops), (32, 486.0))
|
||||
self.assertEqual((ASCEND950DT_C28.aic_num,
|
||||
@@ -1084,6 +1089,7 @@ class TestIssue38(unittest.TestCase):
|
||||
self.assertEqual((ASCEND950PR_C28.aic_num,
|
||||
ASCEND950PR_C28.aiv_num), (28, 56))
|
||||
self.assertEqual(ASCEND950PR_C28.bw_gm, 1.4e12)
|
||||
self.assertEqual(ASCEND950PR_C28.bw_l2, 5.2e12) # PR 系列保持 5.2TB/s
|
||||
self.assertEqual(ASCEND950PR_C28.l2_bytes, 112 * 1024 * 1024)
|
||||
self.assertEqual(ASCEND950PR_C28.gm_capacity_gb, 112.0)
|
||||
|
||||
@@ -1100,6 +1106,15 @@ class TestIssue38(unittest.TestCase):
|
||||
r_pr = BranchRouter().route(case)
|
||||
self.assertGreater(r_dt["timing"].t_total, 0.0)
|
||||
self.assertLess(r_dt["timing"].t_mte2_gm, r_pr["timing"].t_mte2_gm)
|
||||
def test_dt_l2_bw_effective_in_fixpipe(self):
|
||||
# issue#39: S_A (整case驻留L2) 下 DT 的 fixpipe 走 7.5TB/s 写口
|
||||
from bmm_theory.hardware import ASCEND950DT
|
||||
case = mkcase(2, 4096, 4096, 512) # 输入+输出 < 128MB -> S_A
|
||||
self.assertLess(case.input_bytes + case.output_bytes,
|
||||
ASCEND950DT.l2_bytes)
|
||||
r = BranchRouter(ASCEND950DT).route(case)
|
||||
self.assertAlmostEqual(r["timing"].t_fixpipe,
|
||||
case.output_bytes / 7.5e12)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user