Neodragon on Snapdragon 8 Elite (SM8750) β QNN context binaries
Pre-compiled QAIRT / QNN context binaries for the Neodragon autoregressive text-to-video pipeline, targeting the Hexagon HTP v79 NPU in the Samsung Galaxy S25 Ultra (SM8750).
These are the exact artefacts the companion Android app loads at runtime. They are
device-specific: compiled for soc_model 69 / HTP v79. They will not load on a
v75 or earlier Hexagon.
Contents
13 binaries. The three mmdit_*fs graphs replace the older mmdit_s0g/s1f/s2f, which may still be present for rollback.
| file | bytes | role |
|---|---|---|
mmdit_s0fs_v79.bin |
1,525,163,128 | Pyramidal MMDiT, stage 0 (408 tokens) |
mmdit_s1fs_v79.bin |
1,533,523,064 | Pyramidal MMDiT, stage 1 (648 tokens) |
mmdit_s2fs_v79.bin |
1,573,344,888 | Pyramidal MMDiT, stage 2 (1728 tokens) |
quicksrm2x_v79.bin |
377,880 | QuickSRNet Medium 2x, 320x512 -> 640x1024 |
ctxadaptfp16_v79.bin |
260,531,784 | Context adapter (FP16) |
distilt5f_v79.bin |
260,050,504 | DistilT5 text encoder |
vaeenc_v79.bin |
41,667,768 | Causal video VAE encoder |
vaedecsn_v79.bin |
12,104,632 | Causal video VAE decoder (streaming, NHWC states) |
clipl_v79.bin |
233,993,824 | CLIP L (first-frame path) |
cliplp_v79.bin |
249,451,112 | CLIP L with projection (video path, pooled) |
clipg_v79.bin |
1,402,277,416 | CLIP G |
ssd1bunet_v79.bin |
1,358,184,480 | SSD-1B UNet (LCM, 4 steps) |
ssd1bvaedec_v79.bin |
85,467,216 | SSD-1B VAE decoder |
The
*fsMMDiT binaries supersedemmdit_s0g/s1f/s2f. They contract the attention score once at full width instead of as two half-width MatMuls plus an add. That is arithmetically identical in fp32 (126 dB against the stock model) but avoids quantising two large, partially-cancelling terms separately -- worth +10.9 / +12.2 / +12.0 dB, and it puts every stage past its paper target for the first time. Accelerator cycles fall 4.4% as well.
Byte sizes are load-bearing: the app verifies every download by exact length. Large transfers to this device have silently truncated more than once while reporting success.
Quantization and measured accuracy
All graphs are W8A16 (per-channel 8-bit weights, 16-bit activations) except the context adapter, which is FP16. Deploy SNR is measured on device against the fp32 reference, per module:
| module | measured | paper target |
|---|---|---|
| DistilT5 | 49.04 dB | β |
| VAE encoder | 41.60 dB | 40 |
| VAE decoder | 34.27 dB | 35 |
| MMDiT stage 0 | 39.67 dB | 29 |
| MMDiT stage 1 | 37.80 dB | 22 |
| MMDiT stage 2 | 33.89 dB | 24 |
| SSD-1B UNet | 32.51 dB | β |
| QuickSRNet | not yet measured | 48 |
QuickSRNet here is W8A16 + CLE. The paper uses W8A16 + AdaRound and credits AdaRound with "7+ dB SQNR" on this module, so expect it to land below 48 dB.
Measured latency (S25 Ultra, on device)
Prompt -> 49-frame video: 23.5-26.9 s (measured before the *fs rebuild).
Prompt -> single 640x1024 image: 2.1-2.5 s warm, ~5 s on the first tap of a
cold app. Peak app RSS 238-268 MB (binaries are mmap'd, never heap-copied).
Usage
The app fetches each file from <baseUrl>/<name>_v79.bin and places it in its external
files dir. For this repo:
https://huggingface.co/AbrahamPJ/neodragon-npu-s25u/resolve/main
This repo is private; the download path sends an Authorization: Bearer <hf_token>
header. Use a fine-grained, read-only token scoped to this repo.
Provenance and license
Converted from Qualcomm-AI-Research/Neodragon, which is released under BSD-3-Clause-Clear. That license governs these derived artefacts, and its terms β including the patent clause β carry over. Original work and weights are Qualcomm's; this repo contains only a device-specific recompilation.
Paper: Neodragon, arXiv:2511.06055.
Conversion toolchain: QAIRT SDK 2.49.0.260730 (qnn-onnx-converter β
qnn-context-binary-generator). The QAIRT SDK itself is not redistributed here.
Port and conversion work: T2V_NPU.