Graphsignal
graphsignal/graphsignal
Profile AI inference workloads (vLLM, SGLang, TensorRT-LLM, PyTorch, any GPU application) with the Graphsignal profiler and read the results from its local /signals JSON endpoint.
A skill your agent uses to lock/cap Jetson CPU/GPU/EMC clocks, toggle EMC/CPU DVFS, or change cpufreq governors by editing BPMP DTB and nvpower.sh pre-flash.
$ npx skills add NVIDIA/skills --skill jetson-customize-clocks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install NVIDIA/skills jetson-customize-clocks --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/jetson-customize-clocks .claude/skills/jetson-customize-clocks && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "jetson-customize-clocks" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-customize-clocks into .claude/skills/jetson-customize-clocks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-customize-clocks", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/NVIDIA/skills/tree/main/skills/jetson-customize-clocksType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add NVIDIA/skills --skill jetson-customize-clocks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install NVIDIA/skills jetson-customize-clocks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/jetson-customize-clocks .agents/skills/jetson-customize-clocks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "jetson-customize-clocks" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-customize-clocks into .agents/skills/jetson-customize-clocks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-customize-clocks", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NVIDIA/skills --skill jetson-customize-clocks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install NVIDIA/skills jetson-customize-clocks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/jetson-customize-clocks .cursor/skills/jetson-customize-clocks && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "jetson-customize-clocks" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-customize-clocks into .cursor/skills/jetson-customize-clocks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-customize-clocks", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/NVIDIA/skills.git --path skills/jetson-customize-clocks--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add NVIDIA/skills --skill jetson-customize-clocks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install NVIDIA/skills jetson-customize-clocks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/jetson-customize-clocks .gemini/skills/jetson-customize-clocks && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "jetson-customize-clocks" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-customize-clocks into .gemini/skills/jetson-customize-clocks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-customize-clocks", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install NVIDIA/skills jetson-customize-clocksInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add NVIDIA/skills --skill jetson-customize-clocks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/jetson-customize-clocks .github/skills/jetson-customize-clocks && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "jetson-customize-clocks" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-customize-clocks into .github/skills/jetson-customize-clocks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-customize-clocks", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NVIDIA/skills --skill jetson-customize-clocks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install NVIDIA/skills jetson-customize-clocks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/jetson-customize-clocks .opencode/skills/jetson-customize-clocks && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "jetson-customize-clocks" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-customize-clocks into .opencode/skills/jetson-customize-clocks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-customize-clocks", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
jetson-customize-clocksA skill your agent uses to lock/cap Jetson CPU/GPU/EMC clocks, toggle EMC/CPU DVFS, or change cpufreq governors by editing BPMP DTB and nvpower.sh pre-flash.
Jetson Customize Clocks is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Use to lock/cap Jetson CPU/GPU/EMC clocks, toggle EMC/CPU DVFS, or change cpufreq governors by editing BPMP DTB and nvpower.sh pre-flash. Do NOT use for live tuning or nvpmodel edits.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `BENCHMARK.md`, `evals/evals.json` and `references/bpmp-dtb-clock-edits.md`).
It sits in AI & LLM Engineering, covering GPU and accelerator computing. It works with NVIDIA AI Platform and Linux. The repository describes itself as: Agent Skills for NVIDIA products — install into Claude Code, Codex, and other coding agents to run Physical AI, robotics, simulation, CUDA, and RAG workflows end to end. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 67a13c0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
aptFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Jetson Customize Clocks loads about 4.8k tokens when it runs, and up to ~7.5k if it reads all its reference files. Until then it costs about 52 tokens; SKILL.md has 2,140 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
byte-identical); uses `sudo cp -p` for `rootfs/*` destinations.`sudo systemctl restart nvpower.service` (or reboot).Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from NVIDIA/skills at commit 67a13c0, republished under its Apache-2.0 licence (© NVIDIA). 2,140 words, ~4,758 tokens.
.claude/skills/jetson-customize-clocks/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.Customize CPU, GPU, and EMC clock behavior on a Jetson target by editing files under Linux_for_Tegra/ before flashing the image. Two layers are in scope:
Linux_for_Tegra/bootloader/<BPFDTB_FILE> — per-clock max-rate-custom ceilings, plus the EMC DVFS gate (bwmgr + cactmon on all SoCs; osp-controller on T26x only).Linux_for_Tegra/rootfs/etc/systemd/nvpower.sh — cpufreq / devfreq governors and (optionally) per-device min / max / static rates written to sysfs at boot.Common triggers: "lock CPU/GPU/EMC frequency", "pin GPU to Fmax", "pin EMC to MAXN", "disable/enable EMC DVFS", "disable/enable CPU DVFS", "set CPU/GPU max rate", "change cpufreq governor".
Out of scope: runtime clock tuning on a live target (no flash step), nvpmodel power-mode edits (use the sibling skill /jetson-customize-nvpmodel), and silicon-ceiling overrides (max-rate-maxn is read-only).
Resolve the active profile per
../../context/target-platform-contract.md.
Refuse and route in these cases:
| Condition | Refuse with |
|---|---|
No active profile, or active: NA | Route to /jetson-set-target or /jetson-init-target. |
Profile lacks bsp_image: block | Route to /jetson-init-image. |
<bsp_image.root_path>/Linux_for_Tegra/ missing | Route to /jetson-init-image. |
<source.root_path>/Linux_for_Tegra/ missing or not a git repo | Route to /jetson-init-source. |
Resolve paths:
<bsp_image.root_path> from bsp_image.root_path: if present, else <workspace>/Image.<source.root_path> from source.root_path: if present, else <workspace>/Source.<bsp_image.root_path> is read-only for this skill; every write
(Operation 1's BPMP DTB and Operation 2's nvpower.sh) lands under
<source.root_path> (the overlay tracker). This is the workflow
invariant in
../../context/bsp-customization-workflow.md#workflow-invariants —
hand-editing upstream silently destroys the diff trail and makes
/jetson-promote-image a noop.
nvpower.sh), or the MAXN recipe for both./jetson-promote-image → /jetson-flash-image. The new BPMP DTB and nvpower.sh take effect on the next boot.| Operation | Where the edit lives | Procedure section |
|---|---|---|
| Lock a CPU / GPU clock to a specific rate | BPMP DTB max-rate-custom on the clock node + nvpower.sh governor performance | "Content edit: max-rate-custom" + "Pick the edit" |
| Lock EMC at its init rate (disable EMC DVFS) | BPMP DTB: bwmgr.enabled = 0, cactmon.enabled = 0, plus /delete-node/ osp-controller on T26x only | "Content edit: EMC DVFS disable / enable" |
| Re-enable EMC DVFS | BPMP DTB: bwmgr.enabled = 1, cactmon.enabled = 1, restore osp-controller on T26x | "Content edit: EMC DVFS disable / enable" |
| Pin everything to MAXN for stress runs | Combine the above + nvpmodel MAXN as boot default | see Recipe |
| Lower a clock's hard ceiling without locking | BPMP DTB max-rate-custom only | "Content edit: max-rate-custom" |
| Bound a device's rate without pinning | nvpower.sh min/max via sysfs | "Pick the edit" |
Follow the BPMP-DTB customization protocol in
../../references/bsp-customization-bpmp-dtb.md.
The protocol owns the mechanics — pristine import on first touch,
dtc decompile, recompile, sanity-check, commit. This skill
supplies only the clock-specific content (which nodes and
properties to edit during the protocol's "Edit the DTS" step).
The edited .dtb lands in the <source.root_path>/Linux_for_Tegra/
overlay tracker. /jetson-promote-image's channel A walks the
tracker and copies the file into bsp_image. Do not edit
<bsp_image.root_path>/Linux_for_Tegra/bootloader/<bpmp-dtb>
directly — that's the promote output, not an input.
Per the protocol's "Resolving the active BPMP DTB" section, read
BPFDTB_FILE from the active flash conf. For the common Thor /
single-SKU conf shapes this is the static BPFDTB_FILE=... line
in the per-board .conf and the value is authoritative as-is.
For SKU-multiplexed conf shapes (Orin AGX devkit conf chain
that selects a different BPMP DTB per board_sku/board_FAB
via update_flash_args_common — see
../../context/bsp-customization-software-layers.md#per-board-conf-dispatch--update_flash_args_common),
walk the dispatch chain with board_sku=<module.sku> and
board_FAB=<module.revision or empty> from the active profile,
and read BPFDTB_FILE from the dispatch output — not from
the static line of the per-board .conf. Static and dispatched
values match for non-multiplexed confs; the dispatch is
mandatory only when the conf chain conditionally overrides
BPFDTB_FILE.
Inspect both layers of the runtime ceiling — see references/clock-control-model.md#effective-runtime-ceiling — before deciding on a max-rate-custom value.
Inspection cookbook (BPMP-side decompile + grep; nvpmodel-side awk over the boot default mode) is in references/bpmp-dtb-clock-edits.md#inspection-cookbook.
For the nvpmodel layer see /jetson-customize-nvpmodel.
This step does not mutate state — it's a precondition for sizing
the edit in the "Content edit: max-rate-custom on a named clock node" step.
max-rate-custom on a named clock nodeDuring the "Edit the DTS" step of the protocol, modify the property
inside the named clock node — never lateinit. max-rate-custom
must be strictly below the clock's hard cap (max-rate-maxn if
defined, otherwise the live max_rate from a running target of
the same chip / SKU).
DTS edit form, semantics, and the nvpmodel ↔ BPMP clock-node
mapping live in references/bpmp-dtb-clock-edits.md.
Then hand control back to the protocol — its "Recompile", "Sanity-check
the recompiled blob", "Stage in the overlay tracker", and "Cleanup"
steps cover the rest.
Commit-message convention per the protocol:
<BPMP_BASENAME>: jetson-customize-clocks — <clock-node> max-rate-custom = <value>.
Default behavior (EMC DVFS on) requires no edit. Disabling EMC
DVFS is a multi-node edit applied inside the same "Edit the DTS" step of
the protocol, not a bwmgr toggle:
| # | Edit | Scope |
|---|---|---|
| 1 | bwmgr.enabled = <0x00> | All SoCs, mandatory |
| 2 | cactmon.enabled = <0x00> | All SoCs, mandatory |
| 3 | /delete-node/ osp-controller | T26x (Thor) mandatory — T23x (Orin) has no such node, skip |
Detection: dtc -I dtb -O dts <bpmp-dtb> | grep -c osp-controller
— zero hits ⇒ T23x path. Full DTS snippets, the surviving-paths
failure modes, and the re-enable procedure are in
references/emc-dvfs-disable.md.
Apply the protocol's "Recompile" through "Cleanup" steps once the multi-node edit is in
place. Commit-message convention:
<BPMP_BASENAME>: jetson-customize-clocks — EMC DVFS disable (bwmgr + cactmon[+ osp-controller]).
Disabling raises idle power; intended for stress / performance tests, not production rootfs.
Per the protocol's "Re-runnability" section, re-running this
skill with the same target value produces a no-op commit. Re-
running with a different value rewrites the same property — git log -- $BPMP_REL shows the per-run history. To return a clock
to its max-rate-maxn ceiling, edit the DTS to remove the
max-rate-custom line and recompile.
Edits nvpower.sh, which runs at boot via nvpower.service to set
cpufreq / devfreq governors and rates.
The script this Operation edits has the relative path:
Linux_for_Tegra/rootfs/etc/systemd/nvpower.shIt lives in two roots; the Operation walks both:
| Role | Location | Skill writes? |
|---|---|---|
| Detection + pristine source | <bsp_image.root_path>/Linux_for_Tegra/rootfs/etc/systemd/ | no — read-only |
| Overlay edit target + git commit | <source.root_path>/Linux_for_Tegra/rootfs/etc/systemd/ | yes |
Subsequent sub-steps refer to the per-script file to mean the overlay
copy under <source.root_path>. The <bsp_image.root_path> copy is read
once during the pristine-import step below, then never touched again.
Follow the canonical
Off-skill edits recipe
in the workflow doc — pristine import + customization commit pair, both
gated by the preview gate. nvpower.sh is a single file with no
propagation set; one pristine commit + one customization commit covers
the entire change.
Concrete substitutions for this skill:
<rel>/<file> is rootfs/etc/systemd/nvpower.sh.import pristine: rootfs/etc/systemd/nvpower.sh,
body Source: <bsp_image.root_path>/Linux_for_Tegra/ (BSP <bsp_image.version>).jetson-customize-clocks: nvpower.sh <summary>,
body lines like set_cpufreq_governor: desired_cpufreq_gov "schedutil" -> "performance".Function locations (set_cpufreq_governor, set_devfreq_governor), common-edit recipes (pin to Fmax, static rate, min/max bounds), and the nvidia-l4t-init package-upgrade caveat live in references/nvpower-sh-edits.md.
The customization commit in the overlay tracker does not reach the device on its own. The Deploy chain:
/jetson-promote-image — copies every tracked file in the overlay
into <bsp_image.root_path>/Linux_for_Tegra/. Diff-aware (skip
byte-identical); uses sudo cp -p for rootfs/* destinations./jetson-flash-image — flashes the updated bsp_image to the
device. nvpower.service runs the new script on the next boot.<source.root_path>/Linux_for_Tegra/rootfs/etc/systemd/nvpower.sh
directly to the running target's /etc/systemd/nvpower.sh, then
sudo systemctl restart nvpower.service (or reboot).Editing <source.root_path>/... without committing — or editing
<bsp_image.root_path>/... directly — does nothing for /jetson-promote-image
and is silently lost on the next /jetson-init-image re-extract.
Combines Operations 1 + 2. Operation 1's BPMP edits all flow
through one round of the protocol (a single decompile / multi-node
edit / recompile / commit cycle — don't round-trip the protocol
twice for the same .dtb):
max-rate-custom on a named clock node" step content): leave max-rate-custom unset on every CPU / GPU / EMC clock; remove existing max-rate-custom lines that lower the ceiling.bwmgr.enabled = 0, cactmon.enabled = 0, plus /delete-node/ osp-controller on T26x (skip on T23x).desired_cpufreq_gov="performance" and desired_devfreq_gov="performance" unconditionally; remove the GPU/nvjpg skip in set_devfreq_governor. Applies via Operation 2's overlay edit recipe (the "Overlay edit recipe (apply before editing nvpower.sh)" step) — a separate overlay-tracker pristine + customization commit pair on the rootfs script, distinct from the BPMP-DTB protocol's commit./jetson-customize-nvpmodel — the per-clock nvpmodel cap clamps below max-rate-maxn regardless of BPMP DTB content.Deploy /jetson-promote-image → /jetson-flash-image picks up the new BPMP DTB (via the overlay tracker) and the edited nvpower.sh (via the same overlay tracker) on the next flash.
<source.root_path>/Linux_for_Tegra/ and reach the device only via /jetson-promote-image → /jetson-flash-image. Live-target tuning is out of scope.max-rate-custom only lowers the ceiling. It must be strictly below max-rate-maxn; raising the silicon cap is not supported.min(BPMP cap, active-nvpmodel-mode cap). The nvpmodel cap is owned by /jetson-customize-nvpmodel; this skill does not edit it.osp-controller). Mis-detection produces undefined behavior.nafll_gpusys and every nafll_gpcX; the cap binds only when applied to all of them.nvpower.sh is package-managed. It ships in nvidia-l4t-init; package upgrades clobber in-place edits. Long-lived setups should prefer a systemd drop-in or sibling helper.max-rate-maxn and lateinit are off-limits. max-rate-maxn is the silicon ceiling (read-only). lateinit is for boot-time clock init, not ceiling overrides — never touch either.BPFDTB_FILE is selected by board_sku / board_FAB via update_flash_args_common. Reading the static BPFDTB_FILE= line is wrong when the chain conditionally overrides it; resolve via the dispatch instead.| Error | Cause | Solution |
|---|---|---|
max-rate-custom set but clock still ramps to max-rate-maxn on T23x GPU | Only nafll_gpusys was capped; the nafll_gpcX partitions still run at max-rate-maxn and dominate the effective ceiling. | Apply the same max-rate-custom to nafll_gpusys and every nafll_gpcX node enumerated by grep -nE '^\s*nafll_gpc[0-9]+\s*:' <decompiled.dts>. |
| EMC DVFS disable appears to apply but EMC still scales on T26x | Only bwmgr.enabled = <0x00> was set; osp-controller survives and re-issues frequency changes via the QoS path. | Add edits #2 (cactmon.enabled = <0x00>) and #3 (/delete-node/ osp-controller) inside the same "Edit the DTS" step. Verify osp-controller via dtc -I dtb -O dts <bpmp-dtb> | grep -c osp-controller → expect 0. |
EMC DVFS disable rejected on T23x with "node not found" for osp-controller | T23x (Orin) BPMP DTBs do not contain osp-controller; edit #3 must be skipped on T23x. | Detect SoC family with the grep -c osp-controller step; only apply #3 when the count is ≥1. |
BPMP refuses to load DTB after edit: max-rate-custom >= max-rate-maxn | max-rate-custom was set to or above the silicon ceiling. | Lower max-rate-custom strictly below max-rate-maxn. If max-rate-maxn is absent from the node, query the live cap on a running target: cat /sys/kernel/debug/bpmp/debug/clk/<clock>/max_rate. |
osp-controller re-appears after status = "disabled" | status = "disabled" does not remove the node from the device tree; BPMP still walks it. | Replace with /delete-node/ osp-controller; — the node must not exist for BPMP to skip the path. |
Edits to nvpower.sh lost after apt upgrade | nvpower.sh is owned by the nvidia-l4t-init deb and gets overwritten on upgrade. | For long-lived test setups, package edits into a systemd drop-in or a sibling helper file referenced by nvpower.sh, rather than editing nvpower.sh in place. |
/jetson-promote-image is a no-op after editing the BPMP DTB | The edit was applied to <bsp_image.root_path>/Linux_for_Tegra/, which is /jetson-promote-image's output — not its input. | Move the edit to <source.root_path>/Linux_for_Tegra/bootloader/<BPFDTB_FILE> (the overlay tracker) and commit through the BPMP-DTB protocol. |
| Cap appears to apply on first boot then resets after a power-mode change | The active nvpmodel mode's per-clock cap clamps below max-rate-custom. | Inspect both layers; if nvpmodel is binding, raise (or remove) the nvpmodel cap via /jetson-customize-nvpmodel. The BPMP cap alone is not the runtime ceiling. |
../../references/bsp-customization-bpmp-dtb.md — canonical BPMP-DTB customization protocol (pristine import, decompile, edit, recompile, sanity-check, commit). Operation 1 of this skill is a content-only consumer; the protocol owns the mechanics.references/clock-control-model.md — layer stack, two-ceilings overview, effective-runtime-ceiling formula.references/bpmp-dtb-clock-edits.md — two-ceilings semantics, DTS edit form, nvpmodel ↔ BPMP clock-node mapping, inspection cookbook.references/emc-dvfs-disable.md — full SoC-conditional EMC DVFS disable procedure with DTS snippets, detection, re-enable.references/nvpower-sh-edits.md — nvpower.sh function locations + common-edit recipes + package-upgrade caveat./jetson-customize-nvpmodel — sibling skill: nvpmodel power modes. The active mode's per-clock cap clamps below the BPMP DTB cap.© NVIDIA, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (references) in skills/jetson-customize-clocks of NVIDIA/skills.
Open the folder on GitHubat commit 67a13c0
Jetson Customize Clocks next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Jetson Customize Clocks this skillNVIDIA/skills | 3.5k | — | ~4.8k | Automated safety check: Notes | Apache-2.0 | |
| Graphsignalgraphsignal/graphsignal | 257 | — | ~6.2k | Automated safety check: Pass | Apache-2.0 | |
| LLM Torch Profiler Trace AnalysisBBuf/AI-Infra-Auto-Driven-SKILLS | 911 | — | ~2.8k | Automated safety check: Pass | None | |
| TensorRT-LLM InferenceOrchestra-Research/AI-Research-SKILLs | 13k | 5 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Cv DeployLMIXR/CV_Deployment_skill | 146 | — | ~547 | Automated safety check: Pass | None | |
| Megatron-Core LLM TrainingOrchestra-Research/AI-Research-SKILLs | 13k | 3 repos | ~2.4k | Automated safety check: Pass | MIT |
graphsignal/graphsignal
Profile AI inference workloads (vLLM, SGLang, TensorRT-LLM, PyTorch, any GPU application) with the Graphsignal profiler and read the results from its local /signals JSON endpoint.
BBuf/AI-Infra-Auto-Driven-SKILLS
Analyzes Torch Profiler traces from SGLang, vLLM and TensorRT-LLM servers into kernel attribution, overlap and fusion tables.
Orchestra-Research/AI-Research-SKILLs
Optimizes and serves LLMs on NVIDIA GPUs with TensorRT-LLM, covering quantization, in-flight batching, multi-GPU parallelism and the trtllm-serve command.
LMIXR/CV_Deployment_skill
基于 helpfile 工程经验,协助 agent 配置 CV 主机和边缘设备环境、编译视觉与推理依赖、接入摄像头视频并打包部署服务。适用于 Ubuntu、CentOS、Windows、macOS、Jetson、树莓派和 RK3399 的 CV 工程实施与故障排查,以及相关移动端配套工具;模型训练和纯算法设计不属于本技能主线。
Orchestra-Research/AI-Research-SKILLs
Sets up large-scale LLM training with NVIDIA Megatron-Core, choosing tensor, pipeline, data, context and expert parallelism for a given model size and GPU count.
slowlyC/agent-gpu-skills
Write, debug, and optimize Triton and Gluon GPU kernels from local upstream tutorials, production kernels, language definitions, and compiler source.
NVIDIA/skills
A skill your agent uses when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection / tracking microservice.
NVIDIA/skills
Generates, validates, compares and explains HOLOLINK_def.svh macro files for the HSB IP, using bundled Python scripts and asking before it writes anything.
NVIDIA/skills
Runs and validates an end-to-end Mission Control demo in a locally installed Isaac Sim, with a Nova Carter robot driven through a Python server.
NVIDIA/skills
Orchestrates defect image generation for PCBA, metal surface and glass inspection with NVIDIA Cosmos AnomalyGen on OSMO, from cold-start Day 0 to real-photo Day 1 labeling.
NVIDIA/skills
Orchestrates video data augmentation and auto-labeling workflows on OSMO, from flow selection and preflight checks to submission, monitoring and output download.
NVIDIA/skills
Runs NVIDIA TAO Data Services KPI analysis on object detection results, comparing predictions to ground truth and writing per-class precision, recall and AP to a CSV.
Works with
Categories
A skill your agent uses to lock/cap Jetson CPU/GPU/EMC clocks, toggle EMC/CPU DVFS, or change cpufreq governors by editing BPMP DTB and nvpower.sh pre-flash. Jetson Customize Clocks is an agent skill from NVIDIA/skills, published by the product's own GitHub organization.sh pre-flash.
Jetson Customize Clocks fits situations like: lock/cap Jetson CPU/GPU/EMC clocks; toggle EMC/CPU DVFS; change cpufreq governors by editing BPMP DTB and nvpower.sh pre-flash.
Run `npx skills add NVIDIA/skills --skill jetson-customize-clocks -a claude-code`. Or copy the skill folder (skills/jetson-customize-clocks in NVIDIA/skills) into .claude/skills/jetson-customize-clocks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add NVIDIA/skills --skill jetson-customize-clocks -a codex`. Or copy the skill folder (skills/jetson-customize-clocks in NVIDIA/skills) into .agents/skills/jetson-customize-clocks in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA/skills --skill jetson-customize-clocks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jetson-customize-clocks, .gemini/skills/jetson-customize-clocks, .github/skills/jetson-customize-clocks and .opencode/skills/jetson-customize-clocks in your project.
Going by SKILL.md and its folder, Jetson Customize Clocks needs the command-line tools its instructions call (apt).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Jetson Customize Clocks is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Jetson Customize Clocks: Graphsignal (graphsignal/graphsignal, 257 stars), LLM Torch Profiler Trace Analysis (BBuf/AI-Infra-Auto-Driven-SKILLS, 911 stars), TensorRT-LLM Inference (Orchestra-Research/AI-Research-SKILLs, 13k stars) and Cv Deploy (LMIXR/CV_Deployment_skill, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/skills, which has 3,539 GitHub stars. The repository holds 380 skills in this directory. The repository was last updated on October 7, 2026.
Source: NVIDIA/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.