Etnaviv Driver With Linux 6.3 Enables VeriSilicon NPU Cores
The Etnaviv DRM driver started out in the Linux kernel providing reverse-engineered kernel graphics driver support for Vivante graphics IP developed by VeriSilicon and found within various SoCs. With the upcoming Linux 6.3 cycle the Etnaviv DRM driver is adding support for VeriSilicon's Neural Network Processor (NPU) IP.
Etnaviv maintainer Lucas Stach sent in the Etnaviv Direct Rendering Manager driver updates to DRM-Next on Wednesday for the upcoming Linux 6.3 merge window.
In addition to now being able to report GPU load information, making this driver update notable is experimental support for VeriSilicon NPU cores. VeriSilicon's Vivante graphics IP and their NPU cores turn out to be very close and design and not too much effort getting the NPU cores working with this DRM driver, which may be interesting for some compute use-cases with OpenCL.
It turns out the VeriSilicon NPUs and Vivante graphics cores use the same compute instruction set while the NPU has a large neural network fabric / matrix / tensor execution array attached. Tomeu Vizoso of Collabora tackled the Verisilicon VIPNano-QI NPU in the A311D as in the VIM3 board as his target. Tomeu commented in the patches, "The IP is very closely based on previous Vivante GPUs, so the etnaviv kernel driver works basically unchanged."
The Khada VIM3 board is a ~$120 USD single board computer built around an Amlogic A311D with four Cortex-A73 cores and two Cortex-A63 cores while being focused on AI tasks with the onboard NPU.
The NPU is focused on compute vision and AI workloads while this Mesa merge request gets Etnaviv supporting OpenCL via the Gallium3D Clover and Rusticl state trackers. So once that Mesa code lands and running Linux 6.3+, the NPUs could be exploited for general purpose OpenCL compute.
See the Etnaviv DRM pull request for the full list of changes with this driver targeting Linux 6.3.
Etnaviv maintainer Lucas Stach sent in the Etnaviv Direct Rendering Manager driver updates to DRM-Next on Wednesday for the upcoming Linux 6.3 merge window.
In addition to now being able to report GPU load information, making this driver update notable is experimental support for VeriSilicon NPU cores. VeriSilicon's Vivante graphics IP and their NPU cores turn out to be very close and design and not too much effort getting the NPU cores working with this DRM driver, which may be interesting for some compute use-cases with OpenCL.
It turns out the VeriSilicon NPUs and Vivante graphics cores use the same compute instruction set while the NPU has a large neural network fabric / matrix / tensor execution array attached. Tomeu Vizoso of Collabora tackled the Verisilicon VIPNano-QI NPU in the A311D as in the VIM3 board as his target. Tomeu commented in the patches, "The IP is very closely based on previous Vivante GPUs, so the etnaviv kernel driver works basically unchanged."
The Khada VIM3 board is a ~$120 USD single board computer built around an Amlogic A311D with four Cortex-A73 cores and two Cortex-A63 cores while being focused on AI tasks with the onboard NPU.
The NPU is focused on compute vision and AI workloads while this Mesa merge request gets Etnaviv supporting OpenCL via the Gallium3D Clover and Rusticl state trackers. So once that Mesa code lands and running Linux 6.3+, the NPUs could be exploited for general purpose OpenCL compute.
See the Etnaviv DRM pull request for the full list of changes with this driver targeting Linux 6.3.
Add A Comment