Official agent skill

Jetson Optimize Memory

by NVIDIA in NVIDIA/skills

Reclaim DRAM by disabling unused subsystems across MB1 BCT, MB2 BCT, kernel reserved-memory, and SWIOTLB.

OfficialApache-2.0Auto-check: notesAI & LLM Engineering

Install Jetson Optimize Memory

skills CLI
$ npx skills add NVIDIA/skills --skill jetson-optimize-memory -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install NVIDIA/skills jetson-optimize-memory --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/jetson-optimize-memory .claude/skills/jetson-optimize-memory && rm -rf skills-src

Use ~/.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/

Facts

Skill name
jetson-optimize-memory
GitHub stars
3.5k
Token cost
~2k tokens
SKILL.md length
697 words
Files
5
Skills in repo
380
Repo updated
First seen
Licence
Apache-2.0

At a glance

Reclaim DRAM by disabling unused subsystems across MB1 BCT, MB2 BCT, kernel reserved-memory, and SWIOTLB.

  • Works in 2 steps: Override auxp_controls@ → /delete-node/ auxp_ast_config@;
  • No-camera Jetson deployments
  • SKILL.md covers Scenario recipes, MB1 BCT carveout overrides, MB2 BCT cluster + AST overrides and Kernel DT reserved-memory, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Jetson Optimize Memory is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Reclaim DRAM by disabling unused subsystems across MB1 BCT, MB2 BCT, kernel reserved-memory, and SWIOTLB. Use for headless or no-camera Jetson deployments; not for CPU/GPU frequency tuning.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `BENCHMARK.md`, `evals/evals.json` and `skill-card.md`).

It sits in AI & LLM Engineering, covering GPU and accelerator computing and Deployment. It works with NVIDIA AI Platform. 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.

When your agent uses it

  • No-camera Jetson deployments
  • Not for CPU/GPU frequency tuning

Example prompts

  • “/jetson-optimize-memory”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Override auxp_controls@
  2. /delete-node/ auxp_ast_config@;

What it can do on your machine

Read from SKILL.md and the folder at commit 0e0d506. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and dts).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Jetson Optimize Memory loads about 2k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 697 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~53
When it runs · the whole SKILL.md, loaded when a task matches
~2k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:63
    > **Post-boot:** `headless` → `sudo systemctl set-default multi-user.target`.
  • NoteRuns commands with sudoSKILL.md:177
    sudo cat /proc/iomem | grep -iE 'nv-reserved|cma|fb|carveout'

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.

SKILL.md

The full file from NVIDIA/skills at commit 0e0d506, republished under its Apache-2.0 licence (© NVIDIA). 697 words, ~2,030 tokens.

Download SKILL.mdSave it as .claude/skills/jetson-optimize-memory/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
jetson-optimize-memory
description
Reclaim DRAM by disabling unused subsystems across MB1 BCT, MB2 BCT, kernel reserved-memory, and SWIOTLB. Use for headless or no-camera Jetson deployments; not for CPU/GPU frequency tuning.
version
0.0.1
license
Apache-2.0
argument-hint
headless | no-camera | swiotlb
metadata.data-classification
public
metadata.author
Jetson Team
metadata.tags
memory, dram, carveout, swiotlb
metadata.domain
memory

jetson-optimize-memory

Memory is reserved across four layers ordered by boot chronology (higher row = earlier in boot, closer to hardware):

LayerContentKey files
MB1 BCTfirmware carveoutsper-module misc DTS
MB2 BCTfirmware loading + AST controlsper-module misc DTS
Kernel DTSreserved-memory and driver bindingper-module DTS
SWIOTLBDMA bounce pool size<module>.conf.common (CMDLINE_ADD)

Critical rules:

  • Only the scenarios in Scenario recipes are validated. Refuse any request to disable a carveout/cluster/node not in that table.
  • Zeroing a carveout requires both: disabling the cluster's loading controls AND removing the AST that references it.
  • Emit explicit overrides for every cluster in the recipe, regardless of how the source #ifdef/#else looks. Verify the merged binary.
  • GPU SW stack must match the chip: T234 -> nvgpu, T264 and later -> OpenRM. Follow the shared derived-platform rule in target-platform-contract.md; stop on mismatches instead of guessing.
  • Do not set SWIOTLB to 0 — some peripherals can't use the IOMMU.

Scenario recipes

KeywordMB1 BCT carveoutsMB2 BCTKernel DTS
headlessDCE-family (see chip table)DCE auxp_controls + DCE AST(s)display@<addr> (and dce@<addr> if exposed) → disabled
no-cameraRCE/VI/ISP-familyRCE auxp_controls (each instance) + RCE AST(s)recommended: VI/ISP/NVCSI → disabled
Chip-specific carveouts
ScenarioT234 (Orin)T264 (Thor)
headlessCARVEOUT_BPMP_DCE, CARVEOUT_DCE, CARVEOUT_DCE_TSEC, CARVEOUT_TSEC_DCE, CARVEOUT_DISP_EARLY_BOOT_FBCARVEOUT_DCE, CARVEOUT_TSEC_DCE, CARVEOUT_HPSE_DCE, CARVEOUT_DISP_EARLY_BOOT_FB
no-cameraCARVEOUT_RCE, CARVEOUT_CAMERA_TASKLISTCARVEOUT_RCE, CARVEOUT_RCE1, CARVEOUT_RCE_RW, CARVEOUT_VI_TASKLIST, CARVEOUT_VI1_TASKLIST, CARVEOUT_ISP_TASKLIST, CARVEOUT_ISP1_TASKLIST

Post-boot: headless → sudo systemctl set-default multi-user.target.


MB1 BCT carveout overrides

File: Linux_for_Tegra/bootloader/generic/BCT/tegra<chip>-mb1-bct-misc-<module>.dts (e.g. tegra234-mb1-bct-misc-p3767-0000.dts for Orin Nano, tegra264-mb1-bct-misc-p3834-0008-p4071-0000.dts for Thor).

For each carveout, add inside the existing carveout node:

dts
aux_info@<CARVEOUT_NAME> {
    pref_base = <0x0 0x0>;
    size      = <0x0 0x0>;
    alignment = <0x0 0x0>;
};

MB2 BCT cluster + AST overrides

File: Linux_for_Tegra/bootloader/generic/BCT/tegra<chip>-mb2-bct-misc-<module>.dts (includes tegra<chip>-mb2-bct-common.dtsi).

For each target cluster:

  1. Override auxp_controls@<index>:
    dts
    auxp_controls@<index> {
        enable_init    = <0>;
        enable_fw_load = <0>;
        enable_unhalt  = <0>;
    };
  2. /delete-node/ auxp_ast_config@<idx>;

Look up indices in common.dtsi: auxp_controls@N carries a comment naming its cluster; auxp_ast_config@N has ast_region children whose carveout = <CARVEOUT_…>; lines identify the owner.


Kernel DT reserved-memory

sh
DTB=Linux_for_Tegra/kernel/dtb/<platform-dtb-name>.dtb
dtc -I dtb -O dts -o /tmp/platform.dts $DTB
# edit: status = "disabled" on target nodes
dtc -I dts -O dtb -o $DTB /tmp/platform.dts

Display — disable display@<addr>, plus dce@<addr> if exposed as a separate kernel node.

Camera — under host1x@<addr>, disable whichever of vi* / isp* / nvcsi exist on the BSP (only emit present nodes):

Locate the display controller node in the decompiled DTS and disable it. The node's unit address is chip-specific — find it by compatible string (e.g. nvidia,tegra234-display) rather than hard-coding the address.

dts
host1x@<addr> {
    vi0@<addr>   { status = "disabled"; };
    vi1@<addr>   { status = "disabled"; };
    isp@<addr>   { status = "disabled"; };
    isp1@<addr>  { status = "disabled"; };
    nvcsi@<addr> { status = "disabled"; };
};

SWIOTLB DMA bounce pool

The NVIDIA IOMMU covers peripheral DMA, so SWIOTLB is rarely used. Edit CMDLINE_ADD (never CMDLINE) in Linux_for_Tegra/<module>.conf.common:

sh
# Total bytes = swiotlb_value × 2048; 4 MiB pool:
CMDLINE_ADD="... swiotlb=2048"

Override verification (mandatory)

After every patched MB1/MB2 BCT .dts, reproduce the BSP's compile + decompile using the same -D… flags from bct_flags.append(...) in bootloader/tegraflash_impl_t<chip>.py:

sh
gcc -E -nostdinc -x assembler-with-cpp \
    -DENABLE_<FLAG_1> -DENABLE_<FLAG_2> \
    -I bootloader -I bootloader/generic/BCT \
    -o /tmp/cpp.dts <patched-bct.dts>
dtc -q -I dts -O dtb -o /tmp/cpp.dtb /tmp/cpp.dts
dtc -q -I dtb -O dts /tmp/cpp.dtb | less

Confirm in the merged output:

  • Each zeroed aux_info@<NAME> (or aux_info@<id>U post macro expansion) has size = <0x0 0x0> and pref_base = <0x0 0x0>.
  • Each disabled auxp_controls@<idx> has all three enable_* fields <0>.
  • Each /delete-node/'d auxp_ast_config@<idx> is absent.

Show full SKILL.md (272 more words)Show less

Verification (on booted target)

sh
sudo cat /proc/iomem | grep -iE 'nv-reserved|cma|fb|carveout'
ls /proc/device-tree/reserved-memory/
dmesg | grep -iE 'firmware|carveout|bpmp|reserved|fail|error' | head -20
free -m
ScenarioSysfsdmesg grep
Display offls /sys/class/drm/ (empty)tegra-drm|nvdisplay|dce|host1x|fb0
Camera offls /dev/video* 2>/dev/null (none)rce|nvcsi|tegra-camera|vi0|vi1|isp
SWIOTLB shrinkcat /sys/kernel/debug/swiotlb/io_tlb_nslabs matches cmdlineswiotlb

For SWIOTLB: /proc/cmdline must contain swiotlb=<value>, and watch -n5 cat /sys/kernel/debug/swiotlb/io_tlb_used must stay under io_tlb_nslabs during full workload — if exceeded, restore original CMDLINE_ADD and re-flash kernel-dtb.

Purpose

Cut the unused DRAM carveouts that ship enabled in the reference BSP when a Jetson deployment skips display, camera, or other peripherals, freeing the freed bytes for the application. Always edits the four layers in boot order so an early-stage carveout never outranks a later-stage shrink.

Prerequisites

  • Active target profile resolved per ../../context/target-platform-contract.md.
  • BSP image extracted and source tree initialized (/jetson-init-image, /jetson-init-source complete).
  • For headless / no-camera recipes: confirm the workload truly does not need display or camera.

Limitations

  • Only the validated recipes (headless, no-camera, swiotlb) are exposed; ad-hoc subsystem disables outside the recipe set are refused.
  • SWIOTLB shrink is bounded by peak in-flight DMA — exceeding the new io_tlb_nslabs requires reverting the change.
  • BPMP-DTB edits land in the overlay tracker only after Customize + Build + Deploy run; this skill does not flash on its own.

Troubleshooting

  • Boot fails after MB1 BCT carveout disable — restore the pristine misc DTS and re-flash; the missing carveout is mandatory for the active SoC.
  • io_tlb_used exceeds io_tlb_nslabs — revert swiotlb= in CMDLINE_ADD and re-flash the kernel DTB partition.
  • Reclaimed delta smaller than expected — verify the recipe truly matched the deployment (e.g. display still attached); use the dmesg | grep -iE 'firmware|carveout' check in this file to confirm.
  • Validation dmesg shows the disabled subsystem still probing — the change probably did not promote through to bsp_image; re-run /jetson-promote-image.

© 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

Files

SKILL.md and 4 other files in skills/jetson-optimize-memory of NVIDIA/skills.

  • SKILL.md
  • BENCHMARK.md
  • evals/evals.json
  • skill-card.md
  • skill.oms.sig

Open the folder on GitHubat commit 0e0d506

Compare with similar skills

Jetson Optimize Memory 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.

Jetson Optimize Memory compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jetson Optimize Memory this skillNVIDIA/skills3.5k—~2kAutomated safety check: NotesApache-2.0
Cv DeployLMIXR/CV_Deployment_skill126—~547Automated safety check: PassNone
Fla Triton To Gluonfla-org/flash-linear-attention5.8k—~4.2kAutomated safety check: PassMIT
DGX Spark Memory and Thermal Opswshobson/agents40k1 repos~2kAutomated safety check: PassMIT
DGX Spark Training Gotchaswshobson/agents40k1 repos~2kAutomated safety check: PassMIT
Nemotron Nano3NVIDIA-NeMo/Nemotron2.1k—~1.9kAutomated safety check: PassApache-2.0

Similar skills

  • Cv Deploy

    LMIXR/CV_Deployment_skill

    基于 helpfile 工程经验,协助 agent 配置 CV 主机和边缘设备环境、编译视觉与推理依赖、接入摄像头视频并打包部署服务。适用于 Ubuntu、CentOS、Windows、macOS、Jetson、树莓派和 RK3399 的 CV 工程实施与故障排查,以及相关移动端配套工具;模型训练和纯算法设计不属于本技能主线。

    126 GitHub stars~547 tokensUpdated 8 days ago
    AI & LLM EngineeringAuto-check passed
  • Fla Triton To Gluon

    fla-org/flash-linear-attention

    Workflow for porting an existing Triton kernel in fla/ops/ to Gluon (triton.experimental.gluon) to gain explicit control over tensor layouts, shared memory, async data movement (cp.async / TMA), MMA…

    5.8k GitHub stars~4.2k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Plans memory headroom, works through out-of-memory failures and watches temperature and power during long ML training jobs on NVIDIA DGX Spark.

    40k GitHub starsUsed in 1 repo~2k tokens
    AI & LLM EngineeringAuto-check passed
  • Preflight checks and diagnosis for ten known failure modes of ML training on NVIDIA DGX Spark's GB10, spanning launch errors, memory, thermals, bandwidth and precision.

    40k GitHub starsUsed in 1 repo~2k tokens
    AI & LLM EngineeringAuto-check passed
  • Nemotron Nano3

    NVIDIA-NeMo/Nemotron

    Reference desk for Nemotron 3 Nano / Llama-Nemotron Nano 3 — architecture, training data, recipes, evaluation, quantization, deployment.

    2.1k GitHub stars~1.9k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Megatron-LM on SLURM

    NVIDIA/Megatron-LM

    Official

    Shows how to launch distributed Megatron-LM training on a SLURM cluster: sbatch skeleton, torch.distributed.run setup, CUDA_DEVICE_MAX_CONNECTIONS rules and failure diagnosis.

    18k GitHub stars~1.8k tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from NVIDIA/skills

All 380 skills in this repo
  • Official

    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.

    3.5k GitHub starsUsed in 1 repo~4.5k tokens
    Auto-check passed
  • Official

    Generates, validates, compares and explains HOLOLINK_def.svh macro files for the HSB IP, using bundled Python scripts and asking before it writes anything.

    3.5k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Official

    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.

    3.5k GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • 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.

    3.5k GitHub stars~5k tokensUpdated today
    Auto-check: notes
  • Orchestrates video data augmentation and auto-labeling workflows on OSMO, from flow selection and preflight checks to submission, monitoring and output download.

    3.5k GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Official

    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.

    3.5k GitHub stars~2.7k tokensUpdated today
    Auto-check: notes

Questions about Jetson Optimize Memory

What does Jetson Optimize Memory do?

Reclaim DRAM by disabling unused subsystems across MB1 BCT, MB2 BCT, kernel reserved-memory, and SWIOTLB. Jetson Optimize Memory is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Reclaim DRAM by disabling unused subsystems across MB1 BCT, MB2 BCT, kernel reserved-memory, and SWIOTLB.

When should I use Jetson Optimize Memory?

Jetson Optimize Memory fits situations like: no-camera Jetson deployments; not for CPU/GPU frequency tuning.

How do I install Jetson Optimize Memory in Claude Code?

Run `npx skills add NVIDIA/skills --skill jetson-optimize-memory -a claude-code`. Or copy the skill folder (skills/jetson-optimize-memory in NVIDIA/skills) into .claude/skills/jetson-optimize-memory in your project. Claude Code loads it when a task matches its description.

How do I install Jetson Optimize Memory in Codex?

Run `npx skills add NVIDIA/skills --skill jetson-optimize-memory -a codex`. Or copy the skill folder (skills/jetson-optimize-memory in NVIDIA/skills) into .agents/skills/jetson-optimize-memory in your project. Codex loads it when a task matches its description.

Can I use Jetson Optimize Memory in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA/skills --skill jetson-optimize-memory -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-optimize-memory, .gemini/skills/jetson-optimize-memory, .github/skills/jetson-optimize-memory and .opencode/skills/jetson-optimize-memory in your project.

What does Jetson Optimize Memory need to run?

SKILL.md names no scripts, command-line tools or credentials: Jetson Optimize Memory is instructions for the agent only.

Does Jetson Optimize Memory access the network?

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.

Is Jetson Optimize Memory safe to install?

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.

What licence does Jetson Optimize Memory use?

Jetson Optimize Memory 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.

How many tokens does Jetson Optimize Memory use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Jetson Optimize Memory?

Skills that share tags, products or a category with Jetson Optimize Memory: Cv Deploy (LMIXR/CV_Deployment_skill, 126 stars), Fla Triton To Gluon (fla-org/flash-linear-attention, 5.8k stars), DGX Spark Memory and Thermal Ops (wshobson/agents, 40k stars) and DGX Spark Training Gotchas (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jetson Optimize Memory?

NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/skills, which has 3,534 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.