[MUH] Derive BI-V100 tuning values from hardware specs — fix 5 SMEM overflow bugs
Previous values were copied verbatim from SM100 (B200). Three of those
crash on BI-V100 because tile_size = threads * items * accum_size exceeds
the 48KB SMEM limit:
REDUCE:
float64+o4: SM100(640,16) → tile=81920 > 49152 → BI-V100(512,12) tile=49152
int64+o4: SM100(512,15) → tile=61440 > 49152 → BI-V100(384,16) tile=49152
int64+o8: SM100(512,15) → tile=61440 > 49152 → BI-V100(384,16) tile=49152
SCAN:
8B_o4: SM100(416,23) → tile=76544 > 49152 → BI-V100(416,14) tile=46592
8B_o8: SM100(320,22) → tile=56320 > 49152 → BI-V100(320,19) tile=48640
SCAN DELAY DERIVATION:
SM100 L2=50MB, BI-V100 L2=6MB (8.3x smaller cache).
Smaller L2 → faster coherence → shorter busy-wait delays.
Applied: ns *= 0.5, l2w *= 0.6 across all 6 lookback tunings.
Example: 4B_o4 delay 1904ns→952ns, l2w 830→498.
TRANSFORM:
min_bytes_in_flight: SM100=64KB but BI-V100 per-SM BW (18 GB/s) matches
A100 (18.5 GB/s), not H100/B200. Changed 48KB → 16KB (A100 level).
compile_test: 35/35 including SMEM overflow regression test.