Files
project_6/muh/schema/select_if.yaml
dylanyunlon 9b21a13119 [MUH] Bootstrap muh toolchain — extract/parse/gen_yaml/gen_patch + baseline.muh
Pipeline:
  1. extract.py: Parses all 26 CCCL tuning_*.cuh → 26 YAML schemas in muh/schema/
  2. parse.py: .muh file parser with extends-inheritance + schema validation
  3. gen_yaml.py: .muh → computility-run.yaml (verified: matches competition reference)
  4. gen_patch.py: .muh → vllm kernel unified diff patches (6 algorithm mappings)
  5. baseline.muh: Competition reference config, all tuning values pending BI-V100 benchmarks

Schemas extracted:
  26 algorithms, 8-19 params each, SM75/80/90/100 reference tunings
  Priority mapping: reduce→attention, topk→sampling, scan→paged_attention,
  transform→activations, batch_memcpy→KV_cache, for→RoPE

Tested: extract→parse→validate→gen_yaml→gen_patch full pipeline passes
2026-07-30 10:39:06 +00:00

509 lines
11 KiB
YAML

# muh schema for select_if
# Auto-extracted from cub/cub/device/dispatch/tuning/tuning_select_if.cuh
# Generated by muh/extract.py
algorithm: select_if
source: cub/cub/device/dispatch/tuning/tuning_select_if.cuh
parameters:
threads_per_block:
type: int
range:
- 32
- 1024
step: 32
items_per_thread:
type: int
range:
- 1
- 32
step: 1
load_algorithm:
type: enum
values:
- BLOCK_LOAD_DIRECT
- BLOCK_LOAD_VECTORIZE
- BLOCK_LOAD_TRANSPOSE
- BLOCK_LOAD_WARP_TRANSPOSE
- BLOCK_LOAD_WARP_TRANSPOSE_TIMESLICED
- BLOCK_LOAD_STRIPED
load_modifier:
type: enum
values:
- LOAD_DEFAULT
- LOAD_CA
- LOAD_CG
- LOAD_CS
- LOAD_CV
- LOAD_LDG
scan_algorithm:
type: enum
values:
- BLOCK_SCAN_RAKING
- BLOCK_SCAN_RAKING_MEMOIZE
- BLOCK_SCAN_WARP_SCANS
lookback_delay.kind:
type: enum
values:
- no_delay
- fixed_delay
- exponential_backoff
- exponential_backoff_jitter
- exponential_backoff_jitter_window
- exponential_backon_jitter_window
- exponential_backon_jitter
- exponential_backon
lookback_delay.delay:
type: int
range:
- 0
- 2000
step: 50
lookback_delay.l2_write_latency:
type: int
range:
- 0
- 2000
step: 50
input_size_bytes:
type: int
range:
- 1
- 1024
step: 1
note: unknown_range
flag_size_bytes:
type: int
range:
- 1
- 1024
step: 1
note: unknown_range
offset_size_bytes:
type: int
range:
- 1
- 1024
step: 1
note: unknown_range
reference_tunings:
sm80:
-
threads: 992
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 576
items: 14
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 256
items: 18
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 192
items: 10
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 384
items: 4
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 224
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 256
items: 20
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 320
items: 10
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 384
items: 6
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 256
items: 5
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 512
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 224
items: 18
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 192
items: 15
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 192
items: 10
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 256
items: 5
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 512
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 224
items: 18
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 192
items: 12
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 192
items: 12
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 256
items: 5
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
sm90:
-
threads: 256
items: 22
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 256
items: 22
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 384
items: 17
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 384
items: 11
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 512
items: 5
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 448
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 448
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 384
items: 15
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 384
items: 11
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 512
items: 3
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 384
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 320
items: 14
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 256
items: 14
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 128
items: 12
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 192
items: 5
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
-
threads: 256
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 512
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 256
items: 20
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 224
items: 6
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 160
items: 5
load_algorithm: BLOCK_LOAD_DIRECT
sm100:
-
threads: 384
nominal_4b_items: 22
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
threads: 448
nominal_4b_items: 20
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 256
nominal_4b_items: 20
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 384
nominal_4b_items: 20
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 384
nominal_4b_items: 15
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 512
nominal_4b_items: 19
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 384
nominal_4b_items: 23
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 512
nominal_4b_items: 5
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 512
nominal_4b_items: 5
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 896
nominal_4b_items: 20
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
threads: 1024
nominal_4b_items: 20
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
threads: 256
nominal_4b_items: 22
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
threads: 448
nominal_4b_items: 20
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 512
nominal_4b_items: 14
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
threads: 384
nominal_4b_items: 14
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
threads: 320
nominal_4b_items: 22
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_CA
-
threads: 384
nominal_4b_items: 21
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_CA
-
threads: 512
nominal_4b_items: 3
load_algorithm: BLOCK_LOAD_DIRECT
-
threads: 512
nominal_4b_items: 3
load_algorithm: BLOCK_LOAD_DIRECT
-
nominal_4b_items: 15
threads: 608
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 22
threads: 320
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 19
threads: 320
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 20
threads: 416
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 22
threads: 576
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 20
threads: 608
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 18
threads: 608
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 14
threads: 512
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 22
threads: 224
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 22
threads: 320
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 19
threads: 608
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 23
threads: 416
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 20
threads: 608
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 22
threads: 288
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 19
threads: 608
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 23
threads: 416
load_algorithm: BLOCK_LOAD_WARP_TRANSPOSE
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 20
threads: 448
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 18
threads: 256
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 19
threads: 256
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 21
threads: 384
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 20
threads: 448
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_CA
-
nominal_4b_items: 14
threads: 320
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 14
threads: 640
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 19
threads: 384
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 24
threads: 256
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 18
threads: 256
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 11
threads: 448
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 20
threads: 384
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 12
threads: 256
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 12
threads: 256
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 14
threads: 352
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
-
nominal_4b_items: 11
threads: 512
load_algorithm: BLOCK_LOAD_DIRECT
load_modifier: LOAD_DEFAULT
nominal_4B_items_per_thread: 10
bi_v100:
status: pending_benchmark
note: Run muh benchmark on Iluvatar BI-V100 to fill these values
threads_per_block: TBD
items_per_thread: TBD