← Back to Blog
RISC-V Development

Axelera Voyager 1.8 Swaps GNU newlib for LLVM 20 on RISC-V: 10x Smaller Wheels, ~10% Faster Small-Model Inference

RISC-V LLVM newlib toolchain Edge-AI Metis

Published: 2026-09-14 · Category: RISC-V Development · Reading time: ~4 min · Status: DRAFT

A toolchain change buried in a release note

Voyager SDK 1.8 shipped on 8 September 2026, and the single most consequential line in the announcement reads like housekeeping: LLVM 20 replaces GNU newlib on Axelera's on-chip RISC-V toolchain.

It is not housekeeping. According to the release write-up, the change takes the Python wheel from roughly 200 MiB down to roughly 20 MiB, returns about 900 MiB of disk space across an installation, and delivers up to ~10% better inference throughput on small, control-bound networks. For a codebase doing nothing more than swapping its C library and compiler, that is an unusually good return.

The mechanism is plausible rather than magical. On an accelerator where the RISC-V cores spend most of their time in control-path code — descriptor setup, loop bookkeeping, operator dispatch — the cost of the runtime library shows up directly in latency. A leaner newlib built by a newer LLVM produces tighter control code, and control-bound models are precisely the ones where that overhead is not hidden behind Tensor Engine compute.

Why control-bound models are the ones that benefit

The stated qualifier — "small, control-bound networks" — is the part to read carefully. A large CNN saturating the array spends its time in the Tensor Engine and will not notice a faster control path. A small model, or a model with many low-arithmetic-intensity operators, spends a larger fraction of wall-clock time in scheduling and data movement. If you are deploying YOLOv8n-class detectors, keyword spotters or lightweight segmentation heads, this is your regime. If you are deploying a large LLM decoder, expect the gain to shrink toward zero.

No benchmark configuration, model list or measurement methodology was published alongside the 10% figure. Treat it as a vendor-reported directional improvement and reproduce it on your own models before you plan capacity around it.

Scheduler: lazy device acquisition

The second change with real operational impact is in the scheduler. Device connection is now lazy — merely referencing the scheduler no longer claims every AI core on the card, and a pipeline with no op.load node never touches the hardware at all.

If you have ever had two scripts fight over cores on a shared workstation, this is the fix. It also means pipelines that are constructed but never executed stop occupying accelerator resources, which matters in CI and in multi-tenant development boxes.

Frame pacing for video inputs

./inference.py yolov8n-coco video.mp4@30 now paces a file as though it were a live camera feed. That sounds minor; it is the difference between a model that looks perfect on a test clip and falls over on a real camera. Pacing a file at a declared frame rate makes the "perfect on video, broken on stream" class of bug reproducible on a desk, without a camera and without guesswork.

Breaking changes you must plan for

Three items will break existing installations, and one of them is not optional:

That last one is the classic upgrade trap: it fails silently in code that does string manipulation on device paths and never actually opens the device.

Also in 1.8

Engineering takeaway

The headline lesson is not about Axelera specifically. It is that on RISC-V-based accelerators, the toolchain is still a performance lever, not just a build detail. If your platform ships a RISC-V control plane, it is worth asking your vendor which C library and compiler version their runtime is built with — and what happens when they change it.

For existing Voyager users: schedule the upgrade as a planned change, not a casual one. Regenerate models, upgrade drivers, and grep your scripts for device-node strings.


Sources

Verification notes