[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-compileiq-debug":3,"mdc--fe9oiw-key":34,"related-org-nvidia-compileiq-debug":2377,"related-repo-nvidia-compileiq-debug":2535},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"compileiq-debug","debug CompileIQ search and evaluation failures","Use when something is wrong: Search() hangs, all evaluations return INVALID_SCORE, scores aren't improving, every config returns the same number, ptxas errors fill the log, CV% is too high, or a winning ACF candidate needs NCU profiling to explain. Symptom-indexed table on top. Triggers on \"compileiq hang\", \"socket timeout\", \"INVALID_SCORE\", \"not converging\", \"every score is the same\", \"TypeError fromhex\", \"ncu profile\", \"register spill\", \"ptxas error\", \"not in expected format\", \"high cv\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Debugging","debugging",107,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FCompileIQ","2026-07-14T05:32:05.08078","Apache-2.0",8,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"An Optimizer for Nvidia Compilers.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FCompileIQ\u002Ftree\u002FHEAD\u002Fagent-skills\u002Fcompileiq-debug","---\nname: compileiq-debug\ndescription: >\n  Use when something is wrong: Search() hangs, all evaluations return\n  INVALID_SCORE, scores aren't improving, every config returns the same\n  number, ptxas errors fill the log, CV% is too high, or a winning ACF\n  candidate needs NCU profiling to explain. Symptom-indexed table on top.\n  Triggers on \"compileiq hang\", \"socket timeout\", \"INVALID_SCORE\",\n  \"not converging\", \"every score is the same\", \"TypeError fromhex\",\n  \"ncu profile\", \"register spill\", \"ptxas error\",\n  \"not in expected format\", \"high cv\".\nwhen_to_use: |\n  - User reports any unexpected behavior from Search() or its results.\n  - User wants to NCU-profile a winning ACF to understand WHY it helps.\n  - High CV% on validation runs that won't drop with longer warmup.\n  Don't use when:\n  - It's actually an environment problem (use compileiq-bootstrap first).\n  - The search ran fine and the user just wants to validate (use\n    compileiq-validate-result).\nlicense: Apache-2.0\nmetadata:\n  version: \"1.0.0\"\n  author: NVIDIA CompileIQ\n  domain: compiler-optimization\nallowed-tools: Bash Read\npaths: [\"**\u002F*.py\", \"**\u002F*.csv\", \"**\u002F*.ptx\", \"**\u002F*.acf\"]\n---\n\n# compileiq-debug\n\nA symptom-indexed cheat sheet. Find the row that matches what the user is\nseeing, follow the first action, then dig into the matching detail section.\n\n## Symptom table\n\n| Symptom | Most-likely cause | First action |\n|---|---|---|\n| Search hangs on first eval; socket timeout | Search space too large for default `CIQ_SOCKET_TIMEOUT=20`; OR release fetch slow\u002Fblocked; OR `forkserver` issue | Raise `CIQ_SOCKET_TIMEOUT=120`; if still hangs, `CIQ_SEARCH_SPACES_DIR=\u003Clocal mirror>`; if still hangs, `CIQ_PROCESS_MODE=spawn`. **Do NOT** symlink BLAS — that fix is obsolete |\n| Every eval returns `INVALID_SCORE` | Return-type mismatch (tuple vs scalar) \u002F correctness gate \u002F `task_timeout` too tight | `Search.sample(1)` + call objective by hand; check `num_objectives` vs return shape; raise `task_timeout` |\n| Every eval returns the **same** score | ACF not reaching the compiler — framework cache is hiding it | Apply Debug-pack `O0` ACF by hand; if the score doesn't regress, fix cache-bust (`TRITON_ALWAYS_COMPILE=1`, `HELION_SKIP_CACHE=1`, fresh `TRITON_CACHE_DIR`, drop FlashInfer cubin packages) |\n| `TypeError: fromhex() … not dict` | Legacy `bytes.fromhex(config_blob)` in objective | Replace with `save_compiler_config(acf_path, config)` — see `compileiq-author-objective` |\n| `\"not in expected format\"` | Objective returned wrong shape | `num_objectives` must equal `len(return_tuple)`; scalar return only when `num_objectives=1` |\n| Convergence stalled (best score flat) | Pool too small for space; mutate_rate too low; or kernel near-optimal | Raise `pool_size`; raise `mutate_rate`; sample diversity with `Search.sample(20)` |\n| Increasing invalid rate over generations | Mutation arm spreading; compiler version drift mid-run | `CIQ_KEEP_CACHE=1`, re-run, inspect failing configs offline |\n| CV% > 10% on validation | Unlocked clocks \u002F thermal throttling \u002F GPU contention | Lock GPU + memory clocks; pin `CUDA_VISIBLE_DEVICES`; watch `nvidia-smi dmon` for thermals |\n| Need to know *why* a winning ACF helps | Profile with NCU | See **NCU section** below |\n\n## Details\n\n### Socket timeout \u002F hang on first eval\n\n> Not BLAS. Do not send users to symlink `libblas.so`.\n\nCurrent shipped binaries link only `libm`\u002F`libc`\u002F`libstdc++`\u002F`libgcc_s` and\ndo not require BLAS\u002FLAPACK.\n\nReal causes today, in order of frequency:\n\n1. **`CIQ_SOCKET_TIMEOUT` too low.** Default is 20 seconds, which is fine for\n   small search spaces but fails on big ones. Raise to 120 first; raise to\n   300+ for very large spaces.\n2. **Release-backed search-space fetch is slow or blocked.** First call to\n   `PtxasSearchSpace().retrieve()` downloads from `github.com`. On a corporate\n   firewall this can stall. Pre-stage the mirror:\n   ```bash\n   gh release download search-spaces-latest -R NVIDIA\u002FCompileIQ -D \u002Fshared\u002Fmirror\n   export CIQ_SEARCH_SPACES_DIR=\u002Fshared\u002Fmirror\n   ```\n3. **`forkserver` is unsupported on the host.** Set `CIQ_PROCESS_MODE=spawn`.\n   `IsoMultiProcessWorker` already uses `fork` by default.\n\n### Every eval returns INVALID_SCORE\n\nSanity-check the shape before assuming the worst:\n\n```python\nsample = tuner.sample(1)[0]\nscore = objective(sample)\nprint(type(score), score)\n```\n\nCommon shape mismatches:\n\n- `num_objectives=1` but `objective` returns a tuple `(latency,)`. Drop the\n  trailing comma.\n- `num_objectives=2` but `objective` returns a scalar.\n- Correctness gate is rejecting everything because the reference call itself\n  is wrong.\n- `task_timeout` is shorter than a clean compile takes; raise it.\n\n### Every eval returns the SAME score\n\nAlmost always a framework cache serving a stale binary. **Run the O0\u002FO3 canary\nfrom the Debug pack** to confirm — see `compileiq-booster-pack` for the exact\ntest. If O0 doesn't regress vs baseline, the ACF is not reaching PTXAS. Fix:\n\n| Framework | Cache-bust |\n|---|---|\n| Triton | `TRITON_ALWAYS_COMPILE=1` + unique `TRITON_CACHE_DIR` per eval |\n| Helion | `HELION_SKIP_CACHE=1` |\n| FlashInfer | Confirm `flashinfer_cubin` and `flashinfer_jit_cache` packages are absent (`docs\u002Fflashinfer_booster.md:56-64`) |\n| Raw nvcc | Clean the build dir between candidates |\n\n### TypeError around fromhex\n\nLegacy pattern from the pre-2026 skill set:\n\n```python\n# OLD — DO NOT USE\ndef objective(config_blob):\n    with open(tmp_path, \"wb\") as f:\n        f.write(bytes.fromhex(config_blob))\n    ...\n```\n\nReplace with:\n\n```python\nfrom compileiq.utils.helpers import save_compiler_config\n\ndef objective(config: str):\n    save_compiler_config(tmp_path, config)\n    ...\n```\n\n`save_compiler_config` does the `bytes.fromhex` internally. See\n`compileiq-author-objective` for the full pattern.\n\n### \"Not in expected format\"\n\nThe objective returned a shape CompileIQ's core doesn't expect. Rules:\n\n- `num_objectives=1`: objective must return a single scalar (`int` | `float`).\n  Not a 1-tuple, not a list.\n- `num_objectives>=2`: objective must return a tuple or list of that length.\n\n```python\nresult = objective(sample)\nassert (\n    (search_config.num_objectives == 1 and isinstance(result, (int, float)))\n    or (search_config.num_objectives  > 1 and len(result) == search_config.num_objectives)\n), f\"shape mismatch: {result!r} vs num_objectives={search_config.num_objectives}\"\n```\n\n### Convergence stalled\n\nThree causes, in order:\n\n1. **Pool too small for the space.** `pool_size = max(2 * num_objectives + 1, 32)` is the auto-derived floor — for spaces with >1k design points, raise to 64-128.\n2. **Mutation rate too low.** Default `mutate_rate=0.25`. Raise to 0.3-0.5 if the search is converging on the first generation.\n3. **The kernel is genuinely near-optimal.** Verify by running `Search.sample(20)` and timing each sample by hand — if the spread is \u003C5%, the search space is shallow.\n\n### Increasing invalid rate\n\nProbably a mutation arm spreading a structurally-bad config across the\npopulation. Re-run with `CIQ_KEEP_CACHE=1` so the failing configs are\npreserved at `~\u002F.cache\u002Fcompileiq\u002F`, then replay them by hand to identify the\ncommon factor.\n\n### High CV% on validation\n\n> If `cv = std\u002Fmean > 10%`, validation can't tell the signal from the noise.\n\nFixes, in order:\n\n1. Lock GPU and memory clocks (see `compileiq-run-search` for the\n   `nvidia-smi --lock-*-clocks` snippet).\n2. Pin `CUDA_VISIBLE_DEVICES=\u003Cgpu>` so the validation has the GPU to itself.\n3. Watch `nvidia-smi dmon -i \u003Cgpu> -s pucvm` for thermal throttling events.\n4. Raise warmup count (50 → 100) and trial count (100 → 200).\n5. Switch from `cudaEvent` to NVBench (entropy-based stopping criterion, cold-cache between samples).\n\n## CIQ_KEEP_CACHE for post-mortem\n\nWhen a search misbehaves, re-run with:\n\n```bash\nexport CIQ_KEEP_CACHE=1\n```\n\nThe cache at `~\u002F.cache\u002Fcompileiq\u002F` is preserved after the run. You can:\n\n- Inspect each generation's serialized configs.\n- Replay a specific config without paying for a whole new search.\n- Compare two runs by diffing their cache directories.\n\n## Diagnose from the dump_results CSV\n\nQuick pandas snippet:\n\n```python\nimport pandas as pd\ndf = pd.read_csv(\"results.csv\")\ndf[\"score_numeric\"] = pd.to_numeric(df[\"score_1\"], errors=\"coerce\")\n\ngen_summary = df.groupby(\"generation\").agg(\n    n=(\"score_numeric\", \"size\"),\n    invalid=(\"score_numeric\", lambda s: s.isna().sum() + (s > 1e10).sum()),\n    best=(\"score_numeric\", \"min\"),\n)\nprint(gen_summary)\n```\n\nIf `invalid` doesn't decrease across generations, your search is structurally\nbroken — try the O0\u002FO3 canary in `compileiq-author-objective`.\n\nFor an automated version: `python scripts\u002Fdiagnose_csv.py results.csv`.\n\n## NCU section (replaces old \u002Fcompileiq-profile)\n\nProfile **only after a validated ACF candidate exists**. Don't profile every\nconfig — it's slow.\n\n### Two-shot pattern\n\n```bash\n# Baseline (no ACF)\nncu --set full -o baseline -f --kernel-name my_kernel python bench.py\n\n# ACF-applied — match the injection your objective uses\n# Raw PTXAS:\nncu --set full -o opt -f --kernel-name my_kernel \\\n    bash -c 'PTXAS_OPTIONS=\"--apply-controls=best.acf\" python bench.py'\n# NVCC build:\nnvcc -Xptxas --apply-controls=best.acf bench.cu -o bench && \\\n    ncu --set full -o opt -f --kernel-name my_kernel .\u002Fbench\n\n# Diff\nncu --import baseline.ncu-rep --import opt.ncu-rep --csv --page raw > diff.csv\n```\n\n### Five metrics that explain most CompileIQ wins\n\n| Metric | What it means |\n|---|---|\n| `sm__throughput.avg.pct_of_peak_sustained_elapsed` | Compute throughput |\n| `gpu__compute_memory_throughput.avg.pct_of_peak_sustained_elapsed` | Memory throughput |\n| `sm__warps_active.avg.pct_of_peak_sustained_active` | Achieved occupancy |\n| `launch__registers_per_thread` | Register pressure |\n| `l2__throughput.avg.pct_of_peak_sustained_elapsed` | L2 pressure |\n\nIf the ACF moved any of these meaningfully, that's the mechanism. If none of\nthem moved but the win is real, look at lower-level metrics (warp stalls,\nissue slot utilization) — those are harder to interpret but often the answer.\n\n### Register-spill check (no NCU needed)\n\n```bash\nptxas -v -arch=sm_100 --apply-controls best.acf kernel.ptx 2>&1 \\\n    | grep -E \"registers|spill|stack\"\n```\n\nReports `Used N registers, X bytes stack frame, Y bytes spill stores,\nZ bytes spill loads`. If `Y + Z` goes **up** vs baseline, the ACF traded\nregister pressure for memory traffic — sometimes a real win, sometimes not.\nInvestigate before shipping.\n\n## Self-test\n\n```bash\npython scripts\u002Fdiagnose_csv.py --self-test\n```\n\nSynthesizes a small `results.csv` covering each pathology (clean convergence,\nrising invalid rate, stalled best-score) and asserts the heuristic\nclassifications match.\n\n## Explicitly dropped from this skill (vs old \u002Fcompileiq-debug + \u002Fcompileiq-profile)\n\n- **BLAS symlink section** — obsolete; current binaries don't link BLAS\n  (verified by `ldd`). Carrying it forward sends users on a wild goose chase.\n- **Verbose `COMMON_PTXAS_ERRORS` dict** mapping individual ptxas error\n  strings to fixes — users get `INVALID_SCORE` instead, no need to recognize\n  specific messages.\n- **Duplicate CUDA 13.3+ check** — lives in `compileiq-bootstrap`.\n- **`validate_objective_function` introspection helper** — replaced by\n  `Search.sample(1)` + the Debug-pack O0\u002FO3 canary.\n\n## Next\n\n- For the canary itself: `compileiq-booster-pack` or\n  `compileiq-author-objective`.\n- For environment issues: `compileiq-bootstrap`.\n- After fixing: re-run `compileiq-run-search`.\n",{"data":35,"body":47},{"name":4,"description":6,"when_to_use":36,"license":26,"metadata":37,"allowed-tools":41,"paths":42},"- User reports any unexpected behavior from Search() or its results.\n- User wants to NCU-profile a winning ACF to understand WHY it helps.\n- High CV% on validation runs that won't drop with longer warmup.\nDon't use when:\n- It's actually an environment problem (use compileiq-bootstrap first).\n- The search ran fine and the user just wants to validate (use\n  compileiq-validate-result).\n",{"version":38,"author":39,"domain":40},"1.0.0","NVIDIA CompileIQ","compiler-optimization","Bash Read",[43,44,45,46],"**\u002F*.py","**\u002F*.csv","**\u002F*.ptx","**\u002F*.acf",{"type":48,"children":49},"root",[50,57,63,70,492,498,505,522,557,562,733,739,744,778,783,845,851,871,984,990,995,1044,1049,1096,1122,1128,1133,1173,1220,1226,1231,1287,1293,1313,1319,1335,1340,1408,1414,1419,1448,1460,1478,1484,1489,1579,1597,1609,1615,1627,1633,1953,1959,2066,2071,2077,2159,2187,2193,2217,2230,2236,2322,2328,2371],{"type":51,"tag":52,"props":53,"children":54},"element","h1",{"id":4},[55],{"type":56,"value":4},"text",{"type":51,"tag":58,"props":59,"children":60},"p",{},[61],{"type":56,"value":62},"A symptom-indexed cheat sheet. Find the row that matches what the user is\nseeing, follow the first action, then dig into the matching detail section.",{"type":51,"tag":64,"props":65,"children":67},"h2",{"id":66},"symptom-table",[68],{"type":56,"value":69},"Symptom table",{"type":51,"tag":71,"props":72,"children":73},"table",{},[74,98],{"type":51,"tag":75,"props":76,"children":77},"thead",{},[78],{"type":51,"tag":79,"props":80,"children":81},"tr",{},[82,88,93],{"type":51,"tag":83,"props":84,"children":85},"th",{},[86],{"type":56,"value":87},"Symptom",{"type":51,"tag":83,"props":89,"children":90},{},[91],{"type":56,"value":92},"Most-likely cause",{"type":51,"tag":83,"props":94,"children":95},{},[96],{"type":56,"value":97},"First action",{"type":51,"tag":99,"props":100,"children":101},"tbody",{},[102,169,220,277,321,362,401,425,459],{"type":51,"tag":79,"props":103,"children":104},{},[105,111,133],{"type":51,"tag":106,"props":107,"children":108},"td",{},[109],{"type":56,"value":110},"Search hangs on first eval; socket timeout",{"type":51,"tag":106,"props":112,"children":113},{},[114,116,123,125,131],{"type":56,"value":115},"Search space too large for default ",{"type":51,"tag":117,"props":118,"children":120},"code",{"className":119},[],[121],{"type":56,"value":122},"CIQ_SOCKET_TIMEOUT=20",{"type":56,"value":124},"; OR release fetch slow\u002Fblocked; OR ",{"type":51,"tag":117,"props":126,"children":128},{"className":127},[],[129],{"type":56,"value":130},"forkserver",{"type":56,"value":132}," issue",{"type":51,"tag":106,"props":134,"children":135},{},[136,138,144,146,152,153,159,161,167],{"type":56,"value":137},"Raise ",{"type":51,"tag":117,"props":139,"children":141},{"className":140},[],[142],{"type":56,"value":143},"CIQ_SOCKET_TIMEOUT=120",{"type":56,"value":145},"; if still hangs, ",{"type":51,"tag":117,"props":147,"children":149},{"className":148},[],[150],{"type":56,"value":151},"CIQ_SEARCH_SPACES_DIR=\u003Clocal mirror>",{"type":56,"value":145},{"type":51,"tag":117,"props":154,"children":156},{"className":155},[],[157],{"type":56,"value":158},"CIQ_PROCESS_MODE=spawn",{"type":56,"value":160},". ",{"type":51,"tag":162,"props":163,"children":164},"strong",{},[165],{"type":56,"value":166},"Do NOT",{"type":56,"value":168}," symlink BLAS — that fix is obsolete",{"type":51,"tag":79,"props":170,"children":171},{},[172,183,196],{"type":51,"tag":106,"props":173,"children":174},{},[175,177],{"type":56,"value":176},"Every eval returns ",{"type":51,"tag":117,"props":178,"children":180},{"className":179},[],[181],{"type":56,"value":182},"INVALID_SCORE",{"type":51,"tag":106,"props":184,"children":185},{},[186,188,194],{"type":56,"value":187},"Return-type mismatch (tuple vs scalar) \u002F correctness gate \u002F ",{"type":51,"tag":117,"props":189,"children":191},{"className":190},[],[192],{"type":56,"value":193},"task_timeout",{"type":56,"value":195}," too tight",{"type":51,"tag":106,"props":197,"children":198},{},[199,205,207,213,215],{"type":51,"tag":117,"props":200,"children":202},{"className":201},[],[203],{"type":56,"value":204},"Search.sample(1)",{"type":56,"value":206}," + call objective by hand; check ",{"type":51,"tag":117,"props":208,"children":210},{"className":209},[],[211],{"type":56,"value":212},"num_objectives",{"type":56,"value":214}," vs return shape; raise ",{"type":51,"tag":117,"props":216,"children":218},{"className":217},[],[219],{"type":56,"value":193},{"type":51,"tag":79,"props":221,"children":222},{},[223,235,240],{"type":51,"tag":106,"props":224,"children":225},{},[226,228,233],{"type":56,"value":227},"Every eval returns the ",{"type":51,"tag":162,"props":229,"children":230},{},[231],{"type":56,"value":232},"same",{"type":56,"value":234}," score",{"type":51,"tag":106,"props":236,"children":237},{},[238],{"type":56,"value":239},"ACF not reaching the compiler — framework cache is hiding it",{"type":51,"tag":106,"props":241,"children":242},{},[243,245,251,253,259,261,267,269,275],{"type":56,"value":244},"Apply Debug-pack ",{"type":51,"tag":117,"props":246,"children":248},{"className":247},[],[249],{"type":56,"value":250},"O0",{"type":56,"value":252}," ACF by hand; if the score doesn't regress, fix cache-bust (",{"type":51,"tag":117,"props":254,"children":256},{"className":255},[],[257],{"type":56,"value":258},"TRITON_ALWAYS_COMPILE=1",{"type":56,"value":260},", ",{"type":51,"tag":117,"props":262,"children":264},{"className":263},[],[265],{"type":56,"value":266},"HELION_SKIP_CACHE=1",{"type":56,"value":268},", fresh ",{"type":51,"tag":117,"props":270,"children":272},{"className":271},[],[273],{"type":56,"value":274},"TRITON_CACHE_DIR",{"type":56,"value":276},", drop FlashInfer cubin packages)",{"type":51,"tag":79,"props":278,"children":279},{},[280,289,302],{"type":51,"tag":106,"props":281,"children":282},{},[283],{"type":51,"tag":117,"props":284,"children":286},{"className":285},[],[287],{"type":56,"value":288},"TypeError: fromhex() … not dict",{"type":51,"tag":106,"props":290,"children":291},{},[292,294,300],{"type":56,"value":293},"Legacy ",{"type":51,"tag":117,"props":295,"children":297},{"className":296},[],[298],{"type":56,"value":299},"bytes.fromhex(config_blob)",{"type":56,"value":301}," in objective",{"type":51,"tag":106,"props":303,"children":304},{},[305,307,313,315],{"type":56,"value":306},"Replace with ",{"type":51,"tag":117,"props":308,"children":310},{"className":309},[],[311],{"type":56,"value":312},"save_compiler_config(acf_path, config)",{"type":56,"value":314}," — see ",{"type":51,"tag":117,"props":316,"children":318},{"className":317},[],[319],{"type":56,"value":320},"compileiq-author-objective",{"type":51,"tag":79,"props":322,"children":323},{},[324,333,338],{"type":51,"tag":106,"props":325,"children":326},{},[327],{"type":51,"tag":117,"props":328,"children":330},{"className":329},[],[331],{"type":56,"value":332},"\"not in expected format\"",{"type":51,"tag":106,"props":334,"children":335},{},[336],{"type":56,"value":337},"Objective returned wrong shape",{"type":51,"tag":106,"props":339,"children":340},{},[341,346,348,354,356],{"type":51,"tag":117,"props":342,"children":344},{"className":343},[],[345],{"type":56,"value":212},{"type":56,"value":347}," must equal ",{"type":51,"tag":117,"props":349,"children":351},{"className":350},[],[352],{"type":56,"value":353},"len(return_tuple)",{"type":56,"value":355},"; scalar return only when ",{"type":51,"tag":117,"props":357,"children":359},{"className":358},[],[360],{"type":56,"value":361},"num_objectives=1",{"type":51,"tag":79,"props":363,"children":364},{},[365,370,375],{"type":51,"tag":106,"props":366,"children":367},{},[368],{"type":56,"value":369},"Convergence stalled (best score flat)",{"type":51,"tag":106,"props":371,"children":372},{},[373],{"type":56,"value":374},"Pool too small for space; mutate_rate too low; or kernel near-optimal",{"type":51,"tag":106,"props":376,"children":377},{},[378,379,385,387,393,395],{"type":56,"value":137},{"type":51,"tag":117,"props":380,"children":382},{"className":381},[],[383],{"type":56,"value":384},"pool_size",{"type":56,"value":386},"; raise ",{"type":51,"tag":117,"props":388,"children":390},{"className":389},[],[391],{"type":56,"value":392},"mutate_rate",{"type":56,"value":394},"; sample diversity with ",{"type":51,"tag":117,"props":396,"children":398},{"className":397},[],[399],{"type":56,"value":400},"Search.sample(20)",{"type":51,"tag":79,"props":402,"children":403},{},[404,409,414],{"type":51,"tag":106,"props":405,"children":406},{},[407],{"type":56,"value":408},"Increasing invalid rate over generations",{"type":51,"tag":106,"props":410,"children":411},{},[412],{"type":56,"value":413},"Mutation arm spreading; compiler version drift mid-run",{"type":51,"tag":106,"props":415,"children":416},{},[417,423],{"type":51,"tag":117,"props":418,"children":420},{"className":419},[],[421],{"type":56,"value":422},"CIQ_KEEP_CACHE=1",{"type":56,"value":424},", re-run, inspect failing configs offline",{"type":51,"tag":79,"props":426,"children":427},{},[428,433,438],{"type":51,"tag":106,"props":429,"children":430},{},[431],{"type":56,"value":432},"CV% > 10% on validation",{"type":51,"tag":106,"props":434,"children":435},{},[436],{"type":56,"value":437},"Unlocked clocks \u002F thermal throttling \u002F GPU contention",{"type":51,"tag":106,"props":439,"children":440},{},[441,443,449,451,457],{"type":56,"value":442},"Lock GPU + memory clocks; pin ",{"type":51,"tag":117,"props":444,"children":446},{"className":445},[],[447],{"type":56,"value":448},"CUDA_VISIBLE_DEVICES",{"type":56,"value":450},"; watch ",{"type":51,"tag":117,"props":452,"children":454},{"className":453},[],[455],{"type":56,"value":456},"nvidia-smi dmon",{"type":56,"value":458}," for thermals",{"type":51,"tag":79,"props":460,"children":461},{},[462,475,480],{"type":51,"tag":106,"props":463,"children":464},{},[465,467,473],{"type":56,"value":466},"Need to know ",{"type":51,"tag":468,"props":469,"children":470},"em",{},[471],{"type":56,"value":472},"why",{"type":56,"value":474}," a winning ACF helps",{"type":51,"tag":106,"props":476,"children":477},{},[478],{"type":56,"value":479},"Profile with NCU",{"type":51,"tag":106,"props":481,"children":482},{},[483,485,490],{"type":56,"value":484},"See ",{"type":51,"tag":162,"props":486,"children":487},{},[488],{"type":56,"value":489},"NCU section",{"type":56,"value":491}," below",{"type":51,"tag":64,"props":493,"children":495},{"id":494},"details",[496],{"type":56,"value":497},"Details",{"type":51,"tag":499,"props":500,"children":502},"h3",{"id":501},"socket-timeout-hang-on-first-eval",[503],{"type":56,"value":504},"Socket timeout \u002F hang on first eval",{"type":51,"tag":506,"props":507,"children":508},"blockquote",{},[509],{"type":51,"tag":58,"props":510,"children":511},{},[512,514,520],{"type":56,"value":513},"Not BLAS. Do not send users to symlink ",{"type":51,"tag":117,"props":515,"children":517},{"className":516},[],[518],{"type":56,"value":519},"libblas.so",{"type":56,"value":521},".",{"type":51,"tag":58,"props":523,"children":524},{},[525,527,533,535,541,542,548,549,555],{"type":56,"value":526},"Current shipped binaries link only ",{"type":51,"tag":117,"props":528,"children":530},{"className":529},[],[531],{"type":56,"value":532},"libm",{"type":56,"value":534},"\u002F",{"type":51,"tag":117,"props":536,"children":538},{"className":537},[],[539],{"type":56,"value":540},"libc",{"type":56,"value":534},{"type":51,"tag":117,"props":543,"children":545},{"className":544},[],[546],{"type":56,"value":547},"libstdc++",{"type":56,"value":534},{"type":51,"tag":117,"props":550,"children":552},{"className":551},[],[553],{"type":56,"value":554},"libgcc_s",{"type":56,"value":556}," and\ndo not require BLAS\u002FLAPACK.",{"type":51,"tag":58,"props":558,"children":559},{},[560],{"type":56,"value":561},"Real causes today, in order of frequency:",{"type":51,"tag":563,"props":564,"children":565},"ol",{},[566,583,695],{"type":51,"tag":567,"props":568,"children":569},"li",{},[570,581],{"type":51,"tag":162,"props":571,"children":572},{},[573,579],{"type":51,"tag":117,"props":574,"children":576},{"className":575},[],[577],{"type":56,"value":578},"CIQ_SOCKET_TIMEOUT",{"type":56,"value":580}," too low.",{"type":56,"value":582}," Default is 20 seconds, which is fine for\nsmall search spaces but fails on big ones. Raise to 120 first; raise to\n300+ for very large spaces.",{"type":51,"tag":567,"props":584,"children":585},{},[586,591,593,599,601,607,609],{"type":51,"tag":162,"props":587,"children":588},{},[589],{"type":56,"value":590},"Release-backed search-space fetch is slow or blocked.",{"type":56,"value":592}," First call to\n",{"type":51,"tag":117,"props":594,"children":596},{"className":595},[],[597],{"type":56,"value":598},"PtxasSearchSpace().retrieve()",{"type":56,"value":600}," downloads from ",{"type":51,"tag":117,"props":602,"children":604},{"className":603},[],[605],{"type":56,"value":606},"github.com",{"type":56,"value":608},". On a corporate\nfirewall this can stall. Pre-stage the mirror:\n",{"type":51,"tag":610,"props":611,"children":616},"pre",{"className":612,"code":613,"language":614,"meta":615,"style":615},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","gh release download search-spaces-latest -R NVIDIA\u002FCompileIQ -D \u002Fshared\u002Fmirror\nexport CIQ_SEARCH_SPACES_DIR=\u002Fshared\u002Fmirror\n","bash","",[617],{"type":51,"tag":117,"props":618,"children":619},{"__ignoreMap":615},[620,668],{"type":51,"tag":621,"props":622,"children":625},"span",{"class":623,"line":624},"line",1,[626,632,638,643,648,653,658,663],{"type":51,"tag":621,"props":627,"children":629},{"style":628},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[630],{"type":56,"value":631},"gh",{"type":51,"tag":621,"props":633,"children":635},{"style":634},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[636],{"type":56,"value":637}," release",{"type":51,"tag":621,"props":639,"children":640},{"style":634},[641],{"type":56,"value":642}," download",{"type":51,"tag":621,"props":644,"children":645},{"style":634},[646],{"type":56,"value":647}," search-spaces-latest",{"type":51,"tag":621,"props":649,"children":650},{"style":634},[651],{"type":56,"value":652}," -R",{"type":51,"tag":621,"props":654,"children":655},{"style":634},[656],{"type":56,"value":657}," NVIDIA\u002FCompileIQ",{"type":51,"tag":621,"props":659,"children":660},{"style":634},[661],{"type":56,"value":662}," -D",{"type":51,"tag":621,"props":664,"children":665},{"style":634},[666],{"type":56,"value":667}," \u002Fshared\u002Fmirror\n",{"type":51,"tag":621,"props":669,"children":671},{"class":623,"line":670},2,[672,678,684,690],{"type":51,"tag":621,"props":673,"children":675},{"style":674},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[676],{"type":56,"value":677},"export",{"type":51,"tag":621,"props":679,"children":681},{"style":680},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[682],{"type":56,"value":683}," CIQ_SEARCH_SPACES_DIR",{"type":51,"tag":621,"props":685,"children":687},{"style":686},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[688],{"type":56,"value":689},"=",{"type":51,"tag":621,"props":691,"children":692},{"style":680},[693],{"type":56,"value":694},"\u002Fshared\u002Fmirror\n",{"type":51,"tag":567,"props":696,"children":697},{},[698,708,710,715,717,723,725,731],{"type":51,"tag":162,"props":699,"children":700},{},[701,706],{"type":51,"tag":117,"props":702,"children":704},{"className":703},[],[705],{"type":56,"value":130},{"type":56,"value":707}," is unsupported on the host.",{"type":56,"value":709}," Set ",{"type":51,"tag":117,"props":711,"children":713},{"className":712},[],[714],{"type":56,"value":158},{"type":56,"value":716},".\n",{"type":51,"tag":117,"props":718,"children":720},{"className":719},[],[721],{"type":56,"value":722},"IsoMultiProcessWorker",{"type":56,"value":724}," already uses ",{"type":51,"tag":117,"props":726,"children":728},{"className":727},[],[729],{"type":56,"value":730},"fork",{"type":56,"value":732}," by default.",{"type":51,"tag":499,"props":734,"children":736},{"id":735},"every-eval-returns-invalid_score",[737],{"type":56,"value":738},"Every eval returns INVALID_SCORE",{"type":51,"tag":58,"props":740,"children":741},{},[742],{"type":56,"value":743},"Sanity-check the shape before assuming the worst:",{"type":51,"tag":610,"props":745,"children":749},{"className":746,"code":747,"language":748,"meta":615,"style":615},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sample = tuner.sample(1)[0]\nscore = objective(sample)\nprint(type(score), score)\n","python",[750],{"type":51,"tag":117,"props":751,"children":752},{"__ignoreMap":615},[753,761,769],{"type":51,"tag":621,"props":754,"children":755},{"class":623,"line":624},[756],{"type":51,"tag":621,"props":757,"children":758},{},[759],{"type":56,"value":760},"sample = tuner.sample(1)[0]\n",{"type":51,"tag":621,"props":762,"children":763},{"class":623,"line":670},[764],{"type":51,"tag":621,"props":765,"children":766},{},[767],{"type":56,"value":768},"score = objective(sample)\n",{"type":51,"tag":621,"props":770,"children":772},{"class":623,"line":771},3,[773],{"type":51,"tag":621,"props":774,"children":775},{},[776],{"type":56,"value":777},"print(type(score), score)\n",{"type":51,"tag":58,"props":779,"children":780},{},[781],{"type":56,"value":782},"Common shape mismatches:",{"type":51,"tag":784,"props":785,"children":786},"ul",{},[787,813,830,835],{"type":51,"tag":567,"props":788,"children":789},{},[790,795,797,803,805,811],{"type":51,"tag":117,"props":791,"children":793},{"className":792},[],[794],{"type":56,"value":361},{"type":56,"value":796}," but ",{"type":51,"tag":117,"props":798,"children":800},{"className":799},[],[801],{"type":56,"value":802},"objective",{"type":56,"value":804}," returns a tuple ",{"type":51,"tag":117,"props":806,"children":808},{"className":807},[],[809],{"type":56,"value":810},"(latency,)",{"type":56,"value":812},". Drop the\ntrailing comma.",{"type":51,"tag":567,"props":814,"children":815},{},[816,822,823,828],{"type":51,"tag":117,"props":817,"children":819},{"className":818},[],[820],{"type":56,"value":821},"num_objectives=2",{"type":56,"value":796},{"type":51,"tag":117,"props":824,"children":826},{"className":825},[],[827],{"type":56,"value":802},{"type":56,"value":829}," returns a scalar.",{"type":51,"tag":567,"props":831,"children":832},{},[833],{"type":56,"value":834},"Correctness gate is rejecting everything because the reference call itself\nis wrong.",{"type":51,"tag":567,"props":836,"children":837},{},[838,843],{"type":51,"tag":117,"props":839,"children":841},{"className":840},[],[842],{"type":56,"value":193},{"type":56,"value":844}," is shorter than a clean compile takes; raise it.",{"type":51,"tag":499,"props":846,"children":848},{"id":847},"every-eval-returns-the-same-score",[849],{"type":56,"value":850},"Every eval returns the SAME score",{"type":51,"tag":58,"props":852,"children":853},{},[854,856,861,863,869],{"type":56,"value":855},"Almost always a framework cache serving a stale binary. ",{"type":51,"tag":162,"props":857,"children":858},{},[859],{"type":56,"value":860},"Run the O0\u002FO3 canary\nfrom the Debug pack",{"type":56,"value":862}," to confirm — see ",{"type":51,"tag":117,"props":864,"children":866},{"className":865},[],[867],{"type":56,"value":868},"compileiq-booster-pack",{"type":56,"value":870}," for the exact\ntest. If O0 doesn't regress vs baseline, the ACF is not reaching PTXAS. Fix:",{"type":51,"tag":71,"props":872,"children":873},{},[874,890],{"type":51,"tag":75,"props":875,"children":876},{},[877],{"type":51,"tag":79,"props":878,"children":879},{},[880,885],{"type":51,"tag":83,"props":881,"children":882},{},[883],{"type":56,"value":884},"Framework",{"type":51,"tag":83,"props":886,"children":887},{},[888],{"type":56,"value":889},"Cache-bust",{"type":51,"tag":99,"props":891,"children":892},{},[893,918,934,971],{"type":51,"tag":79,"props":894,"children":895},{},[896,901],{"type":51,"tag":106,"props":897,"children":898},{},[899],{"type":56,"value":900},"Triton",{"type":51,"tag":106,"props":902,"children":903},{},[904,909,911,916],{"type":51,"tag":117,"props":905,"children":907},{"className":906},[],[908],{"type":56,"value":258},{"type":56,"value":910}," + unique ",{"type":51,"tag":117,"props":912,"children":914},{"className":913},[],[915],{"type":56,"value":274},{"type":56,"value":917}," per eval",{"type":51,"tag":79,"props":919,"children":920},{},[921,926],{"type":51,"tag":106,"props":922,"children":923},{},[924],{"type":56,"value":925},"Helion",{"type":51,"tag":106,"props":927,"children":928},{},[929],{"type":51,"tag":117,"props":930,"children":932},{"className":931},[],[933],{"type":56,"value":266},{"type":51,"tag":79,"props":935,"children":936},{},[937,942],{"type":51,"tag":106,"props":938,"children":939},{},[940],{"type":56,"value":941},"FlashInfer",{"type":51,"tag":106,"props":943,"children":944},{},[945,947,953,955,961,963,969],{"type":56,"value":946},"Confirm ",{"type":51,"tag":117,"props":948,"children":950},{"className":949},[],[951],{"type":56,"value":952},"flashinfer_cubin",{"type":56,"value":954}," and ",{"type":51,"tag":117,"props":956,"children":958},{"className":957},[],[959],{"type":56,"value":960},"flashinfer_jit_cache",{"type":56,"value":962}," packages are absent (",{"type":51,"tag":117,"props":964,"children":966},{"className":965},[],[967],{"type":56,"value":968},"docs\u002Fflashinfer_booster.md:56-64",{"type":56,"value":970},")",{"type":51,"tag":79,"props":972,"children":973},{},[974,979],{"type":51,"tag":106,"props":975,"children":976},{},[977],{"type":56,"value":978},"Raw nvcc",{"type":51,"tag":106,"props":980,"children":981},{},[982],{"type":56,"value":983},"Clean the build dir between candidates",{"type":51,"tag":499,"props":985,"children":987},{"id":986},"typeerror-around-fromhex",[988],{"type":56,"value":989},"TypeError around fromhex",{"type":51,"tag":58,"props":991,"children":992},{},[993],{"type":56,"value":994},"Legacy pattern from the pre-2026 skill set:",{"type":51,"tag":610,"props":996,"children":998},{"className":746,"code":997,"language":748,"meta":615,"style":615},"# OLD — DO NOT USE\ndef objective(config_blob):\n    with open(tmp_path, \"wb\") as f:\n        f.write(bytes.fromhex(config_blob))\n    ...\n",[999],{"type":51,"tag":117,"props":1000,"children":1001},{"__ignoreMap":615},[1002,1010,1018,1026,1035],{"type":51,"tag":621,"props":1003,"children":1004},{"class":623,"line":624},[1005],{"type":51,"tag":621,"props":1006,"children":1007},{},[1008],{"type":56,"value":1009},"# OLD — DO NOT USE\n",{"type":51,"tag":621,"props":1011,"children":1012},{"class":623,"line":670},[1013],{"type":51,"tag":621,"props":1014,"children":1015},{},[1016],{"type":56,"value":1017},"def objective(config_blob):\n",{"type":51,"tag":621,"props":1019,"children":1020},{"class":623,"line":771},[1021],{"type":51,"tag":621,"props":1022,"children":1023},{},[1024],{"type":56,"value":1025},"    with open(tmp_path, \"wb\") as f:\n",{"type":51,"tag":621,"props":1027,"children":1029},{"class":623,"line":1028},4,[1030],{"type":51,"tag":621,"props":1031,"children":1032},{},[1033],{"type":56,"value":1034},"        f.write(bytes.fromhex(config_blob))\n",{"type":51,"tag":621,"props":1036,"children":1038},{"class":623,"line":1037},5,[1039],{"type":51,"tag":621,"props":1040,"children":1041},{},[1042],{"type":56,"value":1043},"    ...\n",{"type":51,"tag":58,"props":1045,"children":1046},{},[1047],{"type":56,"value":1048},"Replace with:",{"type":51,"tag":610,"props":1050,"children":1052},{"className":746,"code":1051,"language":748,"meta":615,"style":615},"from compileiq.utils.helpers import save_compiler_config\n\ndef objective(config: str):\n    save_compiler_config(tmp_path, config)\n    ...\n",[1053],{"type":51,"tag":117,"props":1054,"children":1055},{"__ignoreMap":615},[1056,1064,1073,1081,1089],{"type":51,"tag":621,"props":1057,"children":1058},{"class":623,"line":624},[1059],{"type":51,"tag":621,"props":1060,"children":1061},{},[1062],{"type":56,"value":1063},"from compileiq.utils.helpers import save_compiler_config\n",{"type":51,"tag":621,"props":1065,"children":1066},{"class":623,"line":670},[1067],{"type":51,"tag":621,"props":1068,"children":1070},{"emptyLinePlaceholder":1069},true,[1071],{"type":56,"value":1072},"\n",{"type":51,"tag":621,"props":1074,"children":1075},{"class":623,"line":771},[1076],{"type":51,"tag":621,"props":1077,"children":1078},{},[1079],{"type":56,"value":1080},"def objective(config: str):\n",{"type":51,"tag":621,"props":1082,"children":1083},{"class":623,"line":1028},[1084],{"type":51,"tag":621,"props":1085,"children":1086},{},[1087],{"type":56,"value":1088},"    save_compiler_config(tmp_path, config)\n",{"type":51,"tag":621,"props":1090,"children":1091},{"class":623,"line":1037},[1092],{"type":51,"tag":621,"props":1093,"children":1094},{},[1095],{"type":56,"value":1043},{"type":51,"tag":58,"props":1097,"children":1098},{},[1099,1105,1107,1113,1115,1120],{"type":51,"tag":117,"props":1100,"children":1102},{"className":1101},[],[1103],{"type":56,"value":1104},"save_compiler_config",{"type":56,"value":1106}," does the ",{"type":51,"tag":117,"props":1108,"children":1110},{"className":1109},[],[1111],{"type":56,"value":1112},"bytes.fromhex",{"type":56,"value":1114}," internally. See\n",{"type":51,"tag":117,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":56,"value":320},{"type":56,"value":1121}," for the full pattern.",{"type":51,"tag":499,"props":1123,"children":1125},{"id":1124},"not-in-expected-format",[1126],{"type":56,"value":1127},"\"Not in expected format\"",{"type":51,"tag":58,"props":1129,"children":1130},{},[1131],{"type":56,"value":1132},"The objective returned a shape CompileIQ's core doesn't expect. Rules:",{"type":51,"tag":784,"props":1134,"children":1135},{},[1136,1162],{"type":51,"tag":567,"props":1137,"children":1138},{},[1139,1144,1146,1152,1154,1160],{"type":51,"tag":117,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":56,"value":361},{"type":56,"value":1145},": objective must return a single scalar (",{"type":51,"tag":117,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":56,"value":1151},"int",{"type":56,"value":1153}," | ",{"type":51,"tag":117,"props":1155,"children":1157},{"className":1156},[],[1158],{"type":56,"value":1159},"float",{"type":56,"value":1161},").\nNot a 1-tuple, not a list.",{"type":51,"tag":567,"props":1163,"children":1164},{},[1165,1171],{"type":51,"tag":117,"props":1166,"children":1168},{"className":1167},[],[1169],{"type":56,"value":1170},"num_objectives>=2",{"type":56,"value":1172},": objective must return a tuple or list of that length.",{"type":51,"tag":610,"props":1174,"children":1176},{"className":746,"code":1175,"language":748,"meta":615,"style":615},"result = objective(sample)\nassert (\n    (search_config.num_objectives == 1 and isinstance(result, (int, float)))\n    or (search_config.num_objectives  > 1 and len(result) == search_config.num_objectives)\n), f\"shape mismatch: {result!r} vs num_objectives={search_config.num_objectives}\"\n",[1177],{"type":51,"tag":117,"props":1178,"children":1179},{"__ignoreMap":615},[1180,1188,1196,1204,1212],{"type":51,"tag":621,"props":1181,"children":1182},{"class":623,"line":624},[1183],{"type":51,"tag":621,"props":1184,"children":1185},{},[1186],{"type":56,"value":1187},"result = objective(sample)\n",{"type":51,"tag":621,"props":1189,"children":1190},{"class":623,"line":670},[1191],{"type":51,"tag":621,"props":1192,"children":1193},{},[1194],{"type":56,"value":1195},"assert (\n",{"type":51,"tag":621,"props":1197,"children":1198},{"class":623,"line":771},[1199],{"type":51,"tag":621,"props":1200,"children":1201},{},[1202],{"type":56,"value":1203},"    (search_config.num_objectives == 1 and isinstance(result, (int, float)))\n",{"type":51,"tag":621,"props":1205,"children":1206},{"class":623,"line":1028},[1207],{"type":51,"tag":621,"props":1208,"children":1209},{},[1210],{"type":56,"value":1211},"    or (search_config.num_objectives  > 1 and len(result) == search_config.num_objectives)\n",{"type":51,"tag":621,"props":1213,"children":1214},{"class":623,"line":1037},[1215],{"type":51,"tag":621,"props":1216,"children":1217},{},[1218],{"type":56,"value":1219},"), f\"shape mismatch: {result!r} vs num_objectives={search_config.num_objectives}\"\n",{"type":51,"tag":499,"props":1221,"children":1223},{"id":1222},"convergence-stalled",[1224],{"type":56,"value":1225},"Convergence stalled",{"type":51,"tag":58,"props":1227,"children":1228},{},[1229],{"type":56,"value":1230},"Three causes, in order:",{"type":51,"tag":563,"props":1232,"children":1233},{},[1234,1252,1270],{"type":51,"tag":567,"props":1235,"children":1236},{},[1237,1242,1244,1250],{"type":51,"tag":162,"props":1238,"children":1239},{},[1240],{"type":56,"value":1241},"Pool too small for the space.",{"type":56,"value":1243}," ",{"type":51,"tag":117,"props":1245,"children":1247},{"className":1246},[],[1248],{"type":56,"value":1249},"pool_size = max(2 * num_objectives + 1, 32)",{"type":56,"value":1251}," is the auto-derived floor — for spaces with >1k design points, raise to 64-128.",{"type":51,"tag":567,"props":1253,"children":1254},{},[1255,1260,1262,1268],{"type":51,"tag":162,"props":1256,"children":1257},{},[1258],{"type":56,"value":1259},"Mutation rate too low.",{"type":56,"value":1261}," Default ",{"type":51,"tag":117,"props":1263,"children":1265},{"className":1264},[],[1266],{"type":56,"value":1267},"mutate_rate=0.25",{"type":56,"value":1269},". Raise to 0.3-0.5 if the search is converging on the first generation.",{"type":51,"tag":567,"props":1271,"children":1272},{},[1273,1278,1280,1285],{"type":51,"tag":162,"props":1274,"children":1275},{},[1276],{"type":56,"value":1277},"The kernel is genuinely near-optimal.",{"type":56,"value":1279}," Verify by running ",{"type":51,"tag":117,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":56,"value":400},{"type":56,"value":1286}," and timing each sample by hand — if the spread is \u003C5%, the search space is shallow.",{"type":51,"tag":499,"props":1288,"children":1290},{"id":1289},"increasing-invalid-rate",[1291],{"type":56,"value":1292},"Increasing invalid rate",{"type":51,"tag":58,"props":1294,"children":1295},{},[1296,1298,1303,1305,1311],{"type":56,"value":1297},"Probably a mutation arm spreading a structurally-bad config across the\npopulation. Re-run with ",{"type":51,"tag":117,"props":1299,"children":1301},{"className":1300},[],[1302],{"type":56,"value":422},{"type":56,"value":1304}," so the failing configs are\npreserved at ",{"type":51,"tag":117,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":56,"value":1310},"~\u002F.cache\u002Fcompileiq\u002F",{"type":56,"value":1312},", then replay them by hand to identify the\ncommon factor.",{"type":51,"tag":499,"props":1314,"children":1316},{"id":1315},"high-cv-on-validation",[1317],{"type":56,"value":1318},"High CV% on validation",{"type":51,"tag":506,"props":1320,"children":1321},{},[1322],{"type":51,"tag":58,"props":1323,"children":1324},{},[1325,1327,1333],{"type":56,"value":1326},"If ",{"type":51,"tag":117,"props":1328,"children":1330},{"className":1329},[],[1331],{"type":56,"value":1332},"cv = std\u002Fmean > 10%",{"type":56,"value":1334},", validation can't tell the signal from the noise.",{"type":51,"tag":58,"props":1336,"children":1337},{},[1338],{"type":56,"value":1339},"Fixes, in order:",{"type":51,"tag":563,"props":1341,"children":1342},{},[1343,1364,1377,1390,1395],{"type":51,"tag":567,"props":1344,"children":1345},{},[1346,1348,1354,1356,1362],{"type":56,"value":1347},"Lock GPU and memory clocks (see ",{"type":51,"tag":117,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":56,"value":1353},"compileiq-run-search",{"type":56,"value":1355}," for the\n",{"type":51,"tag":117,"props":1357,"children":1359},{"className":1358},[],[1360],{"type":56,"value":1361},"nvidia-smi --lock-*-clocks",{"type":56,"value":1363}," snippet).",{"type":51,"tag":567,"props":1365,"children":1366},{},[1367,1369,1375],{"type":56,"value":1368},"Pin ",{"type":51,"tag":117,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":56,"value":1374},"CUDA_VISIBLE_DEVICES=\u003Cgpu>",{"type":56,"value":1376}," so the validation has the GPU to itself.",{"type":51,"tag":567,"props":1378,"children":1379},{},[1380,1382,1388],{"type":56,"value":1381},"Watch ",{"type":51,"tag":117,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":56,"value":1387},"nvidia-smi dmon -i \u003Cgpu> -s pucvm",{"type":56,"value":1389}," for thermal throttling events.",{"type":51,"tag":567,"props":1391,"children":1392},{},[1393],{"type":56,"value":1394},"Raise warmup count (50 → 100) and trial count (100 → 200).",{"type":51,"tag":567,"props":1396,"children":1397},{},[1398,1400,1406],{"type":56,"value":1399},"Switch from ",{"type":51,"tag":117,"props":1401,"children":1403},{"className":1402},[],[1404],{"type":56,"value":1405},"cudaEvent",{"type":56,"value":1407}," to NVBench (entropy-based stopping criterion, cold-cache between samples).",{"type":51,"tag":64,"props":1409,"children":1411},{"id":1410},"ciq_keep_cache-for-post-mortem",[1412],{"type":56,"value":1413},"CIQ_KEEP_CACHE for post-mortem",{"type":51,"tag":58,"props":1415,"children":1416},{},[1417],{"type":56,"value":1418},"When a search misbehaves, re-run with:",{"type":51,"tag":610,"props":1420,"children":1422},{"className":612,"code":1421,"language":614,"meta":615,"style":615},"export CIQ_KEEP_CACHE=1\n",[1423],{"type":51,"tag":117,"props":1424,"children":1425},{"__ignoreMap":615},[1426],{"type":51,"tag":621,"props":1427,"children":1428},{"class":623,"line":624},[1429,1433,1438,1442],{"type":51,"tag":621,"props":1430,"children":1431},{"style":674},[1432],{"type":56,"value":677},{"type":51,"tag":621,"props":1434,"children":1435},{"style":680},[1436],{"type":56,"value":1437}," CIQ_KEEP_CACHE",{"type":51,"tag":621,"props":1439,"children":1440},{"style":686},[1441],{"type":56,"value":689},{"type":51,"tag":621,"props":1443,"children":1445},{"style":1444},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1446],{"type":56,"value":1447},"1\n",{"type":51,"tag":58,"props":1449,"children":1450},{},[1451,1453,1458],{"type":56,"value":1452},"The cache at ",{"type":51,"tag":117,"props":1454,"children":1456},{"className":1455},[],[1457],{"type":56,"value":1310},{"type":56,"value":1459}," is preserved after the run. You can:",{"type":51,"tag":784,"props":1461,"children":1462},{},[1463,1468,1473],{"type":51,"tag":567,"props":1464,"children":1465},{},[1466],{"type":56,"value":1467},"Inspect each generation's serialized configs.",{"type":51,"tag":567,"props":1469,"children":1470},{},[1471],{"type":56,"value":1472},"Replay a specific config without paying for a whole new search.",{"type":51,"tag":567,"props":1474,"children":1475},{},[1476],{"type":56,"value":1477},"Compare two runs by diffing their cache directories.",{"type":51,"tag":64,"props":1479,"children":1481},{"id":1480},"diagnose-from-the-dump_results-csv",[1482],{"type":56,"value":1483},"Diagnose from the dump_results CSV",{"type":51,"tag":58,"props":1485,"children":1486},{},[1487],{"type":56,"value":1488},"Quick pandas snippet:",{"type":51,"tag":610,"props":1490,"children":1492},{"className":746,"code":1491,"language":748,"meta":615,"style":615},"import pandas as pd\ndf = pd.read_csv(\"results.csv\")\ndf[\"score_numeric\"] = pd.to_numeric(df[\"score_1\"], errors=\"coerce\")\n\ngen_summary = df.groupby(\"generation\").agg(\n    n=(\"score_numeric\", \"size\"),\n    invalid=(\"score_numeric\", lambda s: s.isna().sum() + (s > 1e10).sum()),\n    best=(\"score_numeric\", \"min\"),\n)\nprint(gen_summary)\n",[1493],{"type":51,"tag":117,"props":1494,"children":1495},{"__ignoreMap":615},[1496,1504,1512,1520,1527,1535,1544,1553,1561,1570],{"type":51,"tag":621,"props":1497,"children":1498},{"class":623,"line":624},[1499],{"type":51,"tag":621,"props":1500,"children":1501},{},[1502],{"type":56,"value":1503},"import pandas as pd\n",{"type":51,"tag":621,"props":1505,"children":1506},{"class":623,"line":670},[1507],{"type":51,"tag":621,"props":1508,"children":1509},{},[1510],{"type":56,"value":1511},"df = pd.read_csv(\"results.csv\")\n",{"type":51,"tag":621,"props":1513,"children":1514},{"class":623,"line":771},[1515],{"type":51,"tag":621,"props":1516,"children":1517},{},[1518],{"type":56,"value":1519},"df[\"score_numeric\"] = pd.to_numeric(df[\"score_1\"], errors=\"coerce\")\n",{"type":51,"tag":621,"props":1521,"children":1522},{"class":623,"line":1028},[1523],{"type":51,"tag":621,"props":1524,"children":1525},{"emptyLinePlaceholder":1069},[1526],{"type":56,"value":1072},{"type":51,"tag":621,"props":1528,"children":1529},{"class":623,"line":1037},[1530],{"type":51,"tag":621,"props":1531,"children":1532},{},[1533],{"type":56,"value":1534},"gen_summary = df.groupby(\"generation\").agg(\n",{"type":51,"tag":621,"props":1536,"children":1538},{"class":623,"line":1537},6,[1539],{"type":51,"tag":621,"props":1540,"children":1541},{},[1542],{"type":56,"value":1543},"    n=(\"score_numeric\", \"size\"),\n",{"type":51,"tag":621,"props":1545,"children":1547},{"class":623,"line":1546},7,[1548],{"type":51,"tag":621,"props":1549,"children":1550},{},[1551],{"type":56,"value":1552},"    invalid=(\"score_numeric\", lambda s: s.isna().sum() + (s > 1e10).sum()),\n",{"type":51,"tag":621,"props":1554,"children":1555},{"class":623,"line":27},[1556],{"type":51,"tag":621,"props":1557,"children":1558},{},[1559],{"type":56,"value":1560},"    best=(\"score_numeric\", \"min\"),\n",{"type":51,"tag":621,"props":1562,"children":1564},{"class":623,"line":1563},9,[1565],{"type":51,"tag":621,"props":1566,"children":1567},{},[1568],{"type":56,"value":1569},")\n",{"type":51,"tag":621,"props":1571,"children":1573},{"class":623,"line":1572},10,[1574],{"type":51,"tag":621,"props":1575,"children":1576},{},[1577],{"type":56,"value":1578},"print(gen_summary)\n",{"type":51,"tag":58,"props":1580,"children":1581},{},[1582,1583,1589,1591,1596],{"type":56,"value":1326},{"type":51,"tag":117,"props":1584,"children":1586},{"className":1585},[],[1587],{"type":56,"value":1588},"invalid",{"type":56,"value":1590}," doesn't decrease across generations, your search is structurally\nbroken — try the O0\u002FO3 canary in ",{"type":51,"tag":117,"props":1592,"children":1594},{"className":1593},[],[1595],{"type":56,"value":320},{"type":56,"value":521},{"type":51,"tag":58,"props":1598,"children":1599},{},[1600,1602,1608],{"type":56,"value":1601},"For an automated version: ",{"type":51,"tag":117,"props":1603,"children":1605},{"className":1604},[],[1606],{"type":56,"value":1607},"python scripts\u002Fdiagnose_csv.py results.csv",{"type":56,"value":521},{"type":51,"tag":64,"props":1610,"children":1612},{"id":1611},"ncu-section-replaces-old-compileiq-profile",[1613],{"type":56,"value":1614},"NCU section (replaces old \u002Fcompileiq-profile)",{"type":51,"tag":58,"props":1616,"children":1617},{},[1618,1620,1625],{"type":56,"value":1619},"Profile ",{"type":51,"tag":162,"props":1621,"children":1622},{},[1623],{"type":56,"value":1624},"only after a validated ACF candidate exists",{"type":56,"value":1626},". Don't profile every\nconfig — it's slow.",{"type":51,"tag":499,"props":1628,"children":1630},{"id":1629},"two-shot-pattern",[1631],{"type":56,"value":1632},"Two-shot pattern",{"type":51,"tag":610,"props":1634,"children":1636},{"className":612,"code":1635,"language":614,"meta":615,"style":615},"# Baseline (no ACF)\nncu --set full -o baseline -f --kernel-name my_kernel python bench.py\n\n# ACF-applied — match the injection your objective uses\n# Raw PTXAS:\nncu --set full -o opt -f --kernel-name my_kernel \\\n    bash -c 'PTXAS_OPTIONS=\"--apply-controls=best.acf\" python bench.py'\n# NVCC build:\nnvcc -Xptxas --apply-controls=best.acf bench.cu -o bench && \\\n    ncu --set full -o opt -f --kernel-name my_kernel .\u002Fbench\n\n# Diff\nncu --import baseline.ncu-rep --import opt.ncu-rep --csv --page raw > diff.csv\n",[1637],{"type":51,"tag":117,"props":1638,"children":1639},{"__ignoreMap":615},[1640,1649,1702,1709,1717,1725,1766,1794,1802,1843,1884,1892,1901],{"type":51,"tag":621,"props":1641,"children":1642},{"class":623,"line":624},[1643],{"type":51,"tag":621,"props":1644,"children":1646},{"style":1645},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1647],{"type":56,"value":1648},"# Baseline (no ACF)\n",{"type":51,"tag":621,"props":1650,"children":1651},{"class":623,"line":670},[1652,1657,1662,1667,1672,1677,1682,1687,1692,1697],{"type":51,"tag":621,"props":1653,"children":1654},{"style":628},[1655],{"type":56,"value":1656},"ncu",{"type":51,"tag":621,"props":1658,"children":1659},{"style":634},[1660],{"type":56,"value":1661}," --set",{"type":51,"tag":621,"props":1663,"children":1664},{"style":634},[1665],{"type":56,"value":1666}," full",{"type":51,"tag":621,"props":1668,"children":1669},{"style":634},[1670],{"type":56,"value":1671}," -o",{"type":51,"tag":621,"props":1673,"children":1674},{"style":634},[1675],{"type":56,"value":1676}," baseline",{"type":51,"tag":621,"props":1678,"children":1679},{"style":634},[1680],{"type":56,"value":1681}," -f",{"type":51,"tag":621,"props":1683,"children":1684},{"style":634},[1685],{"type":56,"value":1686}," --kernel-name",{"type":51,"tag":621,"props":1688,"children":1689},{"style":634},[1690],{"type":56,"value":1691}," my_kernel",{"type":51,"tag":621,"props":1693,"children":1694},{"style":634},[1695],{"type":56,"value":1696}," python",{"type":51,"tag":621,"props":1698,"children":1699},{"style":634},[1700],{"type":56,"value":1701}," bench.py\n",{"type":51,"tag":621,"props":1703,"children":1704},{"class":623,"line":771},[1705],{"type":51,"tag":621,"props":1706,"children":1707},{"emptyLinePlaceholder":1069},[1708],{"type":56,"value":1072},{"type":51,"tag":621,"props":1710,"children":1711},{"class":623,"line":1028},[1712],{"type":51,"tag":621,"props":1713,"children":1714},{"style":1645},[1715],{"type":56,"value":1716},"# ACF-applied — match the injection your objective uses\n",{"type":51,"tag":621,"props":1718,"children":1719},{"class":623,"line":1037},[1720],{"type":51,"tag":621,"props":1721,"children":1722},{"style":1645},[1723],{"type":56,"value":1724},"# Raw PTXAS:\n",{"type":51,"tag":621,"props":1726,"children":1727},{"class":623,"line":1537},[1728,1732,1736,1740,1744,1749,1753,1757,1761],{"type":51,"tag":621,"props":1729,"children":1730},{"style":628},[1731],{"type":56,"value":1656},{"type":51,"tag":621,"props":1733,"children":1734},{"style":634},[1735],{"type":56,"value":1661},{"type":51,"tag":621,"props":1737,"children":1738},{"style":634},[1739],{"type":56,"value":1666},{"type":51,"tag":621,"props":1741,"children":1742},{"style":634},[1743],{"type":56,"value":1671},{"type":51,"tag":621,"props":1745,"children":1746},{"style":634},[1747],{"type":56,"value":1748}," opt",{"type":51,"tag":621,"props":1750,"children":1751},{"style":634},[1752],{"type":56,"value":1681},{"type":51,"tag":621,"props":1754,"children":1755},{"style":634},[1756],{"type":56,"value":1686},{"type":51,"tag":621,"props":1758,"children":1759},{"style":634},[1760],{"type":56,"value":1691},{"type":51,"tag":621,"props":1762,"children":1763},{"style":680},[1764],{"type":56,"value":1765}," \\\n",{"type":51,"tag":621,"props":1767,"children":1768},{"class":623,"line":1546},[1769,1774,1779,1784,1789],{"type":51,"tag":621,"props":1770,"children":1771},{"style":634},[1772],{"type":56,"value":1773},"    bash",{"type":51,"tag":621,"props":1775,"children":1776},{"style":634},[1777],{"type":56,"value":1778}," -c",{"type":51,"tag":621,"props":1780,"children":1781},{"style":686},[1782],{"type":56,"value":1783}," '",{"type":51,"tag":621,"props":1785,"children":1786},{"style":634},[1787],{"type":56,"value":1788},"PTXAS_OPTIONS=\"--apply-controls=best.acf\" python bench.py",{"type":51,"tag":621,"props":1790,"children":1791},{"style":686},[1792],{"type":56,"value":1793},"'\n",{"type":51,"tag":621,"props":1795,"children":1796},{"class":623,"line":27},[1797],{"type":51,"tag":621,"props":1798,"children":1799},{"style":1645},[1800],{"type":56,"value":1801},"# NVCC build:\n",{"type":51,"tag":621,"props":1803,"children":1804},{"class":623,"line":1563},[1805,1810,1815,1820,1825,1829,1834,1839],{"type":51,"tag":621,"props":1806,"children":1807},{"style":628},[1808],{"type":56,"value":1809},"nvcc",{"type":51,"tag":621,"props":1811,"children":1812},{"style":634},[1813],{"type":56,"value":1814}," -Xptxas",{"type":51,"tag":621,"props":1816,"children":1817},{"style":634},[1818],{"type":56,"value":1819}," --apply-controls=best.acf",{"type":51,"tag":621,"props":1821,"children":1822},{"style":634},[1823],{"type":56,"value":1824}," bench.cu",{"type":51,"tag":621,"props":1826,"children":1827},{"style":634},[1828],{"type":56,"value":1671},{"type":51,"tag":621,"props":1830,"children":1831},{"style":634},[1832],{"type":56,"value":1833}," bench",{"type":51,"tag":621,"props":1835,"children":1836},{"style":686},[1837],{"type":56,"value":1838}," &&",{"type":51,"tag":621,"props":1840,"children":1841},{"style":680},[1842],{"type":56,"value":1765},{"type":51,"tag":621,"props":1844,"children":1845},{"class":623,"line":1572},[1846,1851,1855,1859,1863,1867,1871,1875,1879],{"type":51,"tag":621,"props":1847,"children":1848},{"style":628},[1849],{"type":56,"value":1850},"    ncu",{"type":51,"tag":621,"props":1852,"children":1853},{"style":634},[1854],{"type":56,"value":1661},{"type":51,"tag":621,"props":1856,"children":1857},{"style":634},[1858],{"type":56,"value":1666},{"type":51,"tag":621,"props":1860,"children":1861},{"style":634},[1862],{"type":56,"value":1671},{"type":51,"tag":621,"props":1864,"children":1865},{"style":634},[1866],{"type":56,"value":1748},{"type":51,"tag":621,"props":1868,"children":1869},{"style":634},[1870],{"type":56,"value":1681},{"type":51,"tag":621,"props":1872,"children":1873},{"style":634},[1874],{"type":56,"value":1686},{"type":51,"tag":621,"props":1876,"children":1877},{"style":634},[1878],{"type":56,"value":1691},{"type":51,"tag":621,"props":1880,"children":1881},{"style":634},[1882],{"type":56,"value":1883}," .\u002Fbench\n",{"type":51,"tag":621,"props":1885,"children":1887},{"class":623,"line":1886},11,[1888],{"type":51,"tag":621,"props":1889,"children":1890},{"emptyLinePlaceholder":1069},[1891],{"type":56,"value":1072},{"type":51,"tag":621,"props":1893,"children":1895},{"class":623,"line":1894},12,[1896],{"type":51,"tag":621,"props":1897,"children":1898},{"style":1645},[1899],{"type":56,"value":1900},"# Diff\n",{"type":51,"tag":621,"props":1902,"children":1904},{"class":623,"line":1903},13,[1905,1909,1914,1919,1923,1928,1933,1938,1943,1948],{"type":51,"tag":621,"props":1906,"children":1907},{"style":628},[1908],{"type":56,"value":1656},{"type":51,"tag":621,"props":1910,"children":1911},{"style":634},[1912],{"type":56,"value":1913}," --import",{"type":51,"tag":621,"props":1915,"children":1916},{"style":634},[1917],{"type":56,"value":1918}," baseline.ncu-rep",{"type":51,"tag":621,"props":1920,"children":1921},{"style":634},[1922],{"type":56,"value":1913},{"type":51,"tag":621,"props":1924,"children":1925},{"style":634},[1926],{"type":56,"value":1927}," opt.ncu-rep",{"type":51,"tag":621,"props":1929,"children":1930},{"style":634},[1931],{"type":56,"value":1932}," --csv",{"type":51,"tag":621,"props":1934,"children":1935},{"style":634},[1936],{"type":56,"value":1937}," --page",{"type":51,"tag":621,"props":1939,"children":1940},{"style":634},[1941],{"type":56,"value":1942}," raw",{"type":51,"tag":621,"props":1944,"children":1945},{"style":686},[1946],{"type":56,"value":1947}," >",{"type":51,"tag":621,"props":1949,"children":1950},{"style":634},[1951],{"type":56,"value":1952}," diff.csv\n",{"type":51,"tag":499,"props":1954,"children":1956},{"id":1955},"five-metrics-that-explain-most-compileiq-wins",[1957],{"type":56,"value":1958},"Five metrics that explain most CompileIQ wins",{"type":51,"tag":71,"props":1960,"children":1961},{},[1962,1978],{"type":51,"tag":75,"props":1963,"children":1964},{},[1965],{"type":51,"tag":79,"props":1966,"children":1967},{},[1968,1973],{"type":51,"tag":83,"props":1969,"children":1970},{},[1971],{"type":56,"value":1972},"Metric",{"type":51,"tag":83,"props":1974,"children":1975},{},[1976],{"type":56,"value":1977},"What it means",{"type":51,"tag":99,"props":1979,"children":1980},{},[1981,1998,2015,2032,2049],{"type":51,"tag":79,"props":1982,"children":1983},{},[1984,1993],{"type":51,"tag":106,"props":1985,"children":1986},{},[1987],{"type":51,"tag":117,"props":1988,"children":1990},{"className":1989},[],[1991],{"type":56,"value":1992},"sm__throughput.avg.pct_of_peak_sustained_elapsed",{"type":51,"tag":106,"props":1994,"children":1995},{},[1996],{"type":56,"value":1997},"Compute throughput",{"type":51,"tag":79,"props":1999,"children":2000},{},[2001,2010],{"type":51,"tag":106,"props":2002,"children":2003},{},[2004],{"type":51,"tag":117,"props":2005,"children":2007},{"className":2006},[],[2008],{"type":56,"value":2009},"gpu__compute_memory_throughput.avg.pct_of_peak_sustained_elapsed",{"type":51,"tag":106,"props":2011,"children":2012},{},[2013],{"type":56,"value":2014},"Memory throughput",{"type":51,"tag":79,"props":2016,"children":2017},{},[2018,2027],{"type":51,"tag":106,"props":2019,"children":2020},{},[2021],{"type":51,"tag":117,"props":2022,"children":2024},{"className":2023},[],[2025],{"type":56,"value":2026},"sm__warps_active.avg.pct_of_peak_sustained_active",{"type":51,"tag":106,"props":2028,"children":2029},{},[2030],{"type":56,"value":2031},"Achieved occupancy",{"type":51,"tag":79,"props":2033,"children":2034},{},[2035,2044],{"type":51,"tag":106,"props":2036,"children":2037},{},[2038],{"type":51,"tag":117,"props":2039,"children":2041},{"className":2040},[],[2042],{"type":56,"value":2043},"launch__registers_per_thread",{"type":51,"tag":106,"props":2045,"children":2046},{},[2047],{"type":56,"value":2048},"Register pressure",{"type":51,"tag":79,"props":2050,"children":2051},{},[2052,2061],{"type":51,"tag":106,"props":2053,"children":2054},{},[2055],{"type":51,"tag":117,"props":2056,"children":2058},{"className":2057},[],[2059],{"type":56,"value":2060},"l2__throughput.avg.pct_of_peak_sustained_elapsed",{"type":51,"tag":106,"props":2062,"children":2063},{},[2064],{"type":56,"value":2065},"L2 pressure",{"type":51,"tag":58,"props":2067,"children":2068},{},[2069],{"type":56,"value":2070},"If the ACF moved any of these meaningfully, that's the mechanism. If none of\nthem moved but the win is real, look at lower-level metrics (warp stalls,\nissue slot utilization) — those are harder to interpret but often the answer.",{"type":51,"tag":499,"props":2072,"children":2074},{"id":2073},"register-spill-check-no-ncu-needed",[2075],{"type":56,"value":2076},"Register-spill check (no NCU needed)",{"type":51,"tag":610,"props":2078,"children":2080},{"className":612,"code":2079,"language":614,"meta":615,"style":615},"ptxas -v -arch=sm_100 --apply-controls best.acf kernel.ptx 2>&1 \\\n    | grep -E \"registers|spill|stack\"\n",[2081],{"type":51,"tag":117,"props":2082,"children":2083},{"__ignoreMap":615},[2084,2126],{"type":51,"tag":621,"props":2085,"children":2086},{"class":623,"line":624},[2087,2092,2097,2102,2107,2112,2117,2122],{"type":51,"tag":621,"props":2088,"children":2089},{"style":628},[2090],{"type":56,"value":2091},"ptxas",{"type":51,"tag":621,"props":2093,"children":2094},{"style":634},[2095],{"type":56,"value":2096}," -v",{"type":51,"tag":621,"props":2098,"children":2099},{"style":634},[2100],{"type":56,"value":2101}," -arch=sm_100",{"type":51,"tag":621,"props":2103,"children":2104},{"style":634},[2105],{"type":56,"value":2106}," --apply-controls",{"type":51,"tag":621,"props":2108,"children":2109},{"style":634},[2110],{"type":56,"value":2111}," best.acf",{"type":51,"tag":621,"props":2113,"children":2114},{"style":634},[2115],{"type":56,"value":2116}," kernel.ptx",{"type":51,"tag":621,"props":2118,"children":2119},{"style":686},[2120],{"type":56,"value":2121}," 2>&1",{"type":51,"tag":621,"props":2123,"children":2124},{"style":680},[2125],{"type":56,"value":1765},{"type":51,"tag":621,"props":2127,"children":2128},{"class":623,"line":670},[2129,2134,2139,2144,2149,2154],{"type":51,"tag":621,"props":2130,"children":2131},{"style":686},[2132],{"type":56,"value":2133},"    |",{"type":51,"tag":621,"props":2135,"children":2136},{"style":628},[2137],{"type":56,"value":2138}," grep",{"type":51,"tag":621,"props":2140,"children":2141},{"style":634},[2142],{"type":56,"value":2143}," -E",{"type":51,"tag":621,"props":2145,"children":2146},{"style":686},[2147],{"type":56,"value":2148}," \"",{"type":51,"tag":621,"props":2150,"children":2151},{"style":634},[2152],{"type":56,"value":2153},"registers|spill|stack",{"type":51,"tag":621,"props":2155,"children":2156},{"style":686},[2157],{"type":56,"value":2158},"\"\n",{"type":51,"tag":58,"props":2160,"children":2161},{},[2162,2164,2170,2172,2178,2180,2185],{"type":56,"value":2163},"Reports ",{"type":51,"tag":117,"props":2165,"children":2167},{"className":2166},[],[2168],{"type":56,"value":2169},"Used N registers, X bytes stack frame, Y bytes spill stores, Z bytes spill loads",{"type":56,"value":2171},". If ",{"type":51,"tag":117,"props":2173,"children":2175},{"className":2174},[],[2176],{"type":56,"value":2177},"Y + Z",{"type":56,"value":2179}," goes ",{"type":51,"tag":162,"props":2181,"children":2182},{},[2183],{"type":56,"value":2184},"up",{"type":56,"value":2186}," vs baseline, the ACF traded\nregister pressure for memory traffic — sometimes a real win, sometimes not.\nInvestigate before shipping.",{"type":51,"tag":64,"props":2188,"children":2190},{"id":2189},"self-test",[2191],{"type":56,"value":2192},"Self-test",{"type":51,"tag":610,"props":2194,"children":2196},{"className":612,"code":2195,"language":614,"meta":615,"style":615},"python scripts\u002Fdiagnose_csv.py --self-test\n",[2197],{"type":51,"tag":117,"props":2198,"children":2199},{"__ignoreMap":615},[2200],{"type":51,"tag":621,"props":2201,"children":2202},{"class":623,"line":624},[2203,2207,2212],{"type":51,"tag":621,"props":2204,"children":2205},{"style":628},[2206],{"type":56,"value":748},{"type":51,"tag":621,"props":2208,"children":2209},{"style":634},[2210],{"type":56,"value":2211}," scripts\u002Fdiagnose_csv.py",{"type":51,"tag":621,"props":2213,"children":2214},{"style":634},[2215],{"type":56,"value":2216}," --self-test\n",{"type":51,"tag":58,"props":2218,"children":2219},{},[2220,2222,2228],{"type":56,"value":2221},"Synthesizes a small ",{"type":51,"tag":117,"props":2223,"children":2225},{"className":2224},[],[2226],{"type":56,"value":2227},"results.csv",{"type":56,"value":2229}," covering each pathology (clean convergence,\nrising invalid rate, stalled best-score) and asserts the heuristic\nclassifications match.",{"type":51,"tag":64,"props":2231,"children":2233},{"id":2232},"explicitly-dropped-from-this-skill-vs-old-compileiq-debug-compileiq-profile",[2234],{"type":56,"value":2235},"Explicitly dropped from this skill (vs old \u002Fcompileiq-debug + \u002Fcompileiq-profile)",{"type":51,"tag":784,"props":2237,"children":2238},{},[2239,2257,2282,2299],{"type":51,"tag":567,"props":2240,"children":2241},{},[2242,2247,2249,2255],{"type":51,"tag":162,"props":2243,"children":2244},{},[2245],{"type":56,"value":2246},"BLAS symlink section",{"type":56,"value":2248}," — obsolete; current binaries don't link BLAS\n(verified by ",{"type":51,"tag":117,"props":2250,"children":2252},{"className":2251},[],[2253],{"type":56,"value":2254},"ldd",{"type":56,"value":2256},"). Carrying it forward sends users on a wild goose chase.",{"type":51,"tag":567,"props":2258,"children":2259},{},[2260,2273,2275,2280],{"type":51,"tag":162,"props":2261,"children":2262},{},[2263,2265,2271],{"type":56,"value":2264},"Verbose ",{"type":51,"tag":117,"props":2266,"children":2268},{"className":2267},[],[2269],{"type":56,"value":2270},"COMMON_PTXAS_ERRORS",{"type":56,"value":2272}," dict",{"type":56,"value":2274}," mapping individual ptxas error\nstrings to fixes — users get ",{"type":51,"tag":117,"props":2276,"children":2278},{"className":2277},[],[2279],{"type":56,"value":182},{"type":56,"value":2281}," instead, no need to recognize\nspecific messages.",{"type":51,"tag":567,"props":2283,"children":2284},{},[2285,2290,2292,2298],{"type":51,"tag":162,"props":2286,"children":2287},{},[2288],{"type":56,"value":2289},"Duplicate CUDA 13.3+ check",{"type":56,"value":2291}," — lives in ",{"type":51,"tag":117,"props":2293,"children":2295},{"className":2294},[],[2296],{"type":56,"value":2297},"compileiq-bootstrap",{"type":56,"value":521},{"type":51,"tag":567,"props":2300,"children":2301},{},[2302,2313,2315,2320],{"type":51,"tag":162,"props":2303,"children":2304},{},[2305,2311],{"type":51,"tag":117,"props":2306,"children":2308},{"className":2307},[],[2309],{"type":56,"value":2310},"validate_objective_function",{"type":56,"value":2312}," introspection helper",{"type":56,"value":2314}," — replaced by\n",{"type":51,"tag":117,"props":2316,"children":2318},{"className":2317},[],[2319],{"type":56,"value":204},{"type":56,"value":2321}," + the Debug-pack O0\u002FO3 canary.",{"type":51,"tag":64,"props":2323,"children":2325},{"id":2324},"next",[2326],{"type":56,"value":2327},"Next",{"type":51,"tag":784,"props":2329,"children":2330},{},[2331,2349,2360],{"type":51,"tag":567,"props":2332,"children":2333},{},[2334,2336,2341,2343,2348],{"type":56,"value":2335},"For the canary itself: ",{"type":51,"tag":117,"props":2337,"children":2339},{"className":2338},[],[2340],{"type":56,"value":868},{"type":56,"value":2342}," or\n",{"type":51,"tag":117,"props":2344,"children":2346},{"className":2345},[],[2347],{"type":56,"value":320},{"type":56,"value":521},{"type":51,"tag":567,"props":2350,"children":2351},{},[2352,2354,2359],{"type":56,"value":2353},"For environment issues: ",{"type":51,"tag":117,"props":2355,"children":2357},{"className":2356},[],[2358],{"type":56,"value":2297},{"type":56,"value":521},{"type":51,"tag":567,"props":2361,"children":2362},{},[2363,2365,2370],{"type":56,"value":2364},"After fixing: re-run ",{"type":51,"tag":117,"props":2366,"children":2368},{"className":2367},[],[2369],{"type":56,"value":1353},{"type":56,"value":521},{"type":51,"tag":2372,"props":2373,"children":2374},"style",{},[2375],{"type":56,"value":2376},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2378,"total":2534},[2379,2397,2414,2425,2437,2449,2462,2476,2489,2500,2514,2523],{"slug":2380,"name":2380,"fn":2381,"description":2382,"org":2383,"tags":2384,"stars":2394,"repoUrl":2395,"updatedAt":2396},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2385,2388,2391],{"name":2386,"slug":2387,"type":15},"Documentation","documentation",{"name":2389,"slug":2390,"type":15},"MCP","mcp",{"name":2392,"slug":2393,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2398,"name":2398,"fn":2399,"description":2400,"org":2401,"tags":2402,"stars":2411,"repoUrl":2412,"updatedAt":2413},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2403,2406,2409],{"name":2404,"slug":2405,"type":15},"Containers","containers",{"name":2407,"slug":2408,"type":15},"Deployment","deployment",{"name":2410,"slug":748,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2415,"name":2415,"fn":2416,"description":2417,"org":2418,"tags":2419,"stars":2411,"repoUrl":2412,"updatedAt":2424},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2420,2423],{"name":2421,"slug":2422,"type":15},"CI\u002FCD","ci-cd",{"name":2407,"slug":2408,"type":15},"2026-07-14T05:25:59.97109",{"slug":2426,"name":2426,"fn":2427,"description":2428,"org":2429,"tags":2430,"stars":2411,"repoUrl":2412,"updatedAt":2436},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2431,2432,2433],{"name":2421,"slug":2422,"type":15},{"name":2407,"slug":2408,"type":15},{"name":2434,"slug":2435,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2438,"name":2438,"fn":2439,"description":2440,"org":2441,"tags":2442,"stars":2411,"repoUrl":2412,"updatedAt":2448},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2443,2444,2445],{"name":21,"slug":22,"type":15},{"name":2434,"slug":2435,"type":15},{"name":2446,"slug":2447,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2450,"name":2450,"fn":2451,"description":2452,"org":2453,"tags":2454,"stars":2411,"repoUrl":2412,"updatedAt":2461},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2455,2458],{"name":2456,"slug":2457,"type":15},"Best Practices","best-practices",{"name":2459,"slug":2460,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2463,"name":2463,"fn":2464,"description":2465,"org":2466,"tags":2467,"stars":2411,"repoUrl":2412,"updatedAt":2475},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2468,2471,2474],{"name":2469,"slug":2470,"type":15},"Machine Learning","machine-learning",{"name":2472,"slug":2473,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2477,"name":2477,"fn":2478,"description":2479,"org":2480,"tags":2481,"stars":2411,"repoUrl":2412,"updatedAt":2488},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2482,2485],{"name":2483,"slug":2484,"type":15},"QA","qa",{"name":2486,"slug":2487,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":2490,"name":2490,"fn":2491,"description":2492,"org":2493,"tags":2494,"stars":2411,"repoUrl":2412,"updatedAt":2499},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2495,2496],{"name":2407,"slug":2408,"type":15},{"name":2497,"slug":2498,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":2501,"name":2501,"fn":2502,"description":2503,"org":2504,"tags":2505,"stars":2411,"repoUrl":2412,"updatedAt":2513},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2506,2509,2510],{"name":2507,"slug":2508,"type":15},"Code Review","code-review",{"name":2434,"slug":2435,"type":15},{"name":2511,"slug":2512,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2515,"name":2515,"fn":2516,"description":2517,"org":2518,"tags":2519,"stars":2411,"repoUrl":2412,"updatedAt":2522},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2520,2521],{"name":2483,"slug":2484,"type":15},{"name":2486,"slug":2487,"type":15},"2026-07-14T05:25:54.928983",{"slug":2524,"name":2524,"fn":2525,"description":2526,"org":2527,"tags":2528,"stars":2411,"repoUrl":2412,"updatedAt":2533},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2529,2532],{"name":2530,"slug":2531,"type":15},"Automation","automation",{"name":2421,"slug":2422,"type":15},"2026-07-30T05:29:03.275638",496,{"items":2536,"total":1546},[2537,2548,2560,2571,2578,2587,2599],{"slug":320,"name":320,"fn":2538,"description":2539,"org":2540,"tags":2541,"stars":23,"repoUrl":24,"updatedAt":2547},"author CompileIQ objective functions","Use when writing the objective_function= passed to Search(). Covers the two legal signatures (compiler-only str vs mixed list), the baseline-knockout branch, per-eval cache busting, framework-specific --apply-controls injection (raw PTXAS, NVCC, Triton, Helion, cuTeDSL\u002FFA4, FlashInfer), correctness-before-timing, INVALID_SCORE handling, and the Debug-pack O0\u002FO3 ACF-injection canary that must pass before launching a search. Triggers on \"objective function\", \"apply-controls\", \"INVALID_SCORE\", \"save_compiler_config\", \"baseline knockout\", \"BASELINE_CONFIG\", \"every config returns the same score\", \"TypeError fromhex\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2542,2545,2546],{"name":2543,"slug":2544,"type":15},"Engineering","engineering",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-14T05:32:10.176779",{"slug":868,"name":868,"fn":2549,"description":2550,"org":2551,"tags":2552,"stars":23,"repoUrl":24,"updatedAt":2559},"apply CompileIQ booster packs to compilers","Use BEFORE running a full CompileIQ search. Walks through downloading a Booster Pack from NVIDIA\u002FCompileIQ GitHub Releases, applying ACF candidates one at a time to the user's compiler (raw PTXAS, NVCC, Triton, Helion, FlashInfer), and keeping only candidates that compile, pass correctness, and beat the no-ACF baseline. Includes the mandatory Debug-pack O0\u002FO3 ACF-injection canary that proves the ACF is reaching PTXAS. Triggers on \"booster pack\", \"ACF\", \"apply-controls\", \"speed up without searching\", \"helion fp8\", \"flashinfer batch decode\", \"debug pack\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2553,2554,2555,2558],{"name":2543,"slug":2544,"type":15},{"name":9,"slug":8,"type":15},{"name":2556,"slug":2557,"type":15},"Optimization","optimization",{"name":13,"slug":14,"type":15},"2026-07-14T05:32:12.791444",{"slug":2297,"name":2297,"fn":2561,"description":2562,"org":2563,"tags":2564,"stars":23,"repoUrl":24,"updatedAt":2570},"bootstrap CompileIQ project environments","Use when starting a fresh CompileIQ project, hitting a socket timeout, or before running any other compileiq-* skill. Verifies CUDA 13.3+, ptxas, GPU access, that `from compileiq.ciq import Search` and friends resolve, and that `PtxasSearchSpace().retrieve()` returns a real path. Documents the env vars that control timeouts, caching, and search-space mirroring. Triggers on \"set up compileiq\", \"compileiq doesn't work\", \"socket timeout\", \"where do search spaces come from\", \"air-gapped compileiq\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2565,2566,2567],{"name":2543,"slug":2544,"type":15},{"name":9,"slug":8,"type":15},{"name":2568,"slug":2569,"type":15},"Onboarding","onboarding","2026-07-14T05:32:11.472149",{"slug":4,"name":4,"fn":5,"description":6,"org":2572,"tags":2573,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2574,2575,2576,2577],{"name":21,"slug":22,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":1353,"name":1353,"fn":2579,"description":2580,"org":2581,"tags":2582,"stars":23,"repoUrl":24,"updatedAt":2586},"execute CompileIQ search workflows","Use when composing the Search(...) call and calling .start(). Covers the four worker classes (MultiProcessWorker \u002F IsoMultiProcessWorker \u002F RayWorker \u002F AsyncWorker) and when to pick each, SearchConfiguration sizing rules, dump_results checkpointing, tracker_config choice (Disabled \u002F Loguru \u002F MLflow), num_workers\u002Ftask_timeout semantics, and GPU clock locking for stable measurements. Triggers on \"Search()\", \"tuner.start()\", \"pool_size\", \"num_workers\", \"task_timeout\", \"IsoMultiProcessWorker\", \"RayWorker\", \"dump_results\", \"MLflow\", \"GPU clocks\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2583,2584,2585],{"name":2530,"slug":2531,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-14T05:32:08.913442",{"slug":2588,"name":2588,"fn":2589,"description":2590,"org":2591,"tags":2592,"stars":23,"repoUrl":24,"updatedAt":2598},"compileiq-search-space","configure CompileIQ search spaces","Use when picking the search_space= argument for Search(). Covers the three provider classes (PtxasSearchSpace, NvccSearchSpace, LocalSearchSpaceBin), how to pin a version\u002Fvariant\u002Ftag, the attention-focused 'att' variant for attention kernels (FlashAttention, GQA, MHA, MLA, FlashInfer Batch Decode), air-gapped mirroring via CIQ_SEARCH_SPACES_DIR, and custom user-defined search spaces built from compileiq.search_spaces.base primitives. Triggers on \"search space\", \"PtxasSearchSpace\", \"NvccSearchSpace\", \"air-gapped compileiq\", \"offline compileiq\", \"CIQ_SEARCH_SPACES_DIR\", \"attention variant\", \"ptxas att\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2593,2596,2597],{"name":2594,"slug":2595,"type":15},"Configuration","configuration",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-14T05:32:07.605639",{"slug":2600,"name":2600,"fn":2601,"description":2602,"org":2603,"tags":2604,"stars":23,"repoUrl":24,"updatedAt":2611},"compileiq-validate-result","validate CompileIQ search results","Use AFTER a Search has completed and BEFORE claiming any speedup or shipping an ACF. Loads the dump_results CSV, extracts top-K candidates (single-objective) or the Pareto front (multi-objective), re-measures each against the no-ACF baseline with 100+ trials on fresh caches, runs Welch's t-test plus Cohen's d, rejects three classic false-positive patterns (lucky-min \u002F higher-variance \u002F multiple-comparisons-of-N), and saves the validated winner as best.acf. Triggers on \"validate result\", \"extract best config\", \"Welch's t-test\", \"is my speedup real\", \"save best ACF\", \"pareto front\", \"claim speedup\", \"ship config\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2605,2608,2609,2610],{"name":2606,"slug":2607,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":2483,"slug":2484,"type":15},"2026-07-14T05:32:06.343444"]