VLA-HWBench: Where the Time Goes When VLA Models Run on Edge Hardware
Organizations: National University of Singapore
Abstract
Vision-language-action (VLA) models increasingly run on edge devices aboard robots, where inference latency constrains closed-loop robot control. However, it remains unclear how to design VLA models, their inference software and edge hardware so that robots can run VLA inference in real time. Most VLA models report only task success, while prior studies cover limited action-generation strategies, divide inference into at most three stages, and lack comparisons of inference optimizations on the same models. Therefore, we introduce VLA-HWBench, a benchmark that measures 18 open VLA models on NVIDIA Jetson AGX Thor and AMD Ryzen AI Max+ PRO 395, with a seven-stage inference breakdown. Our study reveals three insights. First, action-generation strategy matters more than model size. It dominates 14 of 19 Jetson configurations, latency varies by on Jetson and on AMD, and parameter count explains at most 15% of latency variance. Models that generate long action chunks in a few flow-matching steps keep up with control, whereas token-by-token decoding does not. Second, kernel fusion with 4-bit weights helps most, running and GR00T N1.7 2.6-2.9 faster than PyTorch with torch.compile, but it exists for only these two models and only on the Jetson. Optimization also moves the time to the stages it shortens least, as CPU preprocessing grows from 12% to 39% of the GR00T N1.7 call. Third, after optimization, memory bandwidth limits only the stages that process few tokens on the Jetson, such as the denoising steps, whereas software limits all other stages, from unfused kernels to serial preprocessing on the host CPU. Overall, low-latency edge VLAs should use few action-generation iterations, inference software should extend kernel fusion and low-bit weights to more models and platforms, and edge hardware needs high memory bandwidth and a fast host CPU.
Figures & tables
| Study | Models | Forms | Measured | Non-NVIDIA | Stages | CPU | Backend | Low-bit | Real |
|---|---|---|---|---|---|---|---|---|---|
| edge | prep. | input | |||||||
| Taherin et al. | 5 | 2 | ✓ | ✗ | – | ✗ | ✗ | ✗ | ✗ |
| Zhou et al. | 5 | 2 | ✓ | ✓ | 3 | ✗ | ✗ | ✓ | ✗ |
| Vishwanathan et al. | 1 | 1 | ✓ | ✗ | 3 | ✗ | ✗ | ✗ | ✗ |
| VLA-Perf | – | 3 | ✗ | ✗ | 3 | ✗ | ✗ | ✗ | ✗ |
| VLA-HWBench | 18 | 4 | ✓ | ✓ | 7 | ✓ | ✓ | ✓ | ✓ |
| Action generation | Model | Params (B) | Weights | Action chunk |
| Flow matching | X-VLA ( Zheng et al., 2026 ) | 0.88 | BF16 | 30 |
| GR00T N1.7 ( Bjorck et al., 2025 ) | 3.14 | BF16 | 16 | |
| SmolVLA † ( Shukor et al., 2025 ) | 0.45 | BF16 + FP32 | 50 | |
| InstructVLA ( Yang et al., 2026a ) | 2.60 | BF16 + FP32 | 8 | |
| † ( Black et al., 2025a ) | 4.14 | BF16 + FP32 | 50 | |
| NORA-1.5 ( Hung et al., 2025 ) | 3.99 | BF16 | 5 |
| Jetson AGX Thor (T5000) | Ryzen AI Max+ PRO 395 | |
|---|---|---|
| GPU | Blackwell, 2560 CUDA cores, 1.57 GHz | RDNA 3.5, 40 CUs, 2.9 GHz |
| CPU | 14 Neoverse-V3AE cores, 2.6 GHz | 16 Zen 5 cores, 5.1 GHz |
| Memory | 128 GB LPDDR5X, 273 GB/s | 128 GB LPDDR5X-8000, 256 GB/s |
| FP16 / FP32 (TFLOP/s) | 258 / 8.1 | 59.4 a / 29.7 a |
| FP8 / FP4 (TFLOP/s) | 517 / 1035 | – |
| Power | 40–130 W | 45–120 W |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Action generation | Model | Software | Views | ||
| Flow matching | X-VLA | authors’ code | 2 | 30 | 30 |
| GR00T N1.7 | authors’ code | 2 | 16 | 8 | |
| SmolVLA | LeRobot 0.6.1 | 3 | 50 | 50 | |
| InstructVLA | authors’ code | 2 | 8 | 8 | |
| LeRobot 0.6.1 | 2 | 50 | 50 | ||
| NORA-1.5 | authors’ code | 1 | 5 | 5 |
| Model | Code repository (stars) | LIBERO checkpoint | Downloads |
| X-VLA | 2toinf/X-VLA (733) | 2toINF/X-VLA-Libero | 12,303 |
| GR00T N1.7 | NVIDIA/Isaac-GR00T (8,130) | nvidia/GR00T-N1.7-LIBERO | – |
| SmolVLA | huggingface/lerobot (27,783) | lerobot/smolvla_libero | 68,467 |
| InstructVLA | InternRobotics/InstructVLA (117) | ShuaiYang03/instructvla_pretraining_v2_libero_10_wrist-image_aug | 220 |
| Physical-Intelligence/openpi (13,997) | lerobot/pi05_libero_finetuned_v044 | 174,582 | |
| NORA-1.5 | declare-lab/nora-1.5 (109) | declare-lab/nora-1.5-libero | 109 |
| Stage | Work | Unit | Measured by |
|---|---|---|---|
| S0 Preprocessing | resize, normalize, tokenize | CPU | timer |
| S1 Host-to-device | copy the inputs | copy engine | timer |
| S2 Vision encoding | images to tokens | GPU | timer or kernel trace |
| S3 Prefill | language model, key–value cache | GPU | timer or kernel trace |
| S4 Action generation | denoising steps or decoded tokens | GPU | timer, step sweep or kernel trace |
| S5 Postprocessing | unnormalize, copy back | CPU | timer |
| Jetson AGX Thor | Ryzen AI Max+ PRO 395 | ||||||
|---|---|---|---|---|---|---|---|
| Model | – | Per action | – | Per action | AMD / Jetson | ||
| X-VLA | 76.7 | 75.8–78.8 | 2.6 | 206 | 206–209 | 6.9 | 2.69 |
| VLA-Adapter | 92.7 | 72.8–102 | 11.6 | 114 | 113–115 | 14.2 | 1.23 |
| GR00T N1.7 | 119 | 111–126 | 7.4 | 297 | 296–300 | 18.6 | 2.50 |
| SimpleVLA-RL | 129 | 120–135 | 16.1 | 446 | 444–449 | 55.7 | 3.46 |
| SmolVLA | 191 | 187–195 | 3.8 | 140 | 140–142 | 2.8 | 0.73 |
| Model | S0 | S1 | S2 | S3 | S4 | S5 | S6 | Total |
|---|---|---|---|---|---|---|---|---|
| X-VLA | 6.0 | 0.9 | 19.1 | 51.7 | 0.1 | 0.4 | 78 | |
| VLA-Adapter | 22.8 | 0.8 | 27.0 | 20.8 | 21.7 | 2.4 | 0.8 | 96 |
| GR00T N1.7 | 14.2 | 1.0 | 19.6 | 19.4 | 67.7 | 0.2 | 1.2 | 123 |
| SimpleVLA-RL | 20.1 | 0.9 | 23.5 | 85.7 | 2.2 | -3.0 | 129 | |
| SmolVLA | 4.3 | 20.9 | 15.0 | 146.6 | 0.1 | 0.2 | 187 | |
| InstructVLA | 9.6 | 24.8 | 36.2 | 149.1 | 17.5 | 0.7 | 238 |
| Model | S0 | S1 | S2 | S3 | S4 | S5 | S6 | Total |
|---|---|---|---|---|---|---|---|---|
| X-VLA | 2.8 | 0.4 | 51.5 | 154.3 | 0.1 | 0.1 | 209 | |
| VLA-Adapter | 5.9 | 0.3 | 60.2 | 29.7 | 15.8 | 1.8 | 0.1 | 114 |
| GR00T N1.7 | 2.4 | 0.9 | 98.6 | 49.6 | 145.3 | 0.1 | 0.7 | 298 |
| SimpleVLA-RL | 3.3 | 0.3 | 32.7 | 408.4 | 1.0 | -0.0 | 446 | |
| SmolVLA | 0.7 | 40.8 | 10.9 | 87.5 | 0.1 | 0.0 | 140 | |
| InstructVLA | 3.8 | 49.5 | 71.8 | 224.6 | 7.5 | 0.5 | 358 |
| Jetson AGX Thor | Ryzen AI Max+ PRO 395 | ||||||
| Configuration | Swept | (ms) | (ms) | (ms) | (ms) | ||
| Reference configurations | |||||||
| X-VLA | steps | 4.9 | 29 | 0.999 | 15.2 | 56 | 1.000 |
| GR00T N1.7 | steps | 15.7 | 53 | 0.996 | 34.2 | 161 | 1.000 |
| SmolVLA | steps | 14.5 | 41 | 1.000 | 8.6 | 54 | 1.000 |
| InstructVLA | steps | 13.3 | 103 | 1.000 | 19.5 | 163 | 1.000 |
| Model | Jetson AGX Thor | Ryzen AI Max+ PRO 395 |
|---|---|---|
| X-VLA | 3 | 1 |
| VLA-Adapter | 25 | 1 |
| GR00T N1.7 | 15 | 0 |
| SimpleVLA-RL | 10 | 0 |
| SmolVLA | 5 | 0 |
| InstructVLA | 4 | 0 |
| Jetson AGX Thor | Ryzen AI Max+ PRO 395 | |||||
| Optimization | Before | After | Speed-up | Before | After | Speed-up |
| SmolVLA, compile (reduce-overhead) | 191 | 66.4 | 2.88 | 140 | 109 | 1.28 |
| SmolVLA, compile (max-autotune) | 191 | 71.9 | 2.66 | 140 | 77.7 | 1.80 |
| , compile (reduce-overhead) | 405 | 157 | 2.58 | 781 | 682 | 1.14 |
| , compile (max-autotune, shipped) | 405 | 159 | 2.55 | 781 | 442 | 1.77 |
| , compile (max-autotune), FlashRT’s workload | 318 | 128 | 2.48 | 631 | 347 | 1.82 |
| Model | Platform | Mode | (ms) | Speed-up | Traced frames |
| SmolVLA | Jetson | reduce-overhead | 66.4 | 2.88 | 14/17 |
| SmolVLA | AMD | reduce-overhead | 109 | 1.28 | – |
| SmolVLA | Jetson | max-autotune | 71.9 | 2.66 | – |
| SmolVLA | AMD | max-autotune | 77.7 | 1.80 | – |
| Jetson | max-autotune (shipped) | 159 | 2.55 | – | |
| AMD | max-autotune (shipped) | 442 | 1.77 | – |
| Cosine similarity | Max | ||||
|---|---|---|---|---|---|
| Optimization | Platform | min | median | optimized | repeated calls |
| , FlashRT FP16 FP8 | Jetson | 0.99839 | 0.99938 | 0.124 | 0.059 |
| , FlashRT FP16 NVFP4 | Jetson | 0.93429 | 0.99812 | 0.677 | 0.096 |
| GR00T N1.7, FlashRT FP16 FP8 | Jetson | 0.99986 | 0.99993 | 0.033 | 0.003 |
| GR00T N1.7, FlashRT FP16 NVFP4 | Jetson | 0.99974 | 0.99986 | 0.047 | 0.003 |
| X-VLA, FP32 BF16 | Jetson | 0.99999 | 0.99999 | 0.004 | 0.004 |
| Configuration | Stage | Format | Time | Ratio | ||||
|---|---|---|---|---|---|---|---|---|
| (ms) | (GFLOP) | (MB) | (ms) | (ms) | ||||
| Jetson, | Vision (S2) | FP8 | 5.66 | 439.7 | 413 | 0.88 | 1.51 | 3.7 |
| Prefill (S3) | NVFP4, FP8 | 15.20 | 2205.4 | 1132 | 2.45 | 4.15 | 3.7 | |
| Action (S4) | FP8 | 1.92 | 7.1 | 322 | 0.02 | 1.18 | 1.6 | |
| Jetson, GR00T N1.7 | Vision (S2) | FP8 | 4.61 | 349.5 | 431 | 0.72 | 1.58 | 2.9 |
| Prefill (S3) | FP8 | 5.12 | 254.4 | 805 | 0.50 | 2.95 | 1.7 |
Efficient VLA Model Inference
Efficient vision-language-action (VLA) model inference reduces robot-control latency, memory use, and energy while preserving task performance.
See all 190 papers