The eIQ Neutron N3-1024S NPU is a neural processing unit (NPU) designed to accelerate machine learning inference.
This NPU is an on-chip hardware accelerator and works in concert with the CPU to deliver higher performance and lower power consumption for neural network (NN) inference.
Currently, the eIQ Neutron NPU main features are:
-
Capable of 2.0 TOP/s performance
-
1024 MACs operating at up to 1.0 GHz and 2 OPS/MAC
-
Scalable from 32 Ops/cycle to over 10000 Ops/cycle
-
Support for CNN, RNN, TCN, Transformer and most neural network types
| This BSP release does not fully support the eIQ toolkit yet. |
Kernel configuration
You can manage the i.MX95 Neutron driver support through the kernel configuration options:
-
NXP Neutron NPU support (
CONFIG_NEUTRON) -
i.MX neutron remoteproc support (
CONFIG_IMX_NEUTRON_REMOTEPROC)
These options are enabled as built-in on the ConnectCore 95 Development Kit kernel configuration file.
Kernel driver
The Neutron drivers for the i.MX95 are located at:
| File | Description |
|---|---|
NXP Neutron core driver |
|
NXP Neutron remoteproc driver |
The Neutron NPU firmware is loaded via the Linux remoteproc framework.
The driver creates a node under /dev/neutron0.
# ls -la /dev/neutron0
crw------- 1 root root 234, 0 Nov 11 09:04 /dev/neutron0
Device tree bindings
neutron_core: imx95-neutron-remoteproc@4ab00000 {
compatible = "fsl,imx95-neutron-rproc";
reg = <0x0 0x4ab00000 0x0 0x4>;
power-domains = <&scmi_devpd IMX95_PD_NPU>;
};
neutron: imx95-neutron@4ab00004 {
compatible = "fsl,imx95-neutron";
reg = <0x0 0x4ab00004 0x0 0x400>;
fsl,neutron-rproc = <&neutron_core>;
interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&scmi_clk IMX95_CLK_NPU>,
<&scmi_clk IMX95_CLK_NPUAPB>;
clock-names = "npu", "npu_apb";
power-domains = <&scmi_devpd IMX95_PD_NPU>;
};