GR00T N1.7 has two hardware profiles: fine-tuning (needs GPU VRAM and compute) and inference/deployment (needs low latency). This guide helps you choose the right hardware for each.
Minimum: 1 GPU with 16 GB+ VRAM, CUDA 12.6+.
The table below summarizes end-to-end inference frequency across tested platforms (GR00T N1.7, 4 denoising steps, 1 camera):
| Platform | VRAM | PyTorch Eager | With TensorRT | Use Case |
|---|---|---|---|---|
| H100 80GB HBM3 | 80 GB | 11.7 Hz | 35.9 Hz | High-frequency control, multi-env batch inference |
| H20 96GB HBM3 | 96 GB | 12.0 Hz | 29.4 Hz | Cost-effective datacenter inference |
| RTX Pro 6000 Blackwell | 96 GB | 12.8 Hz | 35.9 Hz | Workstation inference, development |
| RTX Pro 5000 72GB | 72 GB | 7.9 Hz | 24.7 Hz | Workstation inference |
| L40 | 48 GB | 7.8 Hz | 26.0 Hz | Cloud inference |
| L20 | 48 GB | 7.1 Hz | 23.3 Hz | Cloud inference |
| DGX Spark | 128 GB shared | 7.9 Hz | 10.1 Hz | Desktop edge, prototyping |
| AGX Thor | 128 GB shared | 6.9 Hz | 10.7 Hz | Robot-mounted edge deployment |
| Orin* | 64 GB shared | 2.9 Hz | 4.6 Hz | Legacy Jetson edge |
*Orin uses DiT-only TensorRT (TRT 10.3 does not support the backbone engine). All other platforms use the full TensorRT pipeline.
Which frequency is this? The rates above are the model inference (replanning) rate — how often the policy produces a new action chunk. This is not the same as the robot's action-execution rate or camera-capture rate (both ~30 FPS in the real-world deployment guide). Because each inference returns a multi-step action chunk, a ~10 Hz inference rate can sustain ~30 FPS execution via action chunking + asynchronous inference — you do not need 30 Hz inference to execute at 30 FPS.
- 30+ Hz — high-frequency (H100, RTX Pro 6000 with TensorRT): headroom for reactive, low-latency closed-loop control where sub-30 ms per-step latency matters.
- 10+ Hz — recommended minimum (Thor, Spark with TRT; most dGPUs with torch.compile): sufficient inference rate for typical manipulation tasks (paired with action chunking to reach ~30 FPS execution).
- < 5 Hz (Orin): only suitable for slow, non-reactive tasks. Orin's TRT 10.3 cannot accelerate the backbone — gains are limited to DiT-only mode.
- TensorRT Full Pipeline provides 1.5--3.3x speedup over PyTorch Eager depending on platform. Biggest gains are on datacenter GPUs where backbone acceleration is significant.
- torch.compile is a good zero-effort middle ground (no engine build step), achieving 1.1--1.9x speedup across all platforms.
For full per-component latency breakdown, see the Deployment Benchmark Results.
Minimum: 1 GPU with 40 GB+ VRAM. GR00T N1.7 is a ~3B parameter model (bfloat16).
| Setup | GPUs | VRAM per GPU | Global Batch Size | Notes |
|---|---|---|---|---|
| Quick start / prototyping | 1x H100, L40, or A100 | 40--80 GB | 32 | Single GPU; sufficient for demo datasets |
| Recommended | 4--8x H100 or L40 | 40--80 GB each | 64--640 | Multi-GPU via torchrun; faster convergence |
| Full scale | 8x RTX Pro 6000 or DGX | 96 GB each | 640 | Large datasets, production fine-tuning |
- Default fine-tuning tunes the projector + diffusion action head (not the full LLM backbone), keeping peak VRAM under ~35 GB per GPU.
- Enabling
--tune-llmor--tune-visualsignificantly increases VRAM — 80 GB+ per GPU recommended. --gradient-accumulation-stepscan compensate for fewer GPUs. For example, 4 GPUs with 8 accumulation steps and per-GPU batch of 8 gives an effective global batch size of 256.- Limited VRAM? Trade micro-batch size for accumulation steps: activation memory scales with the per-GPU micro-batch (
GLOBAL_BATCH_SIZE / NUM_GPUS), while the optimization itself depends only on the effective batch (GLOBAL_BATCH_SIZE × GRADIENT_ACCUMULATION_STEPS). For example,GLOBAL_BATCH_SIZE=8 GRADIENT_ACCUMULATION_STEPS=4 bash examples/finetune.sh ...optimizes with the same effective batch of 32 as the single-GPU default, at a fraction of the activation memory (at some throughput cost). Model weights, gradients, and optimizer state are unaffected by this trade. - Reduce
--num-shards-per-epochif host memory (not VRAM) is limited — this controls how much dataset is preloaded into RAM.
| Requirement | Version |
|---|---|
| Python | 3.12 (dGPU, Thor, Spark) / 3.10 (Orin) |
| CUDA | 12.6+ (dGPU, Orin) / 13.0 (Thor, Spark) |
| PyTorch | 2.7+ |
| OS | Ubuntu 22.04+ (dGPU), JetPack 6.2 (Orin), Ubuntu 24.04 (Thor, Spark) |
| Package manager | uv (recommended) |
Platform-specific installation instructions: see the Deployment Guide.
For development, small-scale fine-tuning, and edge deployment:
| Component | Recommendation |
|---|---|
| Training | 1--4x L40 (48 GB) or RTX Pro 5000/6000 workstation |
| Edge Deployment | Jetson AGX Thor Developer Kit (128 GB shared memory, Blackwell GPU) |
| Storage | 500 GB+ SSD (datasets + checkpoints) |
For production fine-tuning and high-throughput inference:
| Component | Recommendation |
|---|---|
| Training | DGX with 8x H100/B200, or RTX Pro Server with 8x RTX Pro 6000 Blackwell |
| Inference Server | H100 or H20 node with TensorRT Full Pipeline (35+ Hz per GPU) |
| Edge Deployment | Jetson AGX Thor or DGX Spark |
| Storage | Scalable networked storage (NFS/S3) for large-scale datasets |
