Bringing Up the RK3576 NPU on Mainline Linux: A Byte-Exact Single-Task Path

giuliomagnifico1 pts0 comments

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

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.21348017.svg)](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...

zenodo rk3576 https task mainline power

Related Articles