It uses what the machine has
By default the engine looks at the machine and takes the fastest device it finds: an NVIDIA GPU, then any other GPU, then the processor. A model too large for one device is spread over what there is. This page says what runs where, and what we have measured ourselves.
What it runs on
Each card says how far we have got: measured by us, built but not yet measured on that hardware, or planned.
NVIDIA GPUs
The engine's own kernels. Needs the NVIDIA driver and nothing else.
Measured on an RTX 3050. Built for the other generations, which we have not yet measured ourselves.
AMD, Intel and Apple GPUs
Through Direct3D 12, Vulkan or Metal. The engine asks the system how much memory the GPU has, places as many layers on it as fit, and runs the rest on the processor.
Run on our test machine on an NVIDIA and an Intel GPU through Direct3D 12, with the same answers as the processor gives; Gemma 4 E2B wrote 24.7 tokens a second this way on the RTX 3050. Not yet measured on AMD, Intel Arc or Apple hardware.
The processor
When there is no GPU, or for the part of a model the GPU cannot hold.
Measured on an Intel Core i5-13420H. On ARM processors, Apple silicon included, the engine runs but has no tuned kernels yet, and is several times slower there.
Several GPUs in one machine
One model shared across them, each holding as much as its memory allows.
Run on our test machine with one model split across an NVIDIA and an Intel GPU, with the same answers. Not yet measured on a machine with several fast GPUs.
Several machines
One model across machines on the same network: each lends its GPUs, one coordinates.
Built and tested on one machine. Not yet measured across real machines.
NPUs
Neural processors in recent laptops.
Not supported yet.
veymeer doctor shows the figure for each GPU.
veymeer devices shows what the engine finds on yours, and veymeer bench measures it.
Operating systems
The engine is one self-contained program on each system. On an NVIDIA GPU it needs the graphics driver and nothing else: no CUDA toolkit, no Python, no runtime to install.
- Windows 10 and 11, x64MeasuredBuilt and measured.
- Linux, x64PlannedIn preparation. Not yet verified on a real machine.
- macOS, Apple siliconPlannedIn preparation. Not yet verified on a real machine.
Where would a model live on your machine?
The engine fills the GPU first, then system memory, then reads the remainder from disk. Pick a machine and a model to see the split it would choose.
Fits the GPU
The whole model and its conversation cache are on the GPU. This is the case the benchmarks measure.
An estimate, for an NVIDIA GPU, from the model's file size and the context length. On other GPUs the layers that do not fit run on the processor instead of waiting in memory. Other programs using the GPU change it. On your machine, veymeer doctor and the engine's log say what it actually did.
As much as fits
The engine first makes room: fewer conversations side by side, then a more compact conversation cache. It says in its log when it does.
What does not fit waits next door
The remaining layers are held in system memory and brought to the GPU as each pass reaches them. A few layers cost a few percent; many cost more.
Larger than memory, too
What system memory cannot hold stays in the model's file and is read ahead of each pass, at the disk's speed, without taking the rest of the machine's memory.
Several machines, one model
Machines on the same network can run one model together: each lends its GPUs, and the one that serves the API coordinates. The machines need not match.
-
Lend a machine
On each machine that joins,
veymeer node --beaconprints a join key and lets a coordinator find it on the local network. -
Serve from one
On the machine that answers,
veymeer serve --discover --cluster-key KEYfinds the others and spreads the model over them. -
Carry on
A node that lacks the model file is sent it once. If a node stops answering, the others take over its share and running conversations continue.
Find out what your machine does
veymeer doctor checks the processor, the GPUs, the models and the port, and says what would stop the engine before it does.