Open-Source Rockchip RK3576 NPU Driver Achieves Byte-Exact Single-Task Performance, Hits Multi-Task Barrier
Key Takeaways
- ▸Single int8 convolution now byte-exact on RK3576 NPU after fixing rescale multiplier quantization bug
- ▸Multi-task chaining is completely broken—only first task executes, despite successful dispatch and data loading for subsequent operations
- ▸Exhaustive software testing ruled out dispatch, registers, config, buffers, IOMMU, clocks, and firmware as root causes
Summary
Researchers have successfully implemented an open-source Linux driver for the Rockchip RK3576 SoC's 6 TOPS NPU, achieving byte-perfect accuracy on single-task int8 convolution operations after fixing a critical int8 requantization bug (a rescale multiplier emitted at Q14 instead of Q4, causing 2^10 over-scaling). The driver builds on Mesa's Teflon delegate and mainline Linux rocket driver, matching accuracy achieved on the sibling RK3588.
However, multi-task workloads remain completely non-functional—only the first task executes correctly after NPU power-on. Subsequent tasks successfully dispatch, load data, and advance the sequencer, yet their multiply-accumulate operations produce zero output. Through exhaustive falsification-first testing (dispatch grammar, register writes, config, buffers, IOMMU, clocks, and firmware), the team ruled out all software-observable causes. The likely culprit is a hardware resource with no register footprint in the on-chip memory path (CBUF → CSC → CMAC), unreachable through black-box probing alone.
The vendor's closed-source driver chains dozens of tasks per session on identical hardware and kernel, confirming the issue is hardware-level. Independent implementations on RK3568 and RK3588 cross-verified findings, with the latter successfully running multi-op fp16 matrix multiplication and LLM prefill—suggesting the bug is specific to RK3576. The team published the full diagnostic ledger, two upstreamable bugs, and conditions needed to reopen the multi-task path.
- Likely culprit is hardware-level resource in on-chip memory path (CBUF/CSC/CMAC) with no register footprint
- Vendor's closed-source driver works correctly, confirming issue is hardware-specific not driver-level
- Successful multi-task execution on RK3588 demonstrates driver is sound for other Rockchip SoCs
Editorial Opinion
This is exemplary technical work demonstrating both the promise and peril of open-source AI hardware support. The team's falsification-first methodology and cross-platform verification (RK3568, RK3576, RK3588) represent rigorous engineering. Yet the inability to fix multi-task chaining without vendor cooperation exposes a critical gap: without hardware documentation or cooperation, even skilled teams hit walls in hardware-level debugging. For Rockchip, providing register documentation for the on-chip memory subsystem or releasing updated firmware would unlock significant value in the open-source ecosystem.



