Files
project_6/muh/include
muh-pipeline a7e0ef1138 [ENGINE] scan tuning: document GridThreshold=500 gate from CCCL source
Read cub/agent/single_pass_scan_operators.cuh lines 136-148:
  delay<Delay, GridThreshold=500>() {
    if (gridDim.x < GridThreshold) __threadfence_block();
    else __nanosleep(Delay);
  }

BI-V100: 16 SMs × ~10 CTAs/SM = ~160 CTAs. Always < 500.
Therefore ALL delay strategies collapse to __threadfence_block().
The ns/dcid/l2w parameters are architectural no-ops on BI-V100.

This explains bench_bi100.py finding no_delay optimal — not a lucky
guess but a hard gate in CCCL's tile synchronization code. The
'ns×0.5, l2w×0.6' scaling was always computing values that would
never be used (delay() never reaches the __nanosleep branch).

Source: single_pass_scan_operators.cuh (full read, 200 lines)
2026-08-06 02:22:13 +00:00
..