Skip to content
Back to skills

Newton Performance

ASecurity

Measure or improve the runtime, startup time, memory use, or throughput of a Newton simulation that already behaves correctly, or review a Newton step loop for performance problems such as CUDA graph capture mistakes and host synchronization. Not for setting up simulations, general solver or API questions, debugging unstable or incorrect physics without a performance goal, or optimizing Warp code that does not use Newton.

  • 3,947 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 12, 2026
ai-agentspythongodebugginggitapiperformancedocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned November 12, 2026

npx -y skills add NVIDIA/skills --skill newton-performance --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Newton Performance?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Newton Performance
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nvidia-newton-performance/badge)](https://www.skillsdirectory.com/skills/nvidia-newton-performance)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: newton-performance
description: Measure or improve the runtime, startup time, memory use, or throughput of a Newton simulation that already behaves correctly, or review a Newton step loop for performance problems such as CUDA graph capture mistakes and host synchronization. Not for setting up simulations, general solver or API questions, debugging unstable or incorrect physics without a performance goal, or optimizing Warp code that does not use Newton.
---

# Newton Performance

Make a correct Newton workload faster without changing its results. Newton's
documentation holds the technical guidance; this skill orders the work and
defines what counts as evidence.

## 1. Scope the request

- If the simulation is unstable, produces invalid states, or the user's goal is
  correctness rather than speed, use `newton-usage` instead and stop here.
- Decide the mode. A **plan** request (how should I profile or optimize this?)
  gets a documentation route and one bounded experiment. A **review** request
  (is this loop correct and fast?) gets findings against the documentation.
  In both, reading code and documentation is fine, but do not run the
  simulation, benchmarks, or profilers unless asked. A **measure** or
  **implement** request runs the workflow below.
- Record the workload, the objective, and the timing scope. Keep these scopes
  separate, because they have different causes: startup (import, model build,
  kernel compilation), warm stepping, rendering, host/device transfers, memory,
  and training throughput.
- Record the fidelity checks that must still pass after a change, for example
  finite state, no contact overflow, and a trajectory or force metric against a
  reference run.

## 2. Gather context once

Reuse facts the user already gave. Otherwise run once:

```
python -c "import sys, newton; from importlib.metadata import version; print(sys.executable, version('newton'), version('warp-lang'), newton.__file__)"
```

Check GPU availability only when the experiment depends on it. If the workload,
a required profiler, or required permissions are missing, report exactly what
is missing and stop. If elevated privileges are needed (for example GPU
performance counters), give the exact command for the user to run and stop.

## 3. Route to the documentation

Use the Newton documentation for the installed release,
`https://newton-physics.github.io/newton/<version>/`, and flag a mismatch
before relying on an API or default. Open only the page the task needs; paths
are relative to that root:

- `concepts/simulation_tuning.html`: trading substeps, iterations, and contact
  settings against accuracy.
- `concepts/collisions.html`: broad phase, geometry, contact capacity, and
  collision frequency.
- `solvers/index.html` and the API reference: solver options, capacities,
  `ModelFlags`, and `State.assign` for odd substep counts in a captured frame.
- Warp's Profiling page for instrumentation and timing, under the installed
  Warp version's documentation, `https://nvidia.github.io/warp/v<major>.<minor>/`.
  The page path differs between Warp versions, so find it from that version's
  index. If that version is not published, use `stable` and flag the mismatch.

Cite the page and section each recommendation relies on.

When the user only needs a documentation location, give the URL without
opening it.

## 4. Measure, change, verify

1. Measure a reproducible baseline for the recorded workload and timing scope.
2. Choose the profiling path for that scope: startup (import, model build,
   compilation), eager stepping, or captured-graph replay. Each needs different
   tools and timing boundaries; Warp's profiling guide gives the tools.
   Exclude warm-up, compilation, and the first graph launch from steady-state
   timing, synchronize at the timing boundaries, and add only the
   instrumentation the question needs.
3. Collect the profile and inspect it: identify the dominant kernels, gaps, or
   synchronization points, and state the evidence. Do not choose a change
   before this step, and do not start from universal tuning values.
4. Select a documented lever whose accuracy tradeoff fits the task. Change one
   factor at a time. When settings interact (for example collision
   frequency, contact model, mesh resolution, and gap), run a small bounded
   sweep over the coupled set instead.
5. Repeat before and after measurements under the same conditions and
   instrumentation to estimate variance, and re-run the fidelity checks from
   section 1.
6. Keep a change only if it meets the objective and passes the fidelity
   checks; otherwise revert it.

## 5. Review checks

When reviewing a Newton step loop, check these against the documentation
selected in section 3 and cite the page:

- the whole frame, including collision, is captured in one graph and warmed up
  before capture;
- an odd substep count with a plain state swap inside a captured frame;
- arrays replaced instead of written in place after capture, or Python values
  expected to change between replays;
- host reads (`.numpy()`, contact counts, printing) inside the frame;
- capacities sized from defaults rather than measured peaks, and overflow never
  checked;
- rendering or logging inside the substep loop, or included in simulation
  timings.

Credit any correct fix the documentation supports, not only the first one
listed there.

## 6. Report

Report the Newton and Warp versions, the environment, the documentation used,
the workload and timing scope, the change, the before and after measurements
with variance, the fidelity evidence, and the largest remaining cost or
blocker. Label proposed experiments separately from measurements actually
collected. CPU measurements or source inspection do not establish a GPU
speedup.

Compatibility with specific Newton releases has not been validated.

Files in this skill

  • BENCHMARK.md11.8 KB
  • SKILL.md5.7 KB
  • evals/EVAL.md1.9 KB
  • evals/evals.json13.4 KB
  • skill-card.md7.7 KB
  • skill.oms.sig4.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.