Fix #38: 补全昇腾950系列硬件规格 (新增 Ascend950DT 等 4 个 SKU), 默认加载不变
- 数据源: 昇腾950_NPU架构白皮书 表3-1 (系列 SKU) / 表4-2 (Memory 层次) - 新增 hardware/ascend950dt.py: ASCEND950DT (36AIC/72AIV, HBM 4TB/s 144GB, L2 128MB 主bin) + ASCEND950DT_C32 + ASCEND950DT_C28 - ascend950pr.py: 新增 ASCEND950PR_C28 (28核, 1.4TB/s, L2 112MB) 与 gm_capacity_gb 信息字段; 注明 cube_peak_tflops 口径 (= 白皮书 "Cube+Vector 总算力" 行, 与 Cube 单行 432 的 12.5% 偏差待用户裁决) - __init__.py: SPECS 注册表 + get_spec(name), 默认仍为 ASCEND950PR, 现有 import 与调用点零改动 - 共架构交叉验证: 单核 Cube 13.5T (432/32=486/36), Vector fp32 27T/64核≈30T/72核 -> 128lane@1.65GHz; 表4-2 L1/L0/UB 各档一致 - docs/01_软件架构 + README 硬件层说明更新 - tests: TestIssue38 六例 (默认不变/注册表/DT派生量/AIV白皮书验证/DT路由 冒烟/未知KeyError); 87/87 通过; examples 44例 0 diff; 压力回归 10000 例干净, 分支分布与上轮逐数一致
This commit is contained in:
@@ -25,7 +25,9 @@
|
||||
│ └─ constraints.py 单一约束源 (生成与校验共用) │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ 硬件层 (hardware/) │
|
||||
│ └─ ascend950pr.py NpuSpec 参数表 (换芯片只换这份) │
|
||||
│ ├─ ascend950pr.py NpuSpec + 950PR 32/28核 SKU │
|
||||
│ ├─ ascend950dt.py 950DT 36/32/28核 SKU (issue#38) │
|
||||
│ └─ __init__.py SPECS 注册表 + get_spec(name) │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ IO 层 (io_csv.py) case/plan/result 的 csv 读写 │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
@@ -86,7 +88,7 @@ class Branch:
|
||||
|
||||
### 3.3 硬件参数与逻辑分离
|
||||
|
||||
`hardware/ascend950pr.py` 的 `NpuSpec` 集中所有芯片常数(核数/算力/各级容量/带宽/搬移效率经验值/T_cmd)。所有分支通过 `self.spec` 取参数——换芯片时新增一份参数表即可,分支逻辑零改动。
|
||||
`hardware/` 的 `NpuSpec` 集中所有芯片常数(核数/算力/各级容量/带宽/搬移效率经验值/T_cmd)。所有分支通过 `self.spec` 取参数——换芯片时新增一份参数表即可,分支逻辑零改动。已注册 SKU(issue#38,昇腾950 白皮书表3-1/表4-2):`Ascend950PR`(32核主bin)/`Ascend950PR_C28` 与 `Ascend950DT`(36核主bin)/`Ascend950DT_C32`/`Ascend950DT_C28`,经 `hardware.SPECS` / `get_spec(name)` 索引,默认仍为 `ASCEND950PR`。
|
||||
|
||||
### 3.4 时延引擎统一在 timing.py
|
||||
|
||||
@@ -110,6 +112,6 @@ class Branch:
|
||||
当前六分支已全部实现(转Matmul / 特殊 / MergeBatch / IterBatch / StreamK / ASW_Basic)。后续方向:
|
||||
|
||||
1. **转Matmul 精切**: 当前折叠后只粗估(`to_matmul.py::evaluate` 按 Matmul 总量),接入 MM 理论体系做精确切分。
|
||||
2. **换芯片**: 复制 `hardware/ascend950pr.py` 改常数,`NpuSpec` 接口不变。
|
||||
2. **换芯片**: `NpuSpec(name=..., ...)` 派生实例并注册进 `hardware.SPECS`(参考 `ascend950dt.py`),接口不变;默认规格恒为 `ASCEND950PR`。
|
||||
3. **标定 T_cmd**: 当前按 0 处理 (未标定, issue#36; MergeBatch 合并收益已由 move_eff 搬移效率模型刻画, 不依赖 T_cmd 估计值), 实测后改 `t_cmd_ns` 一处即可。
|
||||
4. **新分支**: 在 `branches/` 下加一个文件实现三接口 + 在 `router.py` 注册 + 在 `evaluator._BRANCH_EVAL` 注册;约束一律走 `constraints.py`,不在分支内另造规则。
|
||||
|
||||
Reference in New Issue
Block a user