Show HN: InstinctFlash – Run 5B world-action models in real time on Jetson Thor

Hacker News Top Tools

Summary

InstinctFlash is a high-performance serving framework for robotics models that enables real-time inference of 5B world-action models on Jetson Thor, with reported speedups of up to 33.78×.

Hey HN, Guanming here, cofounder of General Instinct. We just released InstinctFlash, a high-performance serving framework for robotics models. It’s licensed under AGPL-3.0.<p>On Jetson Thor, we see speedups about 1.2x to 7.9x from runtime optimizations alone and up to 33.78x for LingBot-VA when we combine those runtime optimizations with a distilled few-step diffusion scheduler, going from the original 25 visual &#x2F; 50 action steps to 2 &#x2F; 4 steps. Across 50 Robotwin2.0 tasks, we evaluated 1,153 episodes per configuration, LingBot-VA with InstinctFlash at 2 visual &#x2F; 4 action steps achieved a 90.5% success rate, compared with 92.1% for the baseline at 25 visual &#x2F; 50 action steps.<p>Here’s an optimized 5B world action model, running in real time on a Jetson Thor: <a href="https:&#x2F;&#x2F;youtu.be&#x2F;nku65iyL5Fw" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;nku65iyL5Fw</a><p>InstinctFlash currently supports 8 VLA &#x2F; world-action model families, including pi0.5 and NVIDIA Cosmos Policy, across RTX 4090 &#x2F; 5090 and Jetson Thor.<p>Just give it your fine-tuned checkpoint and InstinctFlash handles the rest, exposing the accelerated model through a Python runtime or an OpenPI-compatible WebSocket server.<p>We started working on this because we kept running into the same problem while deploying robot policies, the models were getting much better, but inference was often way too slow for the control loop we actually wanted.<p>For pi0.5, mixed-precision GEMMs and CUDA graphs speed up computation and reduce launch overhead. For Cosmos, caching avoids redundant computation across diffusion steps. World-action models’ diffusion denoising step depends on the previous one which motivated our work on few-step distillation.<p>Right now, InstinctFlash contains 6 aspects of optimization.<p>- Graph: CUDA graph capture, memory planning and separating prefill from repeated execution.<p>- Cache: Reusing KV and conditioning state across diffusion steps and prediction calls.<p>- Attention: Specialized attention paths for different model architectures.<p>- Kernels: Fused operations and kernels tailored to specific backends and tensor layouts.<p>- Precision: FP8 and mixed-precision execution.<p>- Model: Few-step distillation for diffusion and action generation.<p>Teams at Samsung, Siemens, and other robotics startups have used InstinctFlash for model acceleration on VLAs, WAMs, and diffusion-based world models. Now we are opening up access to you.<p>Feel free to try it here: <a href="https:&#x2F;&#x2F;github.com&#x2F;General-Instinct&#x2F;InstinctFlash" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;General-Instinct&#x2F;InstinctFlash</a><p>More implementation details and benchmarks: <a href="https:&#x2F;&#x2F;general-instinct.com&#x2F;blog&#x2F;instinctflash-edge-inference">https:&#x2F;&#x2F;general-instinct.com&#x2F;blog&#x2F;instinctflash-edge-inferen...</a><p>Would love to hear your feedback!
Original Article
View Cached Full Text

Cached at: 09/22/26, 06:58 PM

General-Instinct/InstinctFlash

Source: https://github.com/General-Instinct/InstinctFlash

InstinctFlash

A high-performance serving framework for robotics models.

License Website YC


What’s new 🔥

  • [2026/09/17] RTX 5090 support. Deploy on your workstation with the same Runtime API used on Jetson Thor. Setup · Reproduce.
  • [2026/09/16] RTX 4090 support. Desktop inference and WebSocket serving with dedicated installation profiles. Setup · Reproduce.
  • [2026/09/15] Full-source release. Eight robotics model families, acceleration kernels, and Python / WebSocket serving through one Runtime. Get started.
  • [2026/09/15] Jetson Thor benchmarks. Up to 33.78× speedup with LingBot-VA @2V/4A, using FP8 and fewer sampling steps. Results · Reproduce.

Results

Prediction p50 on Jetson Thor (ms), measured September 15, 2026.

We’ve seen up to 33.78× speedup with no observed loss in task performance in our real-robot tests.

ModelAcceleration linePyTorchInstinctFlashSpeedup
LingBot-VAFP8 · 25V/50A15506.322891.745.36×
↳ LingBot-VAFP8 · 2V/4A2071.29459.104.51×
LingBot-VLA-4BFP8624.22221.532.82×
LingBot-VLA-V2-6BFP8734.56394.111.86×
Cosmos3 Edge DROIDNUMERIC · UniPC4 / CFG33393.781048.013.24×
Cosmos3 Nano DROIDNUMERIC · UniPC4 / CFG310184.684772.382.13×
pi05FP8408.5851.857.88×
GR00T N1.7BITEXACT139.50117.301.19×
DreamZero DROIDFP8 · 16 steps · dynamic cache23563.0811899.421.98×

VA measures early continuations; each row compares the same schedule. The 33.78× headline includes 25V/50A → 2V/4A. FP8 and sampling changes are optional.

Protocol and raw results · Native VA 2V/4A · Reproduction commands

Install

git clone https://github.com/General-Instinct/InstinctFlash && cd InstinctFlash
python3 -m venv .venv-core
source .venv-core/bin/activate
python -m pip install . uv==0.12.5

The Python 3.10+ core inspects checkpoints and plans without PyTorch or a GPU. Inference uses a separate, pinned environment for each model family. For RTX 4090:

python3 scripts/bootstrap_vendor.py install pi05 --target rtx4090 \
  --python python3.12 --root ~/ifl-pi05-4090 --ptxas /usr/local/cuda/bin/ptxas
source ~/ifl-pi05-4090/activate.sh

Use va, vla4, vla2, pi05, groot, edge, nano or dreamzero. Edge and Nano use Python 3.13; the other families use Python 3.12. The bootstrap installs the upstream source, compatibility patches, core and adapter. Model weights are downloaded separately. See RTX 5090 setup, RTX 4090 setup or Jetson Thor setup, which selects --target jetson_thor and uses the Thor CUDA backend build.

Load a model

Your fine-tuned checkpoint — the expected case. Point serve at the training output; it detects the family, writes the small instinctflash.json declaration from what the checkpoint itself proves, and starts serving. One command:

instinctflash serve /path/to/your/checkpoint

Anything the checkpoint cannot prove is asked for explicitly, never guessed. Once the declaration exists (serve writes it on first run), the same directory also loads in Python:

from instinctflash import Runtime

runtime = Runtime.from_pretrained("/path/to/your/checkpoint")

A stock release — use its Hub id after installing the family’s environment:

runtime = Runtime.from_pretrained("robbyant/lingbot-va-posttrain-robotwin")
familymodel id
LingBot-VA (5B WAM)robbyant/lingbot-va-posttrain-robotwin
LingBot-VLA-4Brobbyant/lingbot-vla-4b-posttrain-robotwin
LingBot-VLA-V2-6Brobbyant/lingbot-vla-v2-6b-robotwin
pi0.5lerobot/pi05_base · lerobot/pi05_libero_finetuned_v044
GR00T-N1.7-3Bnvidia/GR00T-N1.7-3B
Cosmos3 policiesnvidia/Cosmos3-Edge-Policy-DROID · nvidia/Cosmos3-Nano-Policy-DROID
DreamZeroGEAR-Dreams/DreamZero-DROID

Fine-tunes reuse their family’s adapter; quality is evaluated per checkpoint.

The same Runtime defaults to precision="native" with a BITEXACT transformation ceiling. Use tier_ceiling="numeric" to allow numerical changes, or precision="fp8" (CLI: --fp8) to explicitly enable FP8. Step schedules are selected separately. See precision policy and FP8 support and validation.

DreamZero’s opt-in dynamic step cache requires tier_ceiling="behavioral" with either precision. See the Thor measurements.

Get actions

In process — this is the whole Python API:

with runtime.episode(prompt="put the bottle in the dustbin") as episode:
    while not done:
        result = episode.predict(observation)
        action = result["action"]

observation is a dict in the model’s own format; result["action"] contains its action array. For LingBot-VA, pass executed_action=... when the controller changes a predicted action chunk, so the next prediction uses the actions actually executed.

Over the network — the serve command above hosts the same runtime behind the msgpack-over-websocket wire protocol the pi0/openpi ecosystem already speaks, so existing robot-side clients connect unchanged (pip install openpi-client):

from openpi_client.websocket_client_policy import WebsocketClientPolicy

client = WebsocketClientPolicy("my-server", 8000)
result = client.infer(observation)
action = result["action"]

The prompt rides in the observation; a changed prompt starts a new episode, and a client can say it explicitly with {"reset": True, ...}. Four flags cover the rest:

  • --serve.dry_run — preflight only: device, declaration, plan. No weights, no GPU.
  • --serve.smoke — load, produce one action, exit.
  • --serve.seed — seed native execution for paired comparisons; FP8 serving rejects this option.
  • --serve.viz — stream observations, actions and latency to a Rerun viewer.

The second verb, instinctflash validate <dir>, checks a checkpoint is publishable; given --validate.teacher_outcomes/.student_outcomes/.margin it also certifies non-inferiority and stamps the certificate into the package.

Benchmark acceleration and quantization

After the vendor and auxiliary-asset preparation, reproduce paired eager/default/selected Runtime measurements with the included inputs and fixed checkpoint revision. Thor also requires its native backend. Keep the model and asset environments activated. For RTX 4090:

python -I -m benchmarks.regression.reproduce prepare --target rtx4090 \
  --model pi05 --mode fp8 --output pi05-inputs
python -I -m benchmarks.regression.reproduce run --prepared pi05-inputs --output pi05-results
python -I -m benchmarks.regression.serve_smoke --prepared pi05-inputs --output pi05-serving

run writes checked JSON/CSV reports and full action arrays. serve_smoke tests the actual CLI and WebSocket pipeline across two episodes. Use --mode native for default precision; FP8, numerical compilation and changed schedules are explicit selections. Reproduction guide. For additional framework comparisons, use the pinned comparison recipes.

Compare original and optimized models with instinctflash eval. Reports separate latency, action agreement and simulator task success.

instinctflash eval adapters
instinctflash eval coverage --run /path/to/run
instinctflash eval --registry plan.registry.json report --run /path/to/run

See the evaluation guide to create and run paired LIBERO / RoboTwin experiments, or benchmark details for acceleration and quantization protocols. Results: simulator screening and repeatability, checkpoints and edge latency. The expanded V2 evaluation binds latency and quality evidence to execution profiles and checks explicit control budgets. The native qualification workflow adds fresh-start admission, retained failures and checkpoint-specific evidence for each device. LingBot-VA Hub IDs retain native step counts; 2V/4A requires an explicit nfe selection. The September 9 Thor comparison separates native acceleration, FP8 Runtime gains and paired task outcomes; historical engine controls isolate additional implementation effects.

Shared BF16 fusion provides an opt-in NUMERIC path, with per-model compatibility and paired Thor regression results. Shared tensor caching and prefill separation extend native Cosmos optimization to Edge and Nano; exact caching and NUMERIC compilation remain separate options.

Framework overview

InstinctFlash keeps model declarations, optimization planning, runtime execution, and evidence in one inspectable path, whether it is called from Python or the command line.

Architecture

A checkpoint carries a short declaration of what it is. The runtime reads the declaration, decides which optimizations are provably valid for those weights, applies them, and shows its work:

checkpoint ─▶ adapter          ─▶ planner            ─▶ engine passes        ─▶ actions
              declares what        decides what          apply and measure
              the model is         is valid (no GPU,     each optimization
                                   no weights needed)

Optimization is organized in six layers, by what each one changes:

layerchanges
1MODELwhat is computed — distillation, step reduction, checkpoint compression (InstinctCompress, instinct-pdd)
2GRAPHwhen work is issued — prefill extraction, CUDA-graph capture, memory planning
3CACHEwhat is recomputed — KV reuse, cross-attention and episode caches
4ATTENTIONhow tokens mix — FlashAttention, hybrid and linear attention
5KERNELhow a kernel is written — backend and layout dispatch, fusion
6HARDWAREwhat it executes on — fp8/int8, TensorRT, Jetson-class edge devices (serving/)

Layer 1 changes the weights and produces a checkpoint; it lives in the companion repos. Layers 2–6 change how the weights execute and produce a plan; they are the runtime in this repo. The layers are not a priority order — the runtime measures where the time actually goes and starts there.

Add a model

To add your own model family, declare an instinctflash.adapters entry point and pip install your package — see examples/external_plugin/.

Roadmap

  • Few-step distillation, when needed — only after native optimizations miss a declared edge control budget; compare each student with its teacher and the matched untrained schedule using paired closed-loop evaluation.
  • LingBot-VA on the edge engine — native and FP8 serving on Jetson Thor, with paired inference and WebSocket checks for full and 2V/4A schedules.
  • Attention upgrades — a faster NUMERIC-tier attention arm beside the BITEXACT default for pi05-class models; hybrid and linear attention for long-context world models.
  • Cosmos3 and DreamZero on Thor — pinned installation, paired inference and installed CLI/WebSocket checks; task quality remains a separate evaluation.
  • Device-specific serving defaults — measure each family and operating point; select a verified path within the caller’s precision constraints. LingBot-VLA-V2 native Thor capture and LingBot-VA saturation profiling are complete; selective VA action capture showed no speedup and stays experimental. Results and evidence. Execution-bound budget selection is available; the expanded V2 H100 evaluation remains SCREEN.

Similar Articles

Step 3.7 Flash

Product Hunt

Step 3.7 Flash is a fast agents model designed to see and act in real time.

Rewriting model inference with CUDA kernels: the bottleneck was not just GEMM [P]

Reddit r/MachineLearning

Author describes building FlashRT, a CUDA-first inference runtime that rewrites model inference paths with C++/CUDA kernels to address bottlenecks beyond GEMM for small-batch/realtime workloads, achieving significant latency improvements on Jetson Thor and RTX 5090. The article discusses lessons on precision (FP8 helpful, FP4 mixed) and the need to bypass generic runtimes for realtime inference.

FlashDrive: Flash Vision-Language-Action Inference for Autonomous Driving

arXiv cs.AI

FlashDrive is an algorithm-system co-design framework that cuts the inference latency of vision-language-action models for autonomous driving by 4.7× (from 717 ms to 151 ms on a single GPU) using streaming KV-cache reuse, non-autoregressive diffusion drafting, and adaptive step caching, with negligible accuracy loss.