Intel GNA Linux Driver Updated For Accelerating Speech Recognition, Noise Reduction
While Intel is well known and loved for their generally very timely open-source hardware enablement under Linux, occasionally there are exceptions to that long-standing tradition of having the support squared away ahead of product launches. One of the areas where Intel has been slow at enabling their open-source Linux support is around their Gaussian and Neural Accelerator (GNA) but that driver is now coming together for being mainlined hopefully in the near future.
Found on Intel mobile SoCs going back to Ice Lake (well, Cannon Lake too) has been this Gaussian and Neural Accelerator, along with other Intel SoCs like Gemini Lake. Intel has supported the GNA under Linux using an out-of-tree kernel driver while this year they finally are working towards having a cleaned up driver upstreamed.
The Intel GNA is a neural co-processor that can be used for offloading inference workloads like speech recognition and noise reduction from the CPU to this PCI-based co-processor.
Back in February was the initial Intel GNA patches aiming for the upstream kernel. This week a second revision to the work was sent out for upstream review.
With the new patches, the Linux driver has been renamed from just being "gna" to "intel_gna". Similarly, the exposed device to user-space is formatted as /dev/intel_gnaX among other "Intel" additions to avoid any confusion or issues with any other similar non-Intel accelerators.
Various code clean-ups and fixes were also incorporated into these latest "intel_gna" Linux driver patches.
For now these latest Intel GNA Linux patches are residing on the kernel mailing list while we'll keep monitoring to see when they reach the upstream kernel.
Meanwhile for actually making use of this kernel driver, there is open-source Intel GNA user-space code for leveraging it. That open-source library has some basic code samples while Intel's OpenVINO is seemingly the major user so far of it under Linux. Once this driver is upstreamed, we'll see how else the Intel Gaussian and Neural Accelerator gets used by open-source developers considering this co-processor is found already across Ice Lake / Tiger Lake / Gemini Lake systems.
Found on Intel mobile SoCs going back to Ice Lake (well, Cannon Lake too) has been this Gaussian and Neural Accelerator, along with other Intel SoCs like Gemini Lake. Intel has supported the GNA under Linux using an out-of-tree kernel driver while this year they finally are working towards having a cleaned up driver upstreamed.
The Intel GNA is a neural co-processor that can be used for offloading inference workloads like speech recognition and noise reduction from the CPU to this PCI-based co-processor.
Back in February was the initial Intel GNA patches aiming for the upstream kernel. This week a second revision to the work was sent out for upstream review.
With the new patches, the Linux driver has been renamed from just being "gna" to "intel_gna". Similarly, the exposed device to user-space is formatted as /dev/intel_gnaX among other "Intel" additions to avoid any confusion or issues with any other similar non-Intel accelerators.
Various code clean-ups and fixes were also incorporated into these latest "intel_gna" Linux driver patches.
For now these latest Intel GNA Linux patches are residing on the kernel mailing list while we'll keep monitoring to see when they reach the upstream kernel.
Meanwhile for actually making use of this kernel driver, there is open-source Intel GNA user-space code for leveraging it. That open-source library has some basic code samples while Intel's OpenVINO is seemingly the major user so far of it under Linux. Once this driver is upstreamed, we'll see how else the Intel Gaussian and Neural Accelerator gets used by open-source developers considering this co-processor is found already across Ice Lake / Tiger Lake / Gemini Lake systems.
2 Comments