HTML: http://rc-module.github.io/nmpp/modules.html
CHM(ZIP):  http://rc-module.github.io/nmpp/nmpp.zip
CHM:  http://rc-module.github.io/nmpp/nmpp.chm (При открытии необходимо снять галочку "Всегда спрашивать при открытии этого файла")
PDF:  http://rc-module.github.io/nmpp/nmpp.pdf
Описание функций сопровождается таблицами производительности при разных параметрах
NMPP (Neuro Matrix Performance Primitives) - C/C++ библиотека примитивов для архитектуры NeuroMatrix. Содержит оптимизированные функции для работы со скалярами, векторами, матрицами, сигналами и изображениями. Поддерживает как целочисленную арифметику с 1,2,4,8,16,32,64-разрядными данными процессоров семейства NMC3, так и арифметику с плавающей точкой одинарной и двойной точности для процессора NMC4.
NMPP библиотека включает в себя следующие компоненты:
- nmvcore- универсальные низкоуровневые векторные функции с регистровым интерфейсом передачи параметров
- nmppc - скалярные функции
- nmppv - функции работы с векторами
- nmppm - функции работы с матрицами
- nmpps - функции обработки сигналов
- nmppi - функции обработки изображений
- nmblas - BLAS библиотека
Поддерживаются архитектуры NMC3 и NMC4. Для NMC4 библиотеки разделяются по типу ядра: с плавающей точкой и целочисленной арифметикой.
Поддерживаемые процессоры :
| Процессор/ядро | nmc3 | nmc4 | nmc4f | arm | модули | 
|---|---|---|---|---|---|
| 1879ХБ1Я | + | + | MB77.07,МВ73.02 | ||
| К1879ВЯ1Я | + | + | МС76.01 | ||
| К1888ВС018 | + | + | MB115.01 | ||
| 1879ВМ5(NM6406) | + | МС51.03 | |||
| К1879ВМ6Я(6407) | + | + | МС121.01 | ||
| 1879ВМ8Я(6408) | + | + | МС127.05 | 
Для отладки и прототипирования проектов на x86/64 архитектуре предоставляются библиотеки-эмуляторы в ОС Windows/Linux. Библиотеки точно имитируют исполнение функций для NeuroMatrix c побитовой точностью в x86/64-приложении . Функции имеют единый интерфейс и могут использоваться в кроссплатформенной (x86/NeuroMatrix) разработке приложений под Windows/Linux.
Также имеется  ARM библиотека осуществляющая  вызов NMC функций со стороны ARM-ядра средствами rpc (для систем на кристалле с ARM ядром):
/lib/libnmpp-arm-rpc.a
В частности ,данная библиотека осуществляют взаимосвязь Matlab/Simulink с NeuroMatrix
Сборка под NeuroMatrix осуществляется NMСGCC компилятором. Также поддерживается устаревший (legacy) компилятор. Эмуляторы библиотек собираются через VisualStudio/MinGW под Windows и GCC в Linux .
- 
NeuroMatrix NMGCC-SDK Для сборки библиотек под NeuroMatrix gcc компилятором 
- 
Leqacy NeuroMatrix SDK (устаревшая версия SDK) Для сборки библиотек под NeuroMatrix предыдущим (legacy ) компилятором требуется NMSDK версией не ниже 3.07 
- 
x86/x64 SDK 
 Для эмуляции NeuroMatrix функций из состава NMPP под x86/x64 возможна сборка библиотек с помощью Gnu GCC. http://www.mingw.org/ или http://win-builds.org/doku.php или Microsoft Visual Studio, и в частности версиями Express:
 Visual Studio 2005 Express
 Visual Studio Express
- 
Сборка компонент (статические lib-библиотеки, тесты, примеры) построена на Makefile скриптах. Для корректного запуска сборочных Makefile-ов под Windows требуется установленный GNU make. Для ОС Windows рекомендуется версия make 3.81 (3.82- проявляет себя нестабильно). 
- 
Генерация сборочных проектов x86/x64 библиотек/тестов, в т.ч. для VisualStudio, осуществляется premake5 . Требуется версия не ниже premake-5.0.0-alpha15 
- Для запуска примеров на вычислительных модулях (МС51.03, МС121.01, МВ77.07 и др.) требуются библиотеки загрузки и обмена (БЗИО) с установленными соответствующими переменными окружения (MC5103, MC12101, MB7707... )
Пути к make, premake5 и GnuWin утилитам должны быть прописаны в PATH
Установить переменные окружения , все необходимые утилиты (make, premake5, GnuWin утилиты и пр.), ПО поддержки плат (БЗИО-библиотеки загрузки и обмена) под Windows можно с помощью инсталятора nmkit.
Сборка библиотек осуществляется командой make из соответствующей архитектуре папки /make/nmpp-<archictecture> :
| Команда | Результат сборки | 
|---|---|
| /nmpp/make/nmpp-nmc3> make | nmpp/lib/libnmpp-nmc3.a | 
|  /nmpp/make/nmpp-nmc3> make DEBUG=y | nmpp/lib/libnmpp-nmc3d.a | 
| /nmpp/make/nmpp-nmc4> make | nmpp/lib/libnmpp-nmc4.a | 
|  /nmpp/make/nmpp-nmc4> make DEBUG=y | nmpp/lib/libnmpp-nmc4d.a | 
| /nmpp/make/nmpp-nmc4f> make | nmpp/lib/libnmpp-nmc4f.a | 
|  /nmpp/make/nmpp-nmc4f> make DEBUG=y | nmpp/lib/libnmpp-nmc4fd.a | 
d - признак Debug версии библиотеки
f - признак библиотеки для ядра с плавающей точкой . Если без префикса - для целочисленного ядра.
Сборка устаревшим компилятором возможна командой make с ключом legacy из соответствующей архитектуре папки /make/nmpp-<archictecture>:
| Команда | Результат сборки | 
|---|---|
| /nmpp/make/nmpp-nmc3> make legacy | nmpp/lib/nmpp-nmc3.lib | 
| /nmpp/make/nmpp-nmc3> make legacy DEBUG=y | nmpp/lib/nmpp-nmc3d.lib | 
| /nmpp/make/nmpp-nmc4> make legacy | nmpp/lib/nmpp-nmc4.lib | 
| /nmpp/make/nmpp-nmc4> make legacy DEBUG=y | nmpp/lib/nmpp-nmc4d.lib | 
| /nmpp/make/nmpp-nmc4f> make legacy  | nmpp/lib/nmpp-nmc4f.lib | 
| /nmpp/make/nmpp-nmc4f> make legacy DEBUG=y | nmpp/lib/nmpp-nmc4fd.lib | 
Генерация сборочных файлов/проектов для x86/64 архитектуры в Windows/Linux оcуществляется средствами premake5.
Сконфигурировать проект и собрать библиотеку можно одной из команд:
| Команда | Результат сборки | 
|---|---|
|  \nmpp\make\nmpp-x86-x64> make vs2015 | nmpp\lib\nmpp-x86.lib | 
| nmpp\lib\nmpp-x86d.lib | |
| nmpp\lib\nmpp-x64.lib | |
| nmpp\lib\nmpp-x64d.lib | |
|  \nmpp\make\nmpp-x86-x64> make gmake32 | nmpp\lib\nmpp-x86.lib (Windows) | 
|  /nmpp/make/nmpp-x86-x64> make gmake64 | nmpp/lib/libnmpp-x64.a (Linux) | 
x86/x64 эмуляторы библиотек включают в себя функции как с плавающей , так и с целочисленной арифметикой.
Возможные ключи make:
| Ключ | ОС | Toolchain | 
|---|---|---|
| vs2005 | Windows | MS Visual Studio 2005 | 
| vs2015 | Windows | MS Visual Studio 2015 | 
| vs2017 | Windows | MS Visual Studio 2017 | 
| gmake32 | Windows | MinGW | 
| gmake64 | Linux | GCC | 
Команда
nmpp\make\nmpp-x86-x64> makeбез ключа инициирует сборку под VS2015 в Windows и под GСС в Linux.
Для удобства подключения библиотек к собственным проектам, а также к примерам и тестам  рекомендуется использовать переменную окружения NMPP. В Windows cоздать переменную NMPP и присвоить ей путь к установленной папке NMPP можно с помощью команды
\nmpp\make\> make setenv
Для сборки тестов и примеров  может быть необходим HAL со скомпилированными соответствующими библиотеками и прописанной переменной окружения HAL.
Некоторые тесты и примеров идут только с исходными С++ текстами. Сконфигурировать сборочные проекты пакетно можно командой make configure  из корневой папки с тестами или примерами, например:
\nmpp\app\examples-float\nmblas\> make configure 
Далее собрать все проекты командой :
\nmpp\app\examples-float\nmblas\> make build  
запуcтить все примеры поочердно:
\nmpp\app\examples-float\nmblas\> make run  
Удалить все конфигуарции :
\nmpp\app\examples-float\nmblas\> make kill  
Список платформ для которых будут сформированы сборочные проекты определяются в файле \nmpp\app\examples-float\nmblas\local.json и требуют редактирования под имеющиеся платы. Глобальные настройки находятся в \nmpp\app\global.json . Генерация проектов производится через копирование шаблонов , полный перечень которых сдержится в папке \nmpp\app\templates\sometest
Сборка и запуск отдельного примера также осуществляется командами make  и make run  из соответствующей папки /make_<board_core_compiler>, например:
\nmpp\app\examples-float\nmblas\level1\nmblas_dcopy\make_mc12101_nmpu0> make 
запуcтить пример на плате:
\nmpp\app\examples-float\nmblas\level1\nmblas_dcopy\make_mc12101_nmpu0> make run
запуcтить пример на эмуляторе nmc-qemu:
\nmpp\app\examples-float\nmblas\level1\nmblas_dcopy\make_mc12101_nmpu0> make qemu
Должны быть установлены соответствующие переменные окружения к корневым каталогам ПО поддержки плат (MС5103,MC12101,MC12705 и .т.д.) Для генерации сборочных проектов требуется Python не ниже 3.6
Предложения , вопросы , замечания можно направлять на [email protected]