CSC -> CMAC consume-arm: a per-power-session resource with no register footprint, below what black-box probing can reach. An independent RK3568 bring-up reaches a matching engaged-but-empty wall; an open-stack RK3588 effort runs multi-op fp16 matmul and LLM prefill through the same driver, cross-confirming five findings. We publish the full ledger, two upstreamable bugs, and the conditions that would reopen it." />
CSC -> CMAC consume-arm: a per-power-session resource with no register footprint, below what black-box probing can reach. An independent RK3568 bring-up reaches a matching engaged-but-empty wall; an open-stack RK3588 effort runs multi-op fp16 matmul and LLM prefill through the same driver, cross-confirming five findings. We publish the full ledger, two upstreamable bugs, and the conditions that would reopen it." />
CSC -> CMAC consume-arm: a per-power-session resource with no register footprint, below what black-box probing can reach. An independent RK3568 bring-up reaches a matching engaged-but-empty wall; an open-stack RK3588 effort runs multi-op fp16 matmul and LLM prefill through the same driver, cross-confirming five findings. We publish the full ledger, two upstreamable bugs, and the conditions that would reopen it." />
Bringing Up the RK3576 NPU on Mainline Linux: A Byte-Exact Single-Task Path and a Falsification-First Negative Result on Chained-Task Compute | Zenodo
Skip to main
You are using an outdated browser. Please upgrade your browser to improve your experience.
Published July 2026
| Version v1
Preprint
Open
Bringing Up the RK3576 NPU on Mainline Linux: A Byte-Exact Single-Task Path and a Falsification-First Negative Result on Chained-Task Compute
Authors/Creators
Hu, Jiaxing1
Show affiliations
1.
Independent
Description
The Rockchip RK3576 ships a 6 TOPS NPU whose only fully open software stack is the mainline drivers/accel/rocket driver plus the Mesa Teflon delegate, byte-perfect on the sibling RK3588, yet all-zero on the RK3576. Positive: after root-causing an int8 requantization error (rescale multiplier emitted at Q14 where the hardware consumes Q4, a 2^10 over-scale saturating every output), a single int8 convolution is byte-exact against a CPU reference. Negative (the main contribution): any job with more than one task computes exactly one, the first after the NPU power domain resumes; each later task engages its units, DMAs real input, and advances the sequencer, yet its multiply-accumulate never commits (measured for int8; whether fp16 escapes the wall is argued from mechanism, not yet measured). Under a falsification-first rule we drive the chain through three dispatch mechanisms and refute every software-observable cause: dispatch grammar, the full register write set, config geometry, buffer/cache/IOMMU state, clock/power, and firmware. The vendor's closed stack, on the same kernel, chains dozens of tasks per session, matching every write we make. Our best-supported localization is the on-chip CBUF -> CSC -> CMAC consume-arm: a per-power-session resource with no register footprint, below what black-box probing can reach. An independent RK3568 bring-up reaches a matching engaged-but-empty wall; an open-stack RK3588 effort runs multi-op fp16 matmul and LLM prefill through the same driver, cross-confirming five findings. We publish the full ledger, two upstreamable bugs, and the conditions that would reopen it.
Files
rk3576-npu.pdf
Files<br>(503.7 kB)
Name<br>Size
Download all
rk3576-npu.pdf
md5:994a88f6da029c14270c0e799e61b411
430.4 kB
Preview
Download
rk3576-npu.tex
md5:cb6c814fc4ec387cb4703de820249345
73.3 kB
Download
Additional details
Related works
Is supplemented by
Software:
https://github.com/gahingwoo/linux-rk3576-npu
(URL)
Other:
https://gahingwoo.github.io/posts/rk3576-npu-mainline/
(URL)
31
Views
Downloads
Show more details
All versions<br>This version
Views
Total views
31
31
Downloads
Total downloads
Data volume
Total data volume
0 Bytes<br>0 Bytes
More info on how stats are collected....
Versions
External resources
Indexed in
OpenAIRE
Communities
Keywords and subjects
Keywords
RK3576
NPU
mainline Linux
rocket driver
reverse engineering
int8 quantization
hardware accelerator
falsification
requantization
RKNN
Details
DOI
DOI Badge
DOI
10.5281/zenodo.21348017
Markdown
[](https://doi.org/10.5281/zenodo.21348017)
reStructuredText
.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.21348017.svg<br>:target: https://doi.org/10.5281/zenodo.21348017
HTML
Image URL
https://zenodo.org/badge/DOI/10.5281/zenodo.21348017.svg
Target URL
https://doi.org/10.5281/zenodo.21348017
Resource type<br>Preprint
Publisher<br>Zenodo
Rights
License
Creative Commons Attribution 4.0 International
The Creative Commons Attribution license allows re-distribution and re-use of a licensed work on the condition that the creator is appropriately credited.
Read...