Reverse-Engineered Rockchip NPU Driver Hitting Same Performance As Proprietary Driver
Open-source developer Tomeu Vizoso recently began the effort of creating an open-source, reverse-engineered driver for the Rockchip NPU found in some of the latest Rockchip SoCs. After succeeding at open-source NPU driver support for the VeriSilicon NPU IP, Vizoso took up the challenge of working on Rockchip NPU support. With his open-source user-space driver he's already got his first model running. Not only is it running but it's doing so at similar performance to the proprietary driver.
To much surprise, just weeks after beginning his latest reverse-engineered driver adventure, his open-source code is already up and running the MobileNetV1 model on the Rockchip NPU. Most exciting is this statement:
He's been enjoying rapid success thanks to at least having some documented register information from Rockchip and their driver design being similar to NVIDIA's NVDLA and ONNX to which he can leverage documentation and code to help in the reverse engineering.
This Rockchip open-source driver work also relies on the Teflon framework that was upstreamed into Mesa as part of the Vivante/Etnaviv NPU driver effort.
More details on the latest open-source Rockchip NPU driver success via this blog post.
To much surprise, just weeks after beginning his latest reverse-engineered driver adventure, his open-source code is already up and running the MobileNetV1 model on the Rockchip NPU. Most exciting is this statement:
"And it not only runs flawlessly, but at the same performance level as the blob."
He's been enjoying rapid success thanks to at least having some documented register information from Rockchip and their driver design being similar to NVIDIA's NVDLA and ONNX to which he can leverage documentation and code to help in the reverse engineering.
This Rockchip open-source driver work also relies on the Teflon framework that was upstreamed into Mesa as part of the Vivante/Etnaviv NPU driver effort.
More details on the latest open-source Rockchip NPU driver success via this blog post.
3 Comments