28. 时延估算未按输入dtype取算力: Cube恒用BF16/AIV恒用fp32, 需dtype感知速率表 #28
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题确认: 时延估算没有按输入 dtype 选算力
现场 (代码)
t_mmad = flops / spec.q16, q16 恒为 BF16 486TFLOPS/32 —— fp16/bf16 正确, 但 fp32/tf32(更慢)、fp8/fp4(更快, 白皮书: FP8/MXFP8/HiF8=2x FP16, MXFP4=4x FP16)全按 BF16 计。spec.q_aiv由aiv_fp32_per_cycle=128推出, fp32 元素速率写死; K=1 逐元素乘 (special.py) 输入是 bf16 却按 fp32 速率算。数值例证 (result_recommend.csv)
special_k1_b64: B=64 M=8192 N=512 K=1, bf16 → t_mmad 列 19.86us = B*MN/Q_AIV_fp32(13.5T 元素/s); bf16 向量单元按 2x 通量应为 ≈9.93us。
建议修复 (估算时延一律按输入 dtype 取算力)
A/B dtype 不一致时按两者中"更慢"的取因子; StreamK 归约是对 fp32 部分和求和, AIV 仍按 fp32 通量(不变)。入口条件的 R16 也按 dtype 缩放。数值表为模型假设项, 需 msProf 实测标定 (同 #26 风格)。
修复 commit:
b9e07ed落地:
验证: 单元测试 49/49; 压力回归 10000 例 0 异常; demo 44 例全 bf16 时延数值不变 (仅列口径/输出落点变化见 #30)。