eIQ Neutron¶
eIQ Neutron platform has 1 Neutron core with no dedicated controller, TCM, Data Mover. The major distinctions from the eIQ Neutron-S are:
The Neutron Converter will run on the Host PC. The target CPU could be a microcontroller that lacks the resources to run the tool.
Since there is no dedicated controller for programming the Neutron core, the target CPU which is the main application processor must also spend time in coordinating Neutron execution. This means that the target CPU must also run the Neutron Firmware component.
The Neutron Driver and Neutron Firmware run on the same core and so they must employ a mechanism for intra-core communication. This means basically linking the Neutron Driver and Neutron Firmware libraries together and having the Neutron Driver call functions directly from the Neutron Firmware. The symbols between the two libraries are linked directly without requiring extra glue code, making the integration seamless.
Another major distinction from eIQ Neutron-S flow is that the kernels are no longer produced by the Neutron-Converter dynamically, for each model. Instead all the kernels (Neutron-Library) are linked inside the Firmware monolith which will have the availability of running any kernel the microcode requires for any model.
Figure 3. eIQ Neutron software components¶
What is specific to this flow is:
The inference is controlled by the CPU.
The model can be fully or partly executed by Neutron.
Parts of the graph that are not supported by Neutron can be offloaded by the inference engine to CPU, potentially using SW acceleration from an optimized library (for example CMSIS-NN for Cortex-M).