A new llama.cpp prerelease expands convolution support on Snapdragon neural processing units. Developers running speech models on devices can test offloading feature extraction computations to this hardware.
1. Two feature extraction operations added to Hexagon
Released on October 28, 2026, b11970 adds standard and depthwise convolutions to the Hexagon backend for Snapdragon neural processing units. Convolution extracts features by scanning small regions of input. Channels are separate groups of feature data. Standard convolution combines information across channels, while depthwise convolution processes each channel separately.
The source code names these operations CONV_2D and CONV_2D_DW. Their addition expands the options for running these model computations directly on Hexagon. The review also includes an example of running a complete speech model with the new operations.
Standard convolution uses Hexagon's HMX matrix engine, preparing input in small batches for matrix multiplication. Depthwise convolution has a separate vector computation path tailored to the input's memory layout, processing multiple values together.
2. An example running from audio input to response
A reviewer of the pull request shared a command for transcribing speech with LFM2.5-Audio-1.5B-Q4_0. It uses a 4-bit quantized model, which reduces size by lowering numerical precision, and a 32K context. The main model and the audio input projection model, which adapts audio information to the input format, run on separate compute devices.
The command below is copied exactly from the review comment. Developers can use it to examine how the new operations are used in a full run that takes an audio file and generates a response.
./scripts/snapdragon/run.py --target adb --devices 2 -- ./bin/llama-cli -m ../gguf/LFM2.5-Audio-1.5B-Q4_0.gguf --mmproj ../gguf/mmproj-LFM2.5-Audio-1.5B-Q4_0.gguf --audio ../test-images/sample-speech-1m.wav -p "Please transcribe the audio for me." --device HTP0 --mmproj-device HTP1 -c $((32*1024)) -ngl 99 --jinja -sBelow are the speeds the reviewer recorded for two stages of the same run. The source is a review comment on the pull request.
Table: Speech model throughput by stage
Conditions: Same review run as the command above. LFM2.5-Audio-1.5B-Q4_0, main model on HTP0 and projection model on HTP1, 32K context, sample-speech-1m.wav input
Unit: tokens/second
| Stage | Speed |
|---|---|
| Input processing (Prompt) | 162.8 |
| Generation | 73.9 |
The reviewer said the new convolution operations looked good, but matrix multiplication (MUL_MAT) and the operation that makes data contiguous in memory (CONT) needed further optimization. This example therefore points developers toward checking not just convolution support, but also the time spent on other operations across the model.
3. Operation validation and platform-specific installation
The pull request author reported testing on v73, v75, and v81 Android devices. The reported backend operation test results were 1021 passes out of 1021 tests. A backend is the execution component handling operations on each device. In addition to operation-level validation, the earlier speech run provides an example of a complete model working.
The release page provides separate Snapdragon builds for Linux arm64 and Android arm64. Both packages are listed as supporting the CPU, Adreno GPU, and Hexagon NPU. Each download has a link to setup instructions for its platform.
Users can select the package and instructions for their operating system, then use the review's speech example to test model placement. The release is marked as a prerelease, so its distribution status is another point to check during adoption.
4. Managing memory as execution support expands
Offloading convolution to Hexagon comes with the cost of preparing data for computation. The implementation allocates temporary memory for inputs, weights, and outputs, splitting work to fit the device's internal memory. Weights are multiplication coefficients learned by the model. Before storing HMX results in 16-bit half precision, it scales them down based on the maximum absolute weight and the number of terms in the multiplication. It restores the original scale when unpacking them into 32-bit output. This prevents intermediate results from exceeding the range that half precision can represent. Developers therefore need to examine not just operation support, but full execution, including data preparation and movement.
5. Applicable models and the scope of the measurements
Supported floating-point data types, which represent fractional values, are 16-bit or 32-bit for weights and 32-bit for inputs and outputs. Alongside data layout requirements, depthwise convolution requires the product of filter width and height to be no greater than 64.
The review's speeds come from a single run without chipset details, an operating system version, a repetition count, or comparison figures for an earlier version. They are better read as an example of this speech model running than as a measure of improvement under matched conditions.
The key change in b11970 is broader convolution execution on Hexagon, and the next criterion for adoption is the overall processing performance of the intended model.
