# NPU runtime bundle — Hexagon v81 (Snapdragon 8 Elite Gen 5) Prebuilt **llama.cpp** binaries + Hexagon HTP backend, so a Snapdragon 8 Elite Gen 5 device can run `sahayak-gemma-Q4_0.gguf` on the **Hexagon NPU** without compiling anything. ## Contents - `bin/llama-cli`, `bin/llama-completion` — llama.cpp CLIs (Android arm64) - `lib/*.so` — ggml/llama runtime, including: - `libggml-hexagon.so` — Hexagon (HTP) backend - `libggml-htp-v81.so` — HTP device library for **Hexagon v81** (Snapdragon 8 Elite Gen 5 / SM8850) - `libggml-opencl.so` — Adreno GPU backend (fallback) - `run-npu.sh` — one-line launcher ## Build provenance - Source: [ggml-org/llama.cpp](https://github.com/ggml-org/llama.cpp) build **b9966**, **MIT License** - Cross-compiled with the `arm64-android-snapdragon-release` preset (`GGML_HEXAGON=ON`, `GGML_OPENCL=ON`) via the `ghcr.io/snapdragon-toolchain/arm64-android` image (Android NDK r29 + Hexagon SDK 6.6 + OpenCL SDK). ## Verification On a OnePlus 15 (SM8850, Hexagon v81), llama.cpp assigned **all 33 model layers to `HTP0` (Hexagon)** — i.e. the model executes on the NPU, not the CPU. (`llama_prepare_model_devices: using device HTP0 (Hexagon)` / `load_tensors: layer N assigned to device HTP0`.) ## Device scope These `.so` files are specific to **Hexagon v81**. Other Snapdragon generations need the matching `libggml-htp-v{73,75,79,...}.so` — rebuild llama.cpp with the Snapdragon preset for your chip. ## License llama.cpp binaries: **MIT** (© ggml-org / llama.cpp contributors). The model weights (`sahayak-gemma-Q4_0.gguf`) are separate and governed by the **Gemma Terms of Use**.