Бэкенды для исполнения импульсных нейронных сетей
Для исполнения импульсных нейронных сетей в Kaspersky Neuromorphic Platform поддерживаются следующие типы бэкендов:
- однопоточный и многопоточный бэкенды для CPU;
- бэкенд для исполнения импульсных нейронных сетей на нейроморфном процессоре Алтай-2 (далее также "бэкенд AltAI SNN").
Однопоточный бэкенд для CPU
Бэкенд работает только в одном потоке. Вы можете использовать однопоточный бэкенд для отладки платформы и работы нейронной сети. Интерфейс к бэкенду реализован в классе SingleThreadedCPUBackend.
На данный момент бэкенд SingleThreadedCPUBackend поддерживает нейроны по моделям AltAILIF, BLIFATNeuron и SynapticResourceSTDPBLIFATNeuron и синапсы по моделям DeltaSynapse, AdditiveSTDPDeltaSynapse и SynapticResourceSTDPDeltaSynapse.
Многопоточный бэкенд для CPU
Бэкенд работает в нескольких потоках одновременно, что обеспечивает повышение скорости расчета нейронной сети. Вы можете использовать многопоточный бэкенд для обучения и исполнения импульсной нейронной сети. Интерфейс к бэкенду реализован в классе MultiThreadedCPUBackend.
На данный момент бэкенд MultiThreadedCPUBackend поддерживает нейроны по моделям BLIFATNeuron и SynapticResourceSTDPBLIFATNeuron и синапсы по моделям DeltaSynapse и SynapticResourceSTDPDeltaSynapse.
Бэкенд для GPU с поддержкой технологии CUDA
Бэкенд выполняет вычисления параллельно на множестве ядер графического процессора, что ускоряет процесс обучения и исполнения импульсной нейронной сети. Интерфейс к бэкенду реализован в классе CUDABackend.
Вы можете использовать бэкенд CUDABackend для обучения и исполнения нейронных сетей на устройствах с графическим процессором NVIDIA с поддержкой технологии CUDA.
На данный момент бэкенд CUDABackend поддерживает нейроны по модели BLIFATNeuron и синапсы по модели DeltaSynapse.
Бэкенд AltAI SNN
Вы можете использовать бэкенд AltAI SNN для исполнения импульсных нейронных сетей на нейроморфном процессоре Алтай-2. Интерфейс к бэкенду реализован в классе AltAIBackend. Класс AltAIBackend предоставляет стандартные методы, предоставляемые базовым классом Backend.
В качестве типа устройства вы можете выбрать как аппаратный процессор нейроморфного процессора Алтай-2, так и его программный эмулятор. Для аппаратного процессора используется фиксированная конфигурация ядер. При выборе программного эмулятора в качестве типа устройства вы можете изменить параметры его конфигурации.
На рисунке ниже представлена схема взаимодействия компонентов платформы при использовании бэкенда AltAIBackend. Импульсная нейронная сеть создается с помощью компонентов платформы. Обучение нейронной сети необходимо выполнить и обучается методом синаптической пластичности. На данный момент бэкенд AltAIBackend поддерживает нейроны по модели AltAILIF и синапсы по модели DeltaSynapse, при этом веса синапса должны быть целочисленными и находиться в диапазоне от -255 до 255.
Выполнение обучения импульсной нейронной сети доступно на центральном процессоре методом синаптической пластичности. Если требуется, вы можете реализовать и использовать собственные методы обучения и бэкенды.
Далее нейронная сеть проверяется на соответствие ограничениям нейроморфного процессора Алтай-2 и переводится в формат, поддерживаемый процессором для ее исполнения. Исполнение импульсной нейронной сети возможно как на программном эмуляторе, так и непосредственно на аппаратном процессоре Алтай-2.

Схема взаимодействия платформы с бэкендом AltAI SNN
