Разработка аппаратно-ускоренных библиотек OpenCL, FANN и OpenGL для СБИС 1879ВМ8Я

В процессе работы должны быть решены следующие задачи:
-разработана аппаратно-ускоренная библиотека OpenCL;
-разработана аппаратно-ускоренная библиотека FANN;
-разработана аппаратно-ускоренная библиотека OpenGL;
-разработан комплект средств разработки и отладки (SDK).

СБИС 1879ВМ8Я представляет собой высокопроизводительную гетерогенную многопроцессорную систему СнК, в состав которой входят 16 процессорных ядер NMC4 и 5 ядер ARM Cortex-A5, которая предназначается для использования в качестве универсальной платформы для построения широкого класса систем.

OpenCL – фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на гетерогенных системах, состоящих из различных центральных процессоров (CPU), графических процессоров (GPU), цифровых сигнальных процессоров (DSP), а также программируемых вентильных матриц (FPGA). Для управления платформой и исполнением программ на вычислительных устройствах вo фреймворк OpenCL входят язык программирования, который базируется на стандарте C99, и интерфейс программирования приложений. OpenCL предоставляет стандартный интерфейс для параллельных вычислений, обеспечивая параллелизм на уровне инструкций и на уровне данных. Ядра NMC4 содержат матрично-векторный сопроцессор арифметики с плавающей точкой, состоящий из 4-х вычислительных ячеек, с помощью которых можно обеспечить параллелизм на уровне инструкций. Каждая вычислительная ячейка имеет 8 векторных регистров, содержащих 32 слова 64-разрядных данных, в свою очередь способных обеспечить параллелизм на уровне данных.

Библиотека FANN является открытым программным обеспечением для построения нейронных сетей. Каждый слой нейронной сети представляет собой массив нейронов. СБИС позволяет существенно ускорить вычисления за счет распараллеливания, как с помощью своей многопроцессорной архитектуры, так и с помощью аппаратных возможностей NMC4.

OpenGL — спецификация, определяющая платформонезависимый (независимый от языка программирования) программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику. Включает более 300 функций для рисования сложных трёхмерных сцен из простых примитивов. Используется при создании компьютерных игр, САПР, виртуальной реальности, визуализации в научных исследованиях.