[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-tilegym-improve-cutile-kernel-perf":3,"mdc-lff7yx-key":34,"related-org-nvidia-tilegym-improve-cutile-kernel-perf":1218,"related-repo-nvidia-tilegym-improve-cutile-kernel-perf":1376},{"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},"tilegym-improve-cutile-kernel-perf","optimize cuTile kernel performance","Iteratively optimize cuTile kernel performance through systematic profiling, bottleneck analysis, IR comparison, and targeted tuning. Covers tile sizes, occupancy, autotune configs, TMA, latency hints, persistent scheduling, num_ctas, flush_to_zero, and IR-level debugging. Use when asked to \"optimize cutile kernel\", \"improve kernel perf\", \"tune cutile performance\", \"make kernel faster\", or iteratively benchmark and refine a cuTile GPU kernel in the TileGym project.",{"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,17,20],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Engineering","engineering",{"name":21,"slug":22,"type":15},"Debugging","debugging",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-30T05:28:24.433256","CC-BY-4.0 AND Apache-2.0",281,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Ftilegym-improve-cutile-kernel-perf","---\nname: tilegym-improve-cutile-kernel-perf\ndescription: Iteratively optimize cuTile kernel performance through systematic profiling, bottleneck analysis, IR comparison, and targeted tuning. Covers tile sizes, occupancy, autotune configs, TMA, latency hints, persistent scheduling, num_ctas, flush_to_zero, and IR-level debugging. Use when asked to \"optimize cutile kernel\", \"improve kernel perf\", \"tune cutile performance\", \"make kernel faster\", or iteratively benchmark and refine a cuTile GPU kernel in the TileGym project.\nlicense: CC-BY-4.0 AND Apache-2.0\nmetadata:\n  author: \"TileGym Team \u003CTileGym@nvidia.com>\"\n  version: \"2026.4.11\"\n  environment: \"IDE: Claude Code, Cursor (Agent mode); model: Opus 4.6\"\n  requires: \"GPU node Blackwell, Hopper and Ampere for benchmarking\"\n  tags:\n    - cutile\n    - performance\n    - optimization\n    - kernel\n    - profiling\n---\n\n# Iterative cuTile Kernel Performance Optimization\nSystematically profile, diagnose bottlenecks, and iteratively tune a cuTile kernel's performance in the TileGym repository.\n\n## Instructions\n\nFollow the three phases in order: **Setup** the environment and baseline, run the **Experimentation** loop with a tracked log, then iterate **The experiment loop** until perf goals are met or further gains plateau.\n\n## Setup\nWork with user to prepare optimization environment:\n1. Create a fresh git branch: Propose a branch name, e.g., `cutile-perf-\u003Ckernel_name>-\u003Cdate>` from current branch. Checkout `git checkout -b \u003Cbranch name>`\n2. Locate the target kernel:\n   - cuTile kernels live under `src\u002Ftilegym\u002Fsuites\u002F\u003Csuite>\u002Fcutile\u002F` or `src\u002Ftilegym\u002Fops\u002Fcutile\u002F`\n   - Read the kernel file and identify: the `@ct.kernel` decorated function(s), the launch wrapper (`ct.launch()` or `ct_experimental.autotune_launch()`), the `@register_impl` registration, and current autotune configs (if any)\n3. Classify the kernel:\n   - Arithmetic Intensity \u003C 10 -> Memory-bound\n   - Arithmetic Intensity 10-50 -> Balanced\n   - Arithmetic Intensity > 50 -> Compute-bound\n\n   Note: classification is only used to pick the optimization priority order in the experiment loop. The **core metric** is always `latency (ms)`.\n4. Check GPU environment:\n   - Ensure a GPU node (Blackwell or Ampere GPU) is available\n   - All subsequent benchmark commands should run on the GPU node\n5. Study related references:\n   - `references\u002Foptimization-playbook.md`: Step-by-step recipes for each optimization (A through J) with before\u002Fafter code examples\n   - `references\u002Fperf-knobs-catalog.md`: Complete catalog of all tunable parameters (TMA, persistent scheduling, occupancy, tile sizes, latency hints, etc.)\n   - `references\u002Fcutile-api-reference.md`: cuTile API reference and 18 critical rules\n   - `references\u002Fperformance-model.md`: Roofline\u002Fperformance model, bottleneck diagnosis, autotuning\n   - `references\u002Fir-dump-guide.md`: IR dump, analysis, and error diagnosis\n   - `references\u002Fcutile-patterns-reference.md`: Common cuTile patterns and conversion quick-reference\n6. Create @sandbox\u002Fperf_results.md to track progress. The first run will write a baseline\n7. Confirm and go: Once you get confirmation, kick off the experimentation\n\n## Experimentation\nEvery experiment iteration applies ONE optimization to the target kernel, verifies correctness, re-benchmarks, and records results. Each iteration should be enforced to finish within 10 minutes.\n\n### The goal\n- Improve the **core metric**: reduce `latency (ms)`\n- Subject to the **core constraint**: Correctness shall not regress — every optimization MUST preserve numerical correctness. `latency (ms)` shall not regress > 2% compared to baseline.\n\n### What you can change\n- The target kernel file under `src\u002Ftilegym\u002Fsuites\u002F\u003Csuite>\u002Fcutile\u002F` or `src\u002Ftilegym\u002Fops\u002Fcutile\u002F`: kernel body, tile sizes, occupancy, num_ctas, TMA usage, latency hints, flush_to_zero, autotune configs, persistent scheduling, and other cuTile-specific parameters\n- The kernel's launch wrapper: grid computation, autotune config space\n- @sandbox\u002F: Feel free to add new files or modify files created by you, but don't check to git\n\n### What you can NOT change\n- Kernel functional semantics (inputs, outputs, and numerical behavior within tolerance)\n- Test infrastructure and benchmark harness\n- Anything not listed above\n\n### What to expect from experiment outputs\n\n#### Correctness test:\n```bash\npython -m pytest tests\u002Fsuites\u002F...\u002Ftest_\u003Ckernel_name>.py -k \"test_ and cutile and not test_perf\" -v\n```\n\n#### Performance benchmark:\nFor each iteration:\n1. Run pytest benchmark: `python -m pytest ... --print-record` → extract latency (ms)\n2. Record latency in perf_results.md\n\nBenchmark cmdlines:\n```bash\npython -m pytest tests\u002Fsuites\u002F...\u002Ftest_\u003Ckernel_name>.py -k \"test_perf and cutile\" --print-record -v\n```\n\nlatency sample:\n```\nCutile: {'forward': {'mean': 3.7903138461538455, 'std': 0.0016941310873207053, 'rel_std': 0.044696327430505396, 'median': 3.789880999999999, 'min': 3.7883389999999992, 'max': 3.7941230000000004, 'nrep': 13, 'peak_mem_mb': 913}} ms\n```\n\n### Track experiment progress\nUse @sandbox\u002Fperf_results.md to record each iteration's results. It should only contain a Markdown table with 5 columns:\n- `iteration`: iteration number, starting from 0 (baseline)\n- `optimization`: what was applied (e.g., \"baseline\", \"TMA replace gather\", \"persistent scheduling\")\n- `latency_ms`: kernel latency in milliseconds, six decimal points\n- `correctness`: PASS or FAIL\n- `status`: Whether this iteration was `keep`, `revert`, or `crash`\n\nExample content:\n\n```markdown\n| iteration | optimization       | latency_ms | correctness | status |\n|----------:|:-------------------|-----------:|:------------|-------:|\n| 0         | baseline           |   0.820000 | PASS        | keep   |\n| 1         | TMA replace gather |   0.390000 | PASS        | keep   |\n```\n\nCreate the tabular header if the file was empty. Append one line for each iteration.\n\n### The baseline\nThe first iteration (iteration 0) will not change any code and simply run the correctness test and performance benchmark. Results will be listed at the first row as baseline.\n\n## The experiment loop\nCore methodology is to apply ONE optimization per iteration from the playbook, verify correctness, benchmark, and decide whether to keep or revert. Try one optimization at a time, and have clean experiment records.\n\nLOOP:\n1. Check git status: Current git branch\u002Fcommit we're on\n2. Select and apply ONE optimization from `references\u002Foptimization-playbook.md`:\n3. Verify correctness — if fails, **revert immediately**. Common causes: `flush_to_zero`\u002F`rounding_mode=APPROX` changed results, tile size OOB, `allow_tma=False` semantics, persistent loop bound error\n4. Re-benchmark and compare against current baseline\n5. Git commit\n6. Record results to @sandbox\u002Fperf_results.md\n7. Decision rules:\n\n   | Outcome | Action |\n   |---------|--------|\n   | Improvement(`latency (ms)`) >= 5% | Accept as new baseline, continue |\n   | Improvement 2-5% | Accept, lower priority for next iteration |\n   | Improvement \u003C 2% | Accept but stop unless user wants more |\n   | Regression on any config | Revert immediately, try next optimization |\n   | No improvement after 2 consecutive iterations | Stop |\n   | Root cause is `scheduling` or `unknown` | Escalate to user |\n\n9. If keeping, advance the baseline numbers and continue loop\n10. If reverting, git reset back to where you started and try the next optimization in priority order\nUNTIL: all attempts are finished, or more than 25 iterations have occurred, or the user interrupts\n\n*Be autonomous*: Ask user clarifications at setup phase. Once stepped into the experiment loop, do not pause to ask user feedback: Use your best judgement for decision making, consult the optimization playbook and perf knobs catalog promptly, and think harder if stuck.\n",{"data":35,"body":46},{"name":4,"description":6,"license":26,"metadata":36},{"author":37,"version":38,"environment":39,"requires":40,"tags":41},"TileGym Team \u003CTileGym@nvidia.com>","2026.4.11","IDE: Claude Code, Cursor (Agent mode); model: Opus 4.6","GPU node Blackwell, Hopper and Ampere for benchmarking",[42,14,43,44,45],"cutile","optimization","kernel","profiling",{"type":47,"children":48},"root",[49,58,64,71,98,103,108,343,348,353,360,398,404,435,441,459,465,472,563,569,574,595,600,672,677,687,693,698,777,782,958,963,969,974,979,984,989,1201,1212],{"type":50,"tag":51,"props":52,"children":54},"element","h1",{"id":53},"iterative-cutile-kernel-performance-optimization",[55],{"type":56,"value":57},"text","Iterative cuTile Kernel Performance Optimization",{"type":50,"tag":59,"props":60,"children":61},"p",{},[62],{"type":56,"value":63},"Systematically profile, diagnose bottlenecks, and iteratively tune a cuTile kernel's performance in the TileGym repository.",{"type":50,"tag":65,"props":66,"children":68},"h2",{"id":67},"instructions",[69],{"type":56,"value":70},"Instructions",{"type":50,"tag":59,"props":72,"children":73},{},[74,76,82,84,89,91,96],{"type":56,"value":75},"Follow the three phases in order: ",{"type":50,"tag":77,"props":78,"children":79},"strong",{},[80],{"type":56,"value":81},"Setup",{"type":56,"value":83}," the environment and baseline, run the ",{"type":50,"tag":77,"props":85,"children":86},{},[87],{"type":56,"value":88},"Experimentation",{"type":56,"value":90}," loop with a tracked log, then iterate ",{"type":50,"tag":77,"props":92,"children":93},{},[94],{"type":56,"value":95},"The experiment loop",{"type":56,"value":97}," until perf goals are met or further gains plateau.",{"type":50,"tag":65,"props":99,"children":101},{"id":100},"setup",[102],{"type":56,"value":81},{"type":50,"tag":59,"props":104,"children":105},{},[106],{"type":56,"value":107},"Work with user to prepare optimization environment:",{"type":50,"tag":109,"props":110,"children":111},"ol",{},[112,133,197,241,259,333,338],{"type":50,"tag":113,"props":114,"children":115},"li",{},[116,118,125,127],{"type":56,"value":117},"Create a fresh git branch: Propose a branch name, e.g., ",{"type":50,"tag":119,"props":120,"children":122},"code",{"className":121},[],[123],{"type":56,"value":124},"cutile-perf-\u003Ckernel_name>-\u003Cdate>",{"type":56,"value":126}," from current branch. Checkout ",{"type":50,"tag":119,"props":128,"children":130},{"className":129},[],[131],{"type":56,"value":132},"git checkout -b \u003Cbranch name>",{"type":50,"tag":113,"props":134,"children":135},{},[136,138],{"type":56,"value":137},"Locate the target kernel:",{"type":50,"tag":139,"props":140,"children":141},"ul",{},[142,161],{"type":50,"tag":113,"props":143,"children":144},{},[145,147,153,155],{"type":56,"value":146},"cuTile kernels live under ",{"type":50,"tag":119,"props":148,"children":150},{"className":149},[],[151],{"type":56,"value":152},"src\u002Ftilegym\u002Fsuites\u002F\u003Csuite>\u002Fcutile\u002F",{"type":56,"value":154}," or ",{"type":50,"tag":119,"props":156,"children":158},{"className":157},[],[159],{"type":56,"value":160},"src\u002Ftilegym\u002Fops\u002Fcutile\u002F",{"type":50,"tag":113,"props":162,"children":163},{},[164,166,172,174,180,181,187,189,195],{"type":56,"value":165},"Read the kernel file and identify: the ",{"type":50,"tag":119,"props":167,"children":169},{"className":168},[],[170],{"type":56,"value":171},"@ct.kernel",{"type":56,"value":173}," decorated function(s), the launch wrapper (",{"type":50,"tag":119,"props":175,"children":177},{"className":176},[],[178],{"type":56,"value":179},"ct.launch()",{"type":56,"value":154},{"type":50,"tag":119,"props":182,"children":184},{"className":183},[],[185],{"type":56,"value":186},"ct_experimental.autotune_launch()",{"type":56,"value":188},"), the ",{"type":50,"tag":119,"props":190,"children":192},{"className":191},[],[193],{"type":56,"value":194},"@register_impl",{"type":56,"value":196}," registration, and current autotune configs (if any)",{"type":50,"tag":113,"props":198,"children":199},{},[200,202,220,224,226,231,233,239],{"type":56,"value":201},"Classify the kernel:",{"type":50,"tag":139,"props":203,"children":204},{},[205,210,215],{"type":50,"tag":113,"props":206,"children":207},{},[208],{"type":56,"value":209},"Arithmetic Intensity \u003C 10 -> Memory-bound",{"type":50,"tag":113,"props":211,"children":212},{},[213],{"type":56,"value":214},"Arithmetic Intensity 10-50 -> Balanced",{"type":50,"tag":113,"props":216,"children":217},{},[218],{"type":56,"value":219},"Arithmetic Intensity > 50 -> Compute-bound",{"type":50,"tag":221,"props":222,"children":223},"br",{},[],{"type":56,"value":225},"Note: classification is only used to pick the optimization priority order in the experiment loop. The ",{"type":50,"tag":77,"props":227,"children":228},{},[229],{"type":56,"value":230},"core metric",{"type":56,"value":232}," is always ",{"type":50,"tag":119,"props":234,"children":236},{"className":235},[],[237],{"type":56,"value":238},"latency (ms)",{"type":56,"value":240},".",{"type":50,"tag":113,"props":242,"children":243},{},[244,246],{"type":56,"value":245},"Check GPU environment:",{"type":50,"tag":139,"props":247,"children":248},{},[249,254],{"type":50,"tag":113,"props":250,"children":251},{},[252],{"type":56,"value":253},"Ensure a GPU node (Blackwell or Ampere GPU) is available",{"type":50,"tag":113,"props":255,"children":256},{},[257],{"type":56,"value":258},"All subsequent benchmark commands should run on the GPU node",{"type":50,"tag":113,"props":260,"children":261},{},[262,264],{"type":56,"value":263},"Study related references:",{"type":50,"tag":139,"props":265,"children":266},{},[267,278,289,300,311,322],{"type":50,"tag":113,"props":268,"children":269},{},[270,276],{"type":50,"tag":119,"props":271,"children":273},{"className":272},[],[274],{"type":56,"value":275},"references\u002Foptimization-playbook.md",{"type":56,"value":277},": Step-by-step recipes for each optimization (A through J) with before\u002Fafter code examples",{"type":50,"tag":113,"props":279,"children":280},{},[281,287],{"type":50,"tag":119,"props":282,"children":284},{"className":283},[],[285],{"type":56,"value":286},"references\u002Fperf-knobs-catalog.md",{"type":56,"value":288},": Complete catalog of all tunable parameters (TMA, persistent scheduling, occupancy, tile sizes, latency hints, etc.)",{"type":50,"tag":113,"props":290,"children":291},{},[292,298],{"type":50,"tag":119,"props":293,"children":295},{"className":294},[],[296],{"type":56,"value":297},"references\u002Fcutile-api-reference.md",{"type":56,"value":299},": cuTile API reference and 18 critical rules",{"type":50,"tag":113,"props":301,"children":302},{},[303,309],{"type":50,"tag":119,"props":304,"children":306},{"className":305},[],[307],{"type":56,"value":308},"references\u002Fperformance-model.md",{"type":56,"value":310},": Roofline\u002Fperformance model, bottleneck diagnosis, autotuning",{"type":50,"tag":113,"props":312,"children":313},{},[314,320],{"type":50,"tag":119,"props":315,"children":317},{"className":316},[],[318],{"type":56,"value":319},"references\u002Fir-dump-guide.md",{"type":56,"value":321},": IR dump, analysis, and error diagnosis",{"type":50,"tag":113,"props":323,"children":324},{},[325,331],{"type":50,"tag":119,"props":326,"children":328},{"className":327},[],[329],{"type":56,"value":330},"references\u002Fcutile-patterns-reference.md",{"type":56,"value":332},": Common cuTile patterns and conversion quick-reference",{"type":50,"tag":113,"props":334,"children":335},{},[336],{"type":56,"value":337},"Create @sandbox\u002Fperf_results.md to track progress. The first run will write a baseline",{"type":50,"tag":113,"props":339,"children":340},{},[341],{"type":56,"value":342},"Confirm and go: Once you get confirmation, kick off the experimentation",{"type":50,"tag":65,"props":344,"children":346},{"id":345},"experimentation",[347],{"type":56,"value":88},{"type":50,"tag":59,"props":349,"children":350},{},[351],{"type":56,"value":352},"Every experiment iteration applies ONE optimization to the target kernel, verifies correctness, re-benchmarks, and records results. Each iteration should be enforced to finish within 10 minutes.",{"type":50,"tag":354,"props":355,"children":357},"h3",{"id":356},"the-goal",[358],{"type":56,"value":359},"The goal",{"type":50,"tag":139,"props":361,"children":362},{},[363,379],{"type":50,"tag":113,"props":364,"children":365},{},[366,368,372,374],{"type":56,"value":367},"Improve the ",{"type":50,"tag":77,"props":369,"children":370},{},[371],{"type":56,"value":230},{"type":56,"value":373},": reduce ",{"type":50,"tag":119,"props":375,"children":377},{"className":376},[],[378],{"type":56,"value":238},{"type":50,"tag":113,"props":380,"children":381},{},[382,384,389,391,396],{"type":56,"value":383},"Subject to the ",{"type":50,"tag":77,"props":385,"children":386},{},[387],{"type":56,"value":388},"core constraint",{"type":56,"value":390},": Correctness shall not regress — every optimization MUST preserve numerical correctness. ",{"type":50,"tag":119,"props":392,"children":394},{"className":393},[],[395],{"type":56,"value":238},{"type":56,"value":397}," shall not regress > 2% compared to baseline.",{"type":50,"tag":354,"props":399,"children":401},{"id":400},"what-you-can-change",[402],{"type":56,"value":403},"What you can change",{"type":50,"tag":139,"props":405,"children":406},{},[407,425,430],{"type":50,"tag":113,"props":408,"children":409},{},[410,412,417,418,423],{"type":56,"value":411},"The target kernel file under ",{"type":50,"tag":119,"props":413,"children":415},{"className":414},[],[416],{"type":56,"value":152},{"type":56,"value":154},{"type":50,"tag":119,"props":419,"children":421},{"className":420},[],[422],{"type":56,"value":160},{"type":56,"value":424},": kernel body, tile sizes, occupancy, num_ctas, TMA usage, latency hints, flush_to_zero, autotune configs, persistent scheduling, and other cuTile-specific parameters",{"type":50,"tag":113,"props":426,"children":427},{},[428],{"type":56,"value":429},"The kernel's launch wrapper: grid computation, autotune config space",{"type":50,"tag":113,"props":431,"children":432},{},[433],{"type":56,"value":434},"@sandbox\u002F: Feel free to add new files or modify files created by you, but don't check to git",{"type":50,"tag":354,"props":436,"children":438},{"id":437},"what-you-can-not-change",[439],{"type":56,"value":440},"What you can NOT change",{"type":50,"tag":139,"props":442,"children":443},{},[444,449,454],{"type":50,"tag":113,"props":445,"children":446},{},[447],{"type":56,"value":448},"Kernel functional semantics (inputs, outputs, and numerical behavior within tolerance)",{"type":50,"tag":113,"props":450,"children":451},{},[452],{"type":56,"value":453},"Test infrastructure and benchmark harness",{"type":50,"tag":113,"props":455,"children":456},{},[457],{"type":56,"value":458},"Anything not listed above",{"type":50,"tag":354,"props":460,"children":462},{"id":461},"what-to-expect-from-experiment-outputs",[463],{"type":56,"value":464},"What to expect from experiment outputs",{"type":50,"tag":466,"props":467,"children":469},"h4",{"id":468},"correctness-test",[470],{"type":56,"value":471},"Correctness test:",{"type":50,"tag":473,"props":474,"children":479},"pre",{"className":475,"code":476,"language":477,"meta":478,"style":478},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python -m pytest tests\u002Fsuites\u002F...\u002Ftest_\u003Ckernel_name>.py -k \"test_ and cutile and not test_perf\" -v\n","bash","",[480],{"type":50,"tag":119,"props":481,"children":482},{"__ignoreMap":478},[483],{"type":50,"tag":484,"props":485,"children":488},"span",{"class":486,"line":487},"line",1,[489,495,501,506,511,517,522,528,533,538,543,548,553,558],{"type":50,"tag":484,"props":490,"children":492},{"style":491},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[493],{"type":56,"value":494},"python",{"type":50,"tag":484,"props":496,"children":498},{"style":497},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[499],{"type":56,"value":500}," -m",{"type":50,"tag":484,"props":502,"children":503},{"style":497},[504],{"type":56,"value":505}," pytest",{"type":50,"tag":484,"props":507,"children":508},{"style":497},[509],{"type":56,"value":510}," tests\u002Fsuites\u002F...\u002Ftest_",{"type":50,"tag":484,"props":512,"children":514},{"style":513},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[515],{"type":56,"value":516},"\u003C",{"type":50,"tag":484,"props":518,"children":519},{"style":497},[520],{"type":56,"value":521},"kernel_nam",{"type":50,"tag":484,"props":523,"children":525},{"style":524},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[526],{"type":56,"value":527},"e",{"type":50,"tag":484,"props":529,"children":530},{"style":513},[531],{"type":56,"value":532},">",{"type":50,"tag":484,"props":534,"children":535},{"style":497},[536],{"type":56,"value":537},".py",{"type":50,"tag":484,"props":539,"children":540},{"style":497},[541],{"type":56,"value":542}," -k",{"type":50,"tag":484,"props":544,"children":545},{"style":513},[546],{"type":56,"value":547}," \"",{"type":50,"tag":484,"props":549,"children":550},{"style":497},[551],{"type":56,"value":552},"test_ and cutile and not test_perf",{"type":50,"tag":484,"props":554,"children":555},{"style":513},[556],{"type":56,"value":557},"\"",{"type":50,"tag":484,"props":559,"children":560},{"style":497},[561],{"type":56,"value":562}," -v\n",{"type":50,"tag":466,"props":564,"children":566},{"id":565},"performance-benchmark",[567],{"type":56,"value":568},"Performance benchmark:",{"type":50,"tag":59,"props":570,"children":571},{},[572],{"type":56,"value":573},"For each iteration:",{"type":50,"tag":109,"props":575,"children":576},{},[577,590],{"type":50,"tag":113,"props":578,"children":579},{},[580,582,588],{"type":56,"value":581},"Run pytest benchmark: ",{"type":50,"tag":119,"props":583,"children":585},{"className":584},[],[586],{"type":56,"value":587},"python -m pytest ... --print-record",{"type":56,"value":589}," → extract latency (ms)",{"type":50,"tag":113,"props":591,"children":592},{},[593],{"type":56,"value":594},"Record latency in perf_results.md",{"type":50,"tag":59,"props":596,"children":597},{},[598],{"type":56,"value":599},"Benchmark cmdlines:",{"type":50,"tag":473,"props":601,"children":603},{"className":475,"code":602,"language":477,"meta":478,"style":478},"python -m pytest tests\u002Fsuites\u002F...\u002Ftest_\u003Ckernel_name>.py -k \"test_perf and cutile\" --print-record -v\n",[604],{"type":50,"tag":119,"props":605,"children":606},{"__ignoreMap":478},[607],{"type":50,"tag":484,"props":608,"children":609},{"class":486,"line":487},[610,614,618,622,626,630,634,638,642,646,650,654,659,663,668],{"type":50,"tag":484,"props":611,"children":612},{"style":491},[613],{"type":56,"value":494},{"type":50,"tag":484,"props":615,"children":616},{"style":497},[617],{"type":56,"value":500},{"type":50,"tag":484,"props":619,"children":620},{"style":497},[621],{"type":56,"value":505},{"type":50,"tag":484,"props":623,"children":624},{"style":497},[625],{"type":56,"value":510},{"type":50,"tag":484,"props":627,"children":628},{"style":513},[629],{"type":56,"value":516},{"type":50,"tag":484,"props":631,"children":632},{"style":497},[633],{"type":56,"value":521},{"type":50,"tag":484,"props":635,"children":636},{"style":524},[637],{"type":56,"value":527},{"type":50,"tag":484,"props":639,"children":640},{"style":513},[641],{"type":56,"value":532},{"type":50,"tag":484,"props":643,"children":644},{"style":497},[645],{"type":56,"value":537},{"type":50,"tag":484,"props":647,"children":648},{"style":497},[649],{"type":56,"value":542},{"type":50,"tag":484,"props":651,"children":652},{"style":513},[653],{"type":56,"value":547},{"type":50,"tag":484,"props":655,"children":656},{"style":497},[657],{"type":56,"value":658},"test_perf and cutile",{"type":50,"tag":484,"props":660,"children":661},{"style":513},[662],{"type":56,"value":557},{"type":50,"tag":484,"props":664,"children":665},{"style":497},[666],{"type":56,"value":667}," --print-record",{"type":50,"tag":484,"props":669,"children":670},{"style":497},[671],{"type":56,"value":562},{"type":50,"tag":59,"props":673,"children":674},{},[675],{"type":56,"value":676},"latency sample:",{"type":50,"tag":473,"props":678,"children":682},{"className":679,"code":681,"language":56},[680],"language-text","Cutile: {'forward': {'mean': 3.7903138461538455, 'std': 0.0016941310873207053, 'rel_std': 0.044696327430505396, 'median': 3.789880999999999, 'min': 3.7883389999999992, 'max': 3.7941230000000004, 'nrep': 13, 'peak_mem_mb': 913}} ms\n",[683],{"type":50,"tag":119,"props":684,"children":685},{"__ignoreMap":478},[686],{"type":56,"value":681},{"type":50,"tag":354,"props":688,"children":690},{"id":689},"track-experiment-progress",[691],{"type":56,"value":692},"Track experiment progress",{"type":50,"tag":59,"props":694,"children":695},{},[696],{"type":56,"value":697},"Use @sandbox\u002Fperf_results.md to record each iteration's results. It should only contain a Markdown table with 5 columns:",{"type":50,"tag":139,"props":699,"children":700},{},[701,712,722,733,744],{"type":50,"tag":113,"props":702,"children":703},{},[704,710],{"type":50,"tag":119,"props":705,"children":707},{"className":706},[],[708],{"type":56,"value":709},"iteration",{"type":56,"value":711},": iteration number, starting from 0 (baseline)",{"type":50,"tag":113,"props":713,"children":714},{},[715,720],{"type":50,"tag":119,"props":716,"children":718},{"className":717},[],[719],{"type":56,"value":43},{"type":56,"value":721},": what was applied (e.g., \"baseline\", \"TMA replace gather\", \"persistent scheduling\")",{"type":50,"tag":113,"props":723,"children":724},{},[725,731],{"type":50,"tag":119,"props":726,"children":728},{"className":727},[],[729],{"type":56,"value":730},"latency_ms",{"type":56,"value":732},": kernel latency in milliseconds, six decimal points",{"type":50,"tag":113,"props":734,"children":735},{},[736,742],{"type":50,"tag":119,"props":737,"children":739},{"className":738},[],[740],{"type":56,"value":741},"correctness",{"type":56,"value":743},": PASS or FAIL",{"type":50,"tag":113,"props":745,"children":746},{},[747,753,755,761,763,769,771],{"type":50,"tag":119,"props":748,"children":750},{"className":749},[],[751],{"type":56,"value":752},"status",{"type":56,"value":754},": Whether this iteration was ",{"type":50,"tag":119,"props":756,"children":758},{"className":757},[],[759],{"type":56,"value":760},"keep",{"type":56,"value":762},", ",{"type":50,"tag":119,"props":764,"children":766},{"className":765},[],[767],{"type":56,"value":768},"revert",{"type":56,"value":770},", or ",{"type":50,"tag":119,"props":772,"children":774},{"className":773},[],[775],{"type":56,"value":776},"crash",{"type":50,"tag":59,"props":778,"children":779},{},[780],{"type":56,"value":781},"Example content:",{"type":50,"tag":473,"props":783,"children":787},{"className":784,"code":785,"language":786,"meta":478,"style":478},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","| iteration | optimization       | latency_ms | correctness | status |\n|----------:|:-------------------|-----------:|:------------|-------:|\n| 0         | baseline           |   0.820000 | PASS        | keep   |\n| 1         | TMA replace gather |   0.390000 | PASS        | keep   |\n","markdown",[788],{"type":50,"tag":119,"props":789,"children":790},{"__ignoreMap":478},[791,845,854,907],{"type":50,"tag":484,"props":792,"children":793},{"class":486,"line":487},[794,799,804,808,813,817,822,826,831,835,840],{"type":50,"tag":484,"props":795,"children":796},{"style":513},[797],{"type":56,"value":798},"|",{"type":50,"tag":484,"props":800,"children":801},{"style":524},[802],{"type":56,"value":803}," iteration ",{"type":50,"tag":484,"props":805,"children":806},{"style":513},[807],{"type":56,"value":798},{"type":50,"tag":484,"props":809,"children":810},{"style":524},[811],{"type":56,"value":812}," optimization       ",{"type":50,"tag":484,"props":814,"children":815},{"style":513},[816],{"type":56,"value":798},{"type":50,"tag":484,"props":818,"children":819},{"style":524},[820],{"type":56,"value":821}," latency_ms ",{"type":50,"tag":484,"props":823,"children":824},{"style":513},[825],{"type":56,"value":798},{"type":50,"tag":484,"props":827,"children":828},{"style":524},[829],{"type":56,"value":830}," correctness ",{"type":50,"tag":484,"props":832,"children":833},{"style":513},[834],{"type":56,"value":798},{"type":50,"tag":484,"props":836,"children":837},{"style":524},[838],{"type":56,"value":839}," status ",{"type":50,"tag":484,"props":841,"children":842},{"style":513},[843],{"type":56,"value":844},"|\n",{"type":50,"tag":484,"props":846,"children":848},{"class":486,"line":847},2,[849],{"type":50,"tag":484,"props":850,"children":851},{"style":513},[852],{"type":56,"value":853},"|----------:|:-------------------|-----------:|:------------|-------:|\n",{"type":50,"tag":484,"props":855,"children":857},{"class":486,"line":856},3,[858,862,867,871,876,880,885,889,894,898,903],{"type":50,"tag":484,"props":859,"children":860},{"style":513},[861],{"type":56,"value":798},{"type":50,"tag":484,"props":863,"children":864},{"style":524},[865],{"type":56,"value":866}," 0         ",{"type":50,"tag":484,"props":868,"children":869},{"style":513},[870],{"type":56,"value":798},{"type":50,"tag":484,"props":872,"children":873},{"style":524},[874],{"type":56,"value":875}," baseline           ",{"type":50,"tag":484,"props":877,"children":878},{"style":513},[879],{"type":56,"value":798},{"type":50,"tag":484,"props":881,"children":882},{"style":524},[883],{"type":56,"value":884},"   0.820000 ",{"type":50,"tag":484,"props":886,"children":887},{"style":513},[888],{"type":56,"value":798},{"type":50,"tag":484,"props":890,"children":891},{"style":524},[892],{"type":56,"value":893}," PASS        ",{"type":50,"tag":484,"props":895,"children":896},{"style":513},[897],{"type":56,"value":798},{"type":50,"tag":484,"props":899,"children":900},{"style":524},[901],{"type":56,"value":902}," keep   ",{"type":50,"tag":484,"props":904,"children":905},{"style":513},[906],{"type":56,"value":844},{"type":50,"tag":484,"props":908,"children":910},{"class":486,"line":909},4,[911,915,920,924,929,933,938,942,946,950,954],{"type":50,"tag":484,"props":912,"children":913},{"style":513},[914],{"type":56,"value":798},{"type":50,"tag":484,"props":916,"children":917},{"style":524},[918],{"type":56,"value":919}," 1         ",{"type":50,"tag":484,"props":921,"children":922},{"style":513},[923],{"type":56,"value":798},{"type":50,"tag":484,"props":925,"children":926},{"style":524},[927],{"type":56,"value":928}," TMA replace gather ",{"type":50,"tag":484,"props":930,"children":931},{"style":513},[932],{"type":56,"value":798},{"type":50,"tag":484,"props":934,"children":935},{"style":524},[936],{"type":56,"value":937},"   0.390000 ",{"type":50,"tag":484,"props":939,"children":940},{"style":513},[941],{"type":56,"value":798},{"type":50,"tag":484,"props":943,"children":944},{"style":524},[945],{"type":56,"value":893},{"type":50,"tag":484,"props":947,"children":948},{"style":513},[949],{"type":56,"value":798},{"type":50,"tag":484,"props":951,"children":952},{"style":524},[953],{"type":56,"value":902},{"type":50,"tag":484,"props":955,"children":956},{"style":513},[957],{"type":56,"value":844},{"type":50,"tag":59,"props":959,"children":960},{},[961],{"type":56,"value":962},"Create the tabular header if the file was empty. Append one line for each iteration.",{"type":50,"tag":354,"props":964,"children":966},{"id":965},"the-baseline",[967],{"type":56,"value":968},"The baseline",{"type":50,"tag":59,"props":970,"children":971},{},[972],{"type":56,"value":973},"The first iteration (iteration 0) will not change any code and simply run the correctness test and performance benchmark. Results will be listed at the first row as baseline.",{"type":50,"tag":65,"props":975,"children":977},{"id":976},"the-experiment-loop",[978],{"type":56,"value":95},{"type":50,"tag":59,"props":980,"children":981},{},[982],{"type":56,"value":983},"Core methodology is to apply ONE optimization per iteration from the playbook, verify correctness, benchmark, and decide whether to keep or revert. Try one optimization at a time, and have clean experiment records.",{"type":50,"tag":59,"props":985,"children":986},{},[987],{"type":56,"value":988},"LOOP:",{"type":50,"tag":109,"props":990,"children":991},{},[992,997,1009,1045,1050,1055,1060,1191,1196],{"type":50,"tag":113,"props":993,"children":994},{},[995],{"type":56,"value":996},"Check git status: Current git branch\u002Fcommit we're on",{"type":50,"tag":113,"props":998,"children":999},{},[1000,1002,1007],{"type":56,"value":1001},"Select and apply ONE optimization from ",{"type":50,"tag":119,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":56,"value":275},{"type":56,"value":1008},":",{"type":50,"tag":113,"props":1010,"children":1011},{},[1012,1014,1019,1021,1027,1029,1035,1037,1043],{"type":56,"value":1013},"Verify correctness — if fails, ",{"type":50,"tag":77,"props":1015,"children":1016},{},[1017],{"type":56,"value":1018},"revert immediately",{"type":56,"value":1020},". Common causes: ",{"type":50,"tag":119,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":56,"value":1026},"flush_to_zero",{"type":56,"value":1028},"\u002F",{"type":50,"tag":119,"props":1030,"children":1032},{"className":1031},[],[1033],{"type":56,"value":1034},"rounding_mode=APPROX",{"type":56,"value":1036}," changed results, tile size OOB, ",{"type":50,"tag":119,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":56,"value":1042},"allow_tma=False",{"type":56,"value":1044}," semantics, persistent loop bound error",{"type":50,"tag":113,"props":1046,"children":1047},{},[1048],{"type":56,"value":1049},"Re-benchmark and compare against current baseline",{"type":50,"tag":113,"props":1051,"children":1052},{},[1053],{"type":56,"value":1054},"Git commit",{"type":50,"tag":113,"props":1056,"children":1057},{},[1058],{"type":56,"value":1059},"Record results to @sandbox\u002Fperf_results.md",{"type":50,"tag":113,"props":1061,"children":1062},{},[1063,1065],{"type":56,"value":1064},"Decision rules:",{"type":50,"tag":1066,"props":1067,"children":1068},"table",{},[1069,1088],{"type":50,"tag":1070,"props":1071,"children":1072},"thead",{},[1073],{"type":50,"tag":1074,"props":1075,"children":1076},"tr",{},[1077,1083],{"type":50,"tag":1078,"props":1079,"children":1080},"th",{},[1081],{"type":56,"value":1082},"Outcome",{"type":50,"tag":1078,"props":1084,"children":1085},{},[1086],{"type":56,"value":1087},"Action",{"type":50,"tag":1089,"props":1090,"children":1091},"tbody",{},[1092,1113,1126,1139,1152,1165],{"type":50,"tag":1074,"props":1093,"children":1094},{},[1095,1108],{"type":50,"tag":1096,"props":1097,"children":1098},"td",{},[1099,1101,1106],{"type":56,"value":1100},"Improvement(",{"type":50,"tag":119,"props":1102,"children":1104},{"className":1103},[],[1105],{"type":56,"value":238},{"type":56,"value":1107},") >= 5%",{"type":50,"tag":1096,"props":1109,"children":1110},{},[1111],{"type":56,"value":1112},"Accept as new baseline, continue",{"type":50,"tag":1074,"props":1114,"children":1115},{},[1116,1121],{"type":50,"tag":1096,"props":1117,"children":1118},{},[1119],{"type":56,"value":1120},"Improvement 2-5%",{"type":50,"tag":1096,"props":1122,"children":1123},{},[1124],{"type":56,"value":1125},"Accept, lower priority for next iteration",{"type":50,"tag":1074,"props":1127,"children":1128},{},[1129,1134],{"type":50,"tag":1096,"props":1130,"children":1131},{},[1132],{"type":56,"value":1133},"Improvement \u003C 2%",{"type":50,"tag":1096,"props":1135,"children":1136},{},[1137],{"type":56,"value":1138},"Accept but stop unless user wants more",{"type":50,"tag":1074,"props":1140,"children":1141},{},[1142,1147],{"type":50,"tag":1096,"props":1143,"children":1144},{},[1145],{"type":56,"value":1146},"Regression on any config",{"type":50,"tag":1096,"props":1148,"children":1149},{},[1150],{"type":56,"value":1151},"Revert immediately, try next optimization",{"type":50,"tag":1074,"props":1153,"children":1154},{},[1155,1160],{"type":50,"tag":1096,"props":1156,"children":1157},{},[1158],{"type":56,"value":1159},"No improvement after 2 consecutive iterations",{"type":50,"tag":1096,"props":1161,"children":1162},{},[1163],{"type":56,"value":1164},"Stop",{"type":50,"tag":1074,"props":1166,"children":1167},{},[1168,1186],{"type":50,"tag":1096,"props":1169,"children":1170},{},[1171,1173,1179,1180],{"type":56,"value":1172},"Root cause is ",{"type":50,"tag":119,"props":1174,"children":1176},{"className":1175},[],[1177],{"type":56,"value":1178},"scheduling",{"type":56,"value":154},{"type":50,"tag":119,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":56,"value":1185},"unknown",{"type":50,"tag":1096,"props":1187,"children":1188},{},[1189],{"type":56,"value":1190},"Escalate to user",{"type":50,"tag":113,"props":1192,"children":1193},{},[1194],{"type":56,"value":1195},"If keeping, advance the baseline numbers and continue loop",{"type":50,"tag":113,"props":1197,"children":1198},{},[1199],{"type":56,"value":1200},"If reverting, git reset back to where you started and try the next optimization in priority order\nUNTIL: all attempts are finished, or more than 25 iterations have occurred, or the user interrupts",{"type":50,"tag":59,"props":1202,"children":1203},{},[1204,1210],{"type":50,"tag":1205,"props":1206,"children":1207},"em",{},[1208],{"type":56,"value":1209},"Be autonomous",{"type":56,"value":1211},": Ask user clarifications at setup phase. Once stepped into the experiment loop, do not pause to ask user feedback: Use your best judgement for decision making, consult the optimization playbook and perf knobs catalog promptly, and think harder if stuck.",{"type":50,"tag":1213,"props":1214,"children":1215},"style",{},[1216],{"type":56,"value":1217},"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":1219,"total":1375},[1220,1238,1255,1266,1278,1290,1303,1317,1330,1341,1355,1364],{"slug":1221,"name":1221,"fn":1222,"description":1223,"org":1224,"tags":1225,"stars":1235,"repoUrl":1236,"updatedAt":1237},"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},[1226,1229,1232],{"name":1227,"slug":1228,"type":15},"Documentation","documentation",{"name":1230,"slug":1231,"type":15},"MCP","mcp",{"name":1233,"slug":1234,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1239,"name":1239,"fn":1240,"description":1241,"org":1242,"tags":1243,"stars":1252,"repoUrl":1253,"updatedAt":1254},"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},[1244,1247,1250],{"name":1245,"slug":1246,"type":15},"Containers","containers",{"name":1248,"slug":1249,"type":15},"Deployment","deployment",{"name":1251,"slug":494,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1256,"name":1256,"fn":1257,"description":1258,"org":1259,"tags":1260,"stars":1252,"repoUrl":1253,"updatedAt":1265},"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},[1261,1264],{"name":1262,"slug":1263,"type":15},"CI\u002FCD","ci-cd",{"name":1248,"slug":1249,"type":15},"2026-07-14T05:25:59.97109",{"slug":1267,"name":1267,"fn":1268,"description":1269,"org":1270,"tags":1271,"stars":1252,"repoUrl":1253,"updatedAt":1277},"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},[1272,1273,1274],{"name":1262,"slug":1263,"type":15},{"name":1248,"slug":1249,"type":15},{"name":1275,"slug":1276,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1279,"name":1279,"fn":1280,"description":1281,"org":1282,"tags":1283,"stars":1252,"repoUrl":1253,"updatedAt":1289},"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},[1284,1285,1286],{"name":21,"slug":22,"type":15},{"name":1275,"slug":1276,"type":15},{"name":1287,"slug":1288,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1291,"name":1291,"fn":1292,"description":1293,"org":1294,"tags":1295,"stars":1252,"repoUrl":1253,"updatedAt":1302},"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},[1296,1299],{"name":1297,"slug":1298,"type":15},"Best Practices","best-practices",{"name":1300,"slug":1301,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1304,"name":1304,"fn":1305,"description":1306,"org":1307,"tags":1308,"stars":1252,"repoUrl":1253,"updatedAt":1316},"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},[1309,1312,1315],{"name":1310,"slug":1311,"type":15},"Machine Learning","machine-learning",{"name":1313,"slug":1314,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1318,"name":1318,"fn":1319,"description":1320,"org":1321,"tags":1322,"stars":1252,"repoUrl":1253,"updatedAt":1329},"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},[1323,1326],{"name":1324,"slug":1325,"type":15},"QA","qa",{"name":1327,"slug":1328,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1331,"name":1331,"fn":1332,"description":1333,"org":1334,"tags":1335,"stars":1252,"repoUrl":1253,"updatedAt":1340},"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},[1336,1337],{"name":1248,"slug":1249,"type":15},{"name":1338,"slug":1339,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1342,"name":1342,"fn":1343,"description":1344,"org":1345,"tags":1346,"stars":1252,"repoUrl":1253,"updatedAt":1354},"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},[1347,1350,1351],{"name":1348,"slug":1349,"type":15},"Code Review","code-review",{"name":1275,"slug":1276,"type":15},{"name":1352,"slug":1353,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1356,"name":1356,"fn":1357,"description":1358,"org":1359,"tags":1360,"stars":1252,"repoUrl":1253,"updatedAt":1363},"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},[1361,1362],{"name":1324,"slug":1325,"type":15},{"name":1327,"slug":1328,"type":15},"2026-07-14T05:25:54.928983",{"slug":1365,"name":1365,"fn":1366,"description":1367,"org":1368,"tags":1369,"stars":1252,"repoUrl":1253,"updatedAt":1374},"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},[1370,1373],{"name":1371,"slug":1372,"type":15},"Automation","automation",{"name":1262,"slug":1263,"type":15},"2026-07-30T05:29:03.275638",496,{"items":1377,"total":1471},[1378,1393,1403,1417,1427,1442,1457],{"slug":1379,"name":1379,"fn":1380,"description":1381,"org":1382,"tags":1383,"stars":23,"repoUrl":24,"updatedAt":1392},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1384,1387,1390,1391],{"name":1385,"slug":1386,"type":15},"Data Analysis","data-analysis",{"name":1388,"slug":1389,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-14T05:28:43.176466",{"slug":1394,"name":1394,"fn":1395,"description":1396,"org":1397,"tags":1398,"stars":23,"repoUrl":24,"updatedAt":1402},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1399,1400,1401],{"name":1248,"slug":1249,"type":15},{"name":1338,"slug":1339,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1404,"name":1404,"fn":1405,"description":1406,"org":1407,"tags":1408,"stars":23,"repoUrl":24,"updatedAt":1416},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1409,1412,1413],{"name":1410,"slug":1411,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1414,"slug":1415,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1418,"name":1418,"fn":1419,"description":1420,"org":1421,"tags":1422,"stars":23,"repoUrl":24,"updatedAt":1426},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1423,1424,1425],{"name":1385,"slug":1386,"type":15},{"name":9,"slug":8,"type":15},{"name":1327,"slug":1328,"type":15},"2026-07-17T05:29:03.913266",{"slug":1428,"name":1428,"fn":1429,"description":1430,"org":1431,"tags":1432,"stars":23,"repoUrl":24,"updatedAt":1441},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1433,1434,1437,1438],{"name":1371,"slug":1372,"type":15},{"name":1435,"slug":1436,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1439,"slug":1440,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1443,"name":1443,"fn":1444,"description":1445,"org":1446,"tags":1447,"stars":23,"repoUrl":24,"updatedAt":1456},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1448,1449,1452,1453],{"name":1248,"slug":1249,"type":15},{"name":1450,"slug":1451,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1454,"slug":1455,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1458,"name":1458,"fn":1459,"description":1460,"org":1461,"tags":1462,"stars":23,"repoUrl":24,"updatedAt":1470},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1463,1464,1467],{"name":9,"slug":8,"type":15},{"name":1465,"slug":1466,"type":15},"Quantum Computing","quantum-computing",{"name":1468,"slug":1469,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305]