Not in the top 1,000 by GitHub stars
mit-han-lab/ncu-report-skill
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
c7980a43cb88 → c7980a43cb88
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → c7980a43cb88
No earlier version was observed for comparison.
Heat
4.8- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
ncu-report-skill
When your agent uses it
Use before deciding how to optimize a CUDA kernel (hand-written CUDA, Triton, CUTLASS/CuTe), when a kernel is slower than expected, and whenever you are about to run Nsight Compute (ncu) or read its output — instead of guessing at the bottleneck, writing your own profiling script, or reading ncu's console tables by eye. One ncu collection, then helpers that extract key metrics, NCU's rule results, per-line stalls (inlined CUTLASS/CuTe/Triton code included) and PM timelines, and a playbook from signals to fixes. Also when a user asks to profile a kernel, read an ncu report or write an optimization plan ("profile 一下", "为什么慢", "ncu 报告"). Written for ncu 2026.3 on Blackwell (B200 / B300) and other NVIDIA GPUs.
What it loads into context
Frontmatter
194 tokensAlways available to the agent
SKILL.md
2,841 tokensWhen the skill is activated
Reference documents
48,322 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Golden rule
- Quickstart (what to do when someone says "profile this kernel")
- Where the GPU is
- File index
- Critical lessons (don't skip)
- Related skills
Scripts executed separately
helpers/analyze_reports.pyhelpers/extract_stall_hotspots.pyhelpers/list_flashinfer_workloads.pyhelpers/ncu_utils.pyhelpers/plot_timeline.py
Files
.gitignoreasset391 bytesLICENSEasset1,063 bytesREADME.mddoc7,283 bytesSKILL.mdcore11,700 bytesSKILL.mdcore11,700 bytesSKILL.mdcore11,700 bytesSKILL.mdcore11,700 bytesSKILL.mdcore11,700 bytesSKILL.mdcore11,700 bytesSKILL.mdcore11,700 bytesblackwell-cuda-programming.mddoc45,341 byteshelpers/README.mddoc3,284 byteshelpers/analyze_reports.pyruns6,037 byteshelpers/extract_stall_hotspots.pyruns11,279 byteshelpers/harness_template.cuasset7,801 byteshelpers/list_flashinfer_workloads.pyruns11,386 byteshelpers/ncu_utils.pyruns23,813 byteshelpers/plot_timeline.pyruns8,802 byteshelpers/safetensors_loader.hasset6,801 bytesreference/00-directory-layout.mddoc7,930 bytesreference/01-workflow.mddoc10,556 bytesreference/02-harness-guide.mddoc14,370 bytesreference/03-collection.mddoc12,423 bytesreference/04-python-api.mddoc12,264 bytesreference/05-analysis-dimensions.mddoc17,785 bytesreference/06-diagnosis-playbook.mddoc17,769 bytesreference/07-report-template.mddoc6,583 bytesreference/08-metric-names.mddoc13,409 bytesreference/09-common-issues.mddoc12,844 bytes
Read SKILL.md
# Skill: CUDA Kernel Profiling (Nsight Compute)
**When to use:** before choosing what to optimize in a GPU kernel (CUDA C++, Triton, CUTLASS/CuTe), when a kernel is slower than its budget or baseline, after a change whose effect you do not understand, and every time you are about to run `ncu` or read a report — so the bottleneck comes from measurements, not guesses. Also when someone asks to profile a kernel, find its bottlenecks, read an ncu report or write an optimization plan ("profile X", "为什么这个 kernel 慢", "ncu report 说...", "下一步怎么优化", "帮我看一下这份 ncu 报告").
**Written for:** Nsight Compute 2026.3.1, the newest release (it also reads reports of older versions), on Blackwell — B200 (sm_100) and B300 (sm_103), 148 SMs each. A CUDA toolkit bundles the ncu of its release (CUDA 13.2: 2026.1.1); newer ones are separate installs (NVIDIA's CUDA package repositories carry `nsight-compute-<version>`, and the toolkit's `ncu` launcher runs the newest installed). Most advice is generic; GPU- or version-specific notes say so. ncu's flags, sets and metric names change between releases: `ncu --version`, `ncu --help`, `ncu --list-sets` and `ncu --list-sections` are the authority when something here does not match what you have.
---
## Golden rule
**Profile → Diagnose → Plan, in that order. Never guess.**
Most under-performing CUDA kernels are under-performing for exactly one reason that ncu can tell you in 10 seconds. Don't invent hypotheses before you have the report. Don't start coding a fix before you've matched the observed pattern to a known diagnosis. Don't write a wall of suggestions — rank them by evidence and expected impact.
View the complete source on GitHubSkills included
- ncu-report-skill
Repository facts
- License
- MIT
- Created
- Apr 13, 2026
- Last pushed
- Oct 14, 2026
- Forks
- 39
- Open issues
- 1
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 6 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 9 dangerous shell commandsin 4 files: reference/09-common-issues.md:13 reference/03-collection.md:235 SKILL.md:51 and 1 more
- 13 network referencesin 2 files: README.md:2 reference/08-metric-names.md:142
- No hidden or obfuscated text
- No instruction overrides
- 5 executable scriptsin 5 files: helpers/analyze_reports.py:1 helpers/extract_stall_hotspots.py:1 helpers/list_flashinfer_workloads.py:1 and 2 more
- 1 reference to secretsin 1 file: helpers/list_flashinfer_workloads.py:46
- No requests to vote in Hot
Show all 28 signals by file
README.md
- Network accessline 2
> [!IMPORTANT] > This skill is maintained as a standalone submodule of > [Kernel Design Agents (KDA)](https://github.com/mit-han-lab/kernel-design-agents) - Network accessline 3
> This skill is maintained as a standalone submodule of > [Kernel Design Agents (KDA)](https://github.com/mit-han-lab/kernel-design-agents) > for easy installation. - Network accessline 4
> [Kernel Design Agents (KDA)](https://github.com/mit-han-lab/kernel-design-agents) - Network accessline 6
> > For bug reports, feature requests, and discussions, please use the main KDA repository: > https://github.com/mit-han-lab/kernel-design-agents - Network accessline 8
> https://github.com/mit-han-lab/kernel-design-agents - Network accessline 62
# Clone somewhere stable git clone https://github.com/mit-han-lab/ncu-report-skill.git ~/workspace/ncu-report-skill - Network accessline 63
git clone https://github.com/mit-han-lab/ncu-report-skill.git ~/workspace/ncu-report-skill - Network accessline 82
git clone https://github.com/mit-han-lab/ncu-report-skill.git /tmp/ncu - Network accessline 90
cd /path/to/other-repo git submodule add https://github.com/mit-han-lab/ncu-report-skill.git .claude/skills/ncu-report-skill - Network accessline 91
git submodule add https://github.com/mit-han-lab/ncu-report-skill.git .claude/skills/ncu-report-skill
SKILL.md
- Dangerous shell operationline 51
ncu locks the GPU clock for every profiled kernel by default, which keeps reports comparable: at boost in ncu 2026.1–2026.3 (`--clock-control boost`; older versions default to `base`, which on a B300 runs kernels ~1.7x slower). `ncu --help`
helpers/analyze_reports.py
- Executable scriptline 1
#!/usr/bin/env python3
helpers/extract_stall_hotspots.py
- Executable scriptline 1
#!/usr/bin/env python3
helpers/list_flashinfer_workloads.py
helpers/ncu_utils.py
- Executable scriptline 1
Executable file
helpers/plot_timeline.py
- Executable scriptline 1
#!/usr/bin/env python3
reference/01-workflow.md
- Dangerous shell operationline 56
# 5. Permissions. ncu usually works without sudo (RestrictProfilingToAdminUsers is 0
reference/03-collection.md
reference/08-metric-names.md
- Network accessline 142
l1tex__t_requests_pipe_lsu_mem_global_op_ld.sum # LD request count l1tex__t_requests_pipe_lsu_mem_global_op_st.sum # ST request count # sectors/request = sectors.sum / requests.sum (ideal: 4 / 8 / 16 fo - Network accessline 143
l1tex__t_requests_pipe_lsu_mem_global_op_st.sum # ST request count # sectors/request = sectors.sum / requests.sum (ideal: 4 / 8 / 16 for 4- / 8- / 16-byte loads per thread) smsp__sass_average_data_bytes_per_sector_mem_glo - Network accessline 144
# sectors/request = sectors.sum / requests.sum (ideal: 4 / 8 / 16 for 4- / 8- / 16-byte loads per thread)
reference/09-common-issues.md
- Dangerous shell operationline 13
**A) Use sudo (simplest on dedicated servers):** - Dangerous shell operationline 15
sudo ncu [...] - Dangerous shell operationline 20
sudo sh -c 'echo "options nvidia NVreg_RestrictProfilingToAdminUsers=0" > /etc/modprobe.d/ncu.conf' - Dangerous shell operationline 21
sudo update-initramfs -u - Dangerous shell operationline 194
sudo nvidia-smi -pm 1
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 28 facts
- Network access in prose of documentationREADME.md:2Low confidence
- Network access in prose of documentationREADME.md:3Low confidence
- Network access in prose of documentationREADME.md:4Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in prose of documentationREADME.md:8Low confidence
- Network access in code of documentationREADME.md:62Low confidence
- Network access in code of documentationREADME.md:63Low confidence
- Network access in code of documentationREADME.md:82Low confidence
- Network access in code of documentationREADME.md:90Low confidence
- Network access in code of documentationREADME.md:91Low confidence
- Dangerous shell operation in prose of the SKILL.mdSKILL.md:51Low confidence
- Executable script in code of a file that runshelpers/analyze_reports.py:1High confidence
- Executable script in code of a file that runshelpers/extract_stall_hotspots.py:1High confidence
- Executable script in code of a file that runshelpers/list_flashinfer_workloads.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuehelpers/list_flashinfer_workloads.py:46Low confidence
- Executable script in prose of a file that runshelpers/ncu_utils.py:1Low confidence
- Executable script in code of a file that runshelpers/plot_timeline.py:1High confidence
- Dangerous shell operation in code of documentationreference/01-workflow.md:56Low confidence
- Dangerous shell operation in code of documentationreference/03-collection.md:235Low confidence
- Dangerous shell operation in code of documentationreference/03-collection.md:237Low confidence
- Network access in code of documentationreference/08-metric-names.md:142Low confidence
- Network access in code of documentationreference/08-metric-names.md:143Low confidence
- Network access in code of documentationreference/08-metric-names.md:144Low confidence
- Dangerous shell operation in prose of documentationreference/09-common-issues.md:13Low confidence
- Dangerous shell operation in code of documentationreference/09-common-issues.md:15Low confidence
- Dangerous shell operation in code of documentationreference/09-common-issues.md:20Low confidence
- Dangerous shell operation in code of documentationreference/09-common-issues.md:21Low confidence
- Dangerous shell operation in code of documentationreference/09-common-issues.md:194Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.