Kaspersky Neuromorphic Platform supports the following types of backends:
SingleThreadedCPUBackend
class.MultiThreadedCPUBackend
class.The interface to the backend is implemented in the AltAIBackend
class. The AltAIBackend
class provides the standard functions of the Backend
base class.
You can select the hardware processor of the AltAI-1 neuromorphic processor or a software emulator as the device type. The hardware processor unit uses a fixed core configuration. If selecting a software emulator as the device type, you can change the configuration settings of the AltAI-1 neuromorphic processing unit cores by using the load_core_grid_params()
software emulator method, and set the location of the input and output ports in the core configuration by using the make_standart_north_port()
method.
Call load_core_grid_params
method before initializing the backend.
The figure below shows a diagram of the interaction of platform components when using the AltAIBackend
backend. A spiking neural network is created with platform components. Train the neural network using the synaptic plasticity method. AltAIBackend
currently supports neurons based on the AltAILIF
model and synapses based on the DeltaSynapse
model. Synapse weights must be integers in the range from -255
to 255
.
Training of spiking neural network is available on a central processor using the synaptic plasticity method. If needed, you can implement and use custom training methods and backends.
The neural network is then validated against the constraints of the neuromorphic processor AltAI-1 and translated into a format that can be executed by the processing unit. You can execute a spiking neural network both on the software emulator or directly on the AltAI-1 hardware processor.
Scheme of interaction between the platform and the AltAI SNN backend
The neural network is trained by backward propagation of the error with quantization of the weights.
The figure below shows a diagram of the interaction of platform components when using AltAI ANN2SNN
backends. The neural network is created using the ternary layers of the ANN2SNN
package library, implemented as part of the Python framework, and is trained by back-propagating an error with quantization of weights. The neural network is then placed, using the placer
utility, to be executed on the AltAI-1 neuromorphic processing unit. During placement, the neural network is validated against the constraints of the neuromorphic processing unit and translated into a format that can be executed by the processing unit.
AltAI ANN2SNN backends are implemented in a separate package from CPU and AltAI SNN backends.
Diagram of interaction between platform components when using the AltAI ANN2SNN package