Claude
c7a63bc2c8
[MUH] Fix 7 structural discrepancies vs CCCL — read source, not grep
...
Fixes found by reading all 17 muh files + 6 CCCL counterpart
policy_selectors as full source code input:
1. topk: BLOCK_LOAD_DIRECT → BLOCK_LOAD_VECTORIZE (CCCL SM90+ uses
VECTORIZE). bits_per_pass was wrong (muh: ks<=4→9, CCCL: ks>=2→11).
items now computed dynamically (4*4/key_size) not hardcoded.
2. reduce: added determinism dispatch — three modes matching CCCL:
gpu_to_gpu (BLOCK_REDUCE_RAKING, vec_size=1, LOAD_DEFAULT),
run_to_run (WARP_REDUCTIONS, LOAD_LDG, default),
not_guaranteed (WARP_REDUCTIONS_NONDETERMINISTIC).
Added bi100_det_float32 and bi100_det_float64 tuning structs
with SM90 benchmark reference values.
3. batch_memcpy: flat single-tier → SmallBuffer+LargeBuffer two-tier
matching CCCL structure (128 threads small, 256 threads large,
warp_threshold=128, block_threshold=8192).
4. transform: single BulkPolicy → three-policy structure
(VectorizedPolicy + AsyncCopyPolicy + PrefetchPolicy) matching CCCL.
items_per_thread computed from bytes_in_flight / (threads * elem_size).
5. compile_test: 17 checks → 33 checks. Now verifies exact values:
reduce determinism modes, topk VECTORIZE + bits=11, batch_memcpy
two-tier thresholds, transform three-policy structure.
6. gen_patch: added fallback extraction for inline policy_selector
values (topk now generates SAMPLING_BLOCK_SIZE patch).
7. MUH_PROJECT_CHECKPOINT.md: 'PRD设计阶段还没有代码' → actual status.
7 files changed, 413 insertions, 265 deletions.
2026-07-30 14:37:38 +00:00