TornadoVM: Skill for Claude Code

.claude/skills/tornadovm-nccl/SKILL.md

tornadovm-nccl is a skill for Claude Code from beehive-lab/TornadoVM. It costs 144 tokens per session (2,315 once invoked), scanned A, original, Apache-2.0.

A TornadoVM recipe for using NVIDIA NCCL to coordinate work across multiple GPUs. NCCL is NVIDIA's library for exchanging and combining data between GPUs and processes.

In plain words
What is it for?
Building multi-GPU steps such as all-reduce, broadcast, send, and receive, including grouped operations and CUDA graph capture in TornadoVM programs.
Why use it?
It avoids deadlocks and incorrect execution by requiring matching operation order, coordinated execution of all GPU workers, and safe shutdown order.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is beehive-lab/TornadoVM's own configuration. It tells Claude Code how to work on TornadoVM itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything TornadoVM configures →

About the project

TornadoVM is a Java framework that compiles Java code into programs for GPUs and multicore CPUs at runtime. Java developers use it to run compute-heavy code on NVIDIA, AMD, Intel, and Apple hardware without writing CUDA C or maintaining JNI bindings.

beehive-lab/TornadoVM · 1,551 stars · on GitHub · tornadovm.org

Reuse

Borrowing it

Nothing to install: this file belongs to beehive-lab/TornadoVM. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/beehive-lab/TornadoVM/master/.claude/skills/tornadovm-nccl/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/beehive-lab/TornadoVM

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for tornadovm-nccl

README.md
[![agentmods](https://agentmods.dev/badge/skills/beehive-lab/tornadovm/tornadovm-nccl/github.svg)](https://agentmods.dev/skills/beehive-lab/tornadovm/tornadovm-nccl)
Your own site
<a href="https://agentmods.dev/skills/beehive-lab/tornadovm/tornadovm-nccl"><img src="https://agentmods.dev/badge/skills/beehive-lab/tornadovm/tornadovm-nccl/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for tornadovm-nccl

Your own site · 80×15
<a href="https://agentmods.dev/skills/beehive-lab/tornadovm/tornadovm-nccl"><img src="https://agentmods.dev/badge/skills/beehive-lab/tornadovm/tornadovm-nccl.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 144 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,315 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00144 $0.02315
Opus 5.5 $0.00058 $0.00926
Sonnet 5.5 $0.00029 $0.00463
Haiku 4.5 $0.00014 $0.00231

Measured 14d ago against content hash 070c666a2602, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

tornadovm-nccl scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 14d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/tornadovm-nccl/SKILL.md · 150 lines

How it starts

The opening of the file, as written. The whole thing — 150 lines — stays where its author put it; the contents beside it link to each section on GitHub.

NCCL with TornadoVM

tornado-nccl runs NCCL operations as library tasks on TornadoVM device buffers, so a multi-GPU step (kernel → collective → kernel) stays on the GPUs. Read tornado-nccl/ARCHITECTURE.md for the design and full API, and tornado-nccl/README.md for a short tour. This skill is the working recipe.

The model in four rules

  1. One rank = one TornadoExecutionPlan on one GPU. Build one task graph per local GPU (same code, rank-specific data), each plan withDevice(gpu r).
  2. The collective is a libraryTask in every rank's graph, in the same order on every rank: .libraryTask("sum", Nccl::allReduceInPlace, comm, grads, NcclRedOp.SUM).
  3. Run the ranks together with NcclPlanGroup. Never call plan.execute() rank by rank on one thread: the first collective waits for the others forever.
  4. Close in reverse order: group → plans → communicator. Closing the communicator before plans that captured CUDA graphs hangs in ncclCommDestroy.

Template (follow the user's kernel rules)

Kernels use KernelContext only, never @Parallel. Each kernel bounds-checks explicitly, and every kernel task gets a WorkerGrid with an explicit local size in a GridScheduler.

public static void scale(KernelContext ctx, FloatArray a, float f) {
    int id = ctx.globalIdx;
    if (id < a.getSize()) {
        a.set(id, a.get(id) * f);
    }
}

TornadoDevice[] gpus = { TornadoExecutionPlan.getDevice(0, 0), TornadoExecutionPlan.getDevice(0, 1) };
TornadoExecutionPlan[] plans = new TornadoExecutionPlan[gpus.length];
try (NcclCommunicator comm = NcclCommunicator.create(gpus)) {
    try {
        for (int r = 0; r < gpus.length; r++) {
            TaskGraph g = new TaskGraph("rank" + r)
                    .transferToDevice(DataTransferMode.FIRST_EXECUTION, data[r])
                    .task("pre", Kernels::scale, new KernelContext(), data[r], 2.0f)
                    .libraryTask("sum", Nccl::allReduceInPlace, comm, data[r], NcclRedOp.SUM)
                    .task("post", Kernels::scale, new KernelContext(), data[r], 0.5f)
                    .transferToHost(DataTransferMode.EVERY_EXECUTION, data[r]);
            WorkerGrid w = new WorkerGrid1D(n);
            w.setLocalWork(256, 1, 1);
            GridScheduler s = new GridScheduler();
            s.addWorkerGrid("rank" + r + ".pre", w);     // one entry per kernel task: count them
            s.addWorkerGrid("rank" + r + ".post", w);
            plans[r] = new TornadoExecutionPlan(g.snapshot()).withDevice(gpus[r]).withGridScheduler(s);
        }
        try (NcclPlanGroup ranks = new NcclPlanGroup(plans).withStepTimeout(Duration.ofSeconds(30))) {
            for (int step = 0; step < steps; step++) {
                ranks.execute();
            }
        }
    } finally {
        for (TornadoExecutionPlan p : plans) { if (p != null) p.close(); }   // plans before comm
    }
}

Read the full file on GitHub · 150 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 14d ago First seen · 150 lines · 144 tokens per session scan A 070c666a2602

Subscribe to this mod's changes

tornadovm-nccl is a skill published in the GitHub repository beehive-lab/TornadoVM (1,551 stars, last pushed today), licensed Apache-2.0. It adds 144 tokens to every session and 2,315 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-15.

Related

Other skills, from other repositories

sglang-diffusion-cache-dit

Workflow for upgrading/integrating cache-dit in SGLang diffusion (multimodalgen): DBCache, DMD calibrator, TaylorSeer, SVDQuant DQ; porting upstream PRs and resolving conflicts against the per-request knob system; adding new cache knobs; building the sglang generate CLI test matrix; precision validation (PSNR / log…

sgl-project/sglang · 161 tokens

cuopt-developer

Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI). Use for solver internals, PRs, DCO, and code conventions.

NVIDIA/cuopt · 47 tokens

cuopt-user-rules

Base rules for end users calling NVIDIA cuOpt (routing/LP/MILP/QP/install/server). Not for cuOpt internals — use cuopt-developer for those.

NVIDIA/cuopt · 42 tokens

neqsim-api-patterns

NeqSim Java/Python API patterns for fluids, flashes, process equipment and units. USE WHEN: selecting EOS/mixing-rule selection and property retrieval, including viscosity, thermal conductivity, binary/effective diffusion, gas-oil-water interfacial tension and black-oil PVT table conversion. Follow linked references…

equinor/neqsim · 78 tokens

neqsim-production-system-modeling

Build NeqSim models from natural language in Python or Java: reservoir, production/injection wells, SURF templates/manifolds/PLEMs, multiphase flowlines and risers, facilities, utilities and downstream processing. USE WHEN: building reservoir-to-products models, coupled deliverability/capacity and equivalent language…

equinor/neqsim · 82 tokens

pytorch-profile-analysis

Analyze single-file PyTorch/Kineto Chrome trace .json(.gz) files using the VeloQ CLI. Use for CPU/CUDA/kernel correlation, ProfilerStep/annotation slicing, memory/shape grouping, and single-trace NCCL evidence.

lucifer1004/VeloQ · 56 tokens