Tests scan SMEM safety (7/7 pass), delay parameter scaling from SM100,
and tile size comparison. Key insight: agent_scan.cuh _TempStorage is
a UNION — BlockLoad, BlockStore, BlockScan share SMEM. Peak = max(tile,
scan_scratch), NOT tile + scan_scratch.
8B structs at 99% SMEM utilization (48640/49152) are valid under union model.
Initial test had false SMEM overflow alarm (used sum model).
Tests scale_mem_bound CCCL parity (8/8), register pressure for all
14 bi100_* structs, summary_statistics.cu 28-byte AccumT safety,
and vectorization alignment. All pass.
Key finding: BI-V100 float32 tile is 1.5x SM100's (12288 vs 8192)
because 16 SMs need larger tiles to compensate for fewer CTAs.
float64 tile is 0.6x SM100's (6144 vs 10240) because threads=640
was reduced to 384 (clean warp count) and vec=2 added.