vla.cpp
A unified inference runtime for VLA models.
vla.cpp
A C plus plus inference runtime for Vision-Language-Action models built on llama.cpp, running open VLA policies as single GGUF files on CPU, Apple Silicon, CUDA or Intel GPUs.
What it is
vla.cpp is a C++ inference engine for Vision-Language-Action (VLA) models built on llama.cpp. It runs open VLA policies such as SmolVLA, pi0, BitVLA, Evo-1 and GR00T N1.5, N1.6 and N1.7 under one runtime, each packaged as a single self contained GGUF that needs no Python or PyTorch at inference time. The binaries drive robots on CPU, Apple Silicon, CUDA from consumer GPUs down to Jetson class boards, or Intel GPUs via SYCL.
Build and prerequisites
Building requires CMake 3.22 or newer, a C++17 compiler such as GCC 11 or Clang 14, optional CUDA 12.x for GPU builds, optional Intel oneAPI 2025 for Intel GPU builds, and the dev packages libzmq3-dev, cppzmq-dev, libprotobuf-dev and protobuf-compiler. CMake fetches and pins llama.cpp automatically with no patch or submodule, and a CUDA architecture table maps GPU families to values such as 86 for Ampere consumer, 89 for Ada Lovelace, 90 for Hopper and 120 for Blackwell consumer.
Quickstart
vla-cli runs a single prediction without a server or simulator: it fetches a checkpoint with -hf from Hugging Face, takes an image and a text instruction such as pick up the black bowl, and prints the action chunk, which is handy for smoke testing a GGUF or scripting quick inference. There is no tokenizer in the C++ core, so --text calls a Python tokenize script with the architecture's tokenizer, while --tokens can pass ids directly and --pretty prints one action row per line. The project is Apache-2.0 with models on Hugging Face and an arXiv reference.
Editorial conclusion
vla.cpp is Apache-2.0 licensed and reported one hundred sixty three stars at indexing, with an arXiv paper linked and documentation covering CPU, CUDA, Apple Silicon, WSL2 and Intel GPU backends.
Community notes