[muh] 首批 BI-V100 实测数据写入 3 个 tuning headers: scan/topk/transform
这是项目历史上第一次用真实 benchmark 数据替换拍脑袋参数。
scan.cuh — bi100_lookback_4B_o4:
实测: dcid_0.ipt_22.l2w_500.ld_0.ns_1904.tpb_384.trp_1
speedups: 1.038085 1.009473 1.007679 1.005803 SMEM=33792 (69%)
关键发现: ns×0.5 假设是错的。实测最优 ns=1904 (和 SM100 原值相同)。
dcid=0 (no_delay) 胜过 dcid=6 (exponential_backon_jitter)。
原因: 16 SMs = ~32 CTAs, lookback contention 极小, 不需要 delay 策略。
改动: delay 从 {exponential_backon_jitter, 952, 498} → {no_delay, 1904, 500}
topk.cuh:
实测: ipt_4.ld_0.tpb_512 speedups: 1.039611 1.000222 1.004295
确认 CCCL SM90+ 公式 (items=4*4/key_size=4, threads=512) 在 BI-V100 上也是最优。
ld=0 (LOAD_DEFAULT) 胜过 ld=1 at small sizes。
ipt=16 在 32K+ 明显回退 → items 不能太大。
transform.cuh — bytes_in_flight:
实测: alg_1.bif_8.pref_2.tpb_256.unrl_1.vsp2_1 1.203199 1.058919 1.019168
bif=8 (64KB) 全面胜过 bif=0 (32KB) 和 bif=-8 (16KB)。
Top 30 结果全部是 bif=8 → 高置信度。
改动: bi100_bytes_in_flight 从 32KB → 64KB。
物理解释: 56 GB/s per SM × ~1100ns HBM latency ≈ 62KB, 和 64KB 吻合。
跨算法发现:
- BI-V100 的 16 SMs 使得 inter-CTA contention 很低
- CCCL 的 delay 策略 (为 80-148 SMs 设计) 在 16 SMs 上过度保守
- 各算法的 threads/items 最优值和 SM100 接近, 但 delay/bif 参数差异大