intel fpga

Intel FPGA Technical Training

EulerProject является официальным партнером IntelPSG по обучению технологии программирования IntelFPGA

EulerProject является официальным партнером IntelPSG по обучению технологии программирования IntelFPGA при помощи открытого стандарта программирования гетерогенных вычислительных систем OpenCL и проводит для заинтересованных специалистов российских предприятий по требованию (training on demand) практический учебный курс на аппаратуре собственной разработки. Данный курс входит в программу обучения ВМК МГУ и читается на регулярной основе в весеннем семестре в рамках спецкурса.

В рамках спецкурса слушатели знакомятся с аппаратно-программными средствами ускорения вычислений с применением ПЛИС и открытого стандарта программирования гетерогенных систем OpenCL. В программу обучения входит ознакомление с основами стандарта OpenCL и заложенными в него принципами параллельного программирования, базовыми знаниями об особенностях архитектуры ПЛИС, спецификой применения стандарта OpenCL при программировании ПЛИС, маршрутом и средствами проектирования, отладки, профилирования и оптимизации программного кода, предоставляемыми разработчиком аппаратуры. Материал курса не требует специальной подготовки, кроме базовых знаний языка С, и позволяет освоить программирование ПЛИС в стандарте OpenCL «с нуля». Закреплению полученных знания способствуют практические работы, выполняемые под руководством инструкторов EulerProject.

Я очень рад сотрудничеству, которое установилось между коллективом EulerProjecrt и кафедрой Суперкомпьютеров и квантовой информатики ВМК МГУ. Коллеги читают курс, посвященный возможности использования современных реконфигурируемых систем с помощью OpenCL, давая возможность нашим студентам почувствовать передовой край науки и информационных технологий.


Воеводин В.В.
Профессор ВМК МГУ, заместитель директора НИВЦ МГУ, член-корреспондент РАН

Построение высокопроизводительных и энергоэффективных вычислителей для решения прикладных задач является приоритетом при построении современных радиотехнических систем.

В свете этого, технология использования OpenCl для реконфигурируемых платформ на базе ПЛИС, и предлагаемый коллегами из EulerProject маршрут проектирования позволяет быстро выполнять разработку высокопараллельных алгоритмов цифровой обработки сигналов. Выражаю признательность команде EulerProject за проведенный мастер-класс, позволивший расширить кругозор сотрудникам института радиотехнических систем и управления Южного федерального университета. 

Потипак М.В.
Директор научно-образовательного центра системных технологий проектирования ЮФУ

“Тренинг, был действительно интересным. Спасибо за организацию и проведение”.


Крупная интернет компания

“Мы высоко ценим часы-дни-недели усилий команды проекта Эйлер, направленных на применение ускорительной аппаратуры в составе нашего комплекса ”. 

Крупная компания по информационной безопасности

“Полезный и интересный тренинг, тема практически раскрыта. Поскольку преподаватель сам занят написанием кода, то сразу все становится на свои места”.


Крупная компания разработчик радиоэлектроники

“Хороший тренинг от людей, которые сами подымали данную тему и готовы поделится практическим опытом ”. 

Российская финансовая компания

Программа курса

Занятие 1
Введение в OpenCL. Особенности архитектуры FPGA и маршрута проектирования (продолжительность – 90 мин).

  • Обзор архитектуры FPGA. Логические блоки, IP-ядра, Interconnect, внешние интерфейсы
  • Отличие трансляции алгоритма для универсального процессора и FPGA
  • Параллелизм как способ ускорения вычислений. Виды параллелизма в OpenCL
  • SIMD-параллелизм и его реализация в OpenCL. Понятие Kernel
  • Пример SIMD-параллельной реализации математического алгоритма (построение множества Мандельброта)
  • Модель платформы OpenCL. Понятие Host, Compute Device, Compute Unit, Processing Element
  • Модель выполнения OpenCL. Понятия Program, Kernel, Work-Item и их взаимосвязь
  • Разбор реализации Kernel для процедуры матричного умножения. Компиляция Kernel
Занятие 2
Хост-программа в OpenCL. Обзор функций в стандарте. Написание примера хост-программы (продолжительность – 90 мин).

  • Назначение хост-программы. Базовый алгоритм хоста для запуска Kernel
  • Опрос платформы и устройств (ускорителей). Обзор функций
  • Загрузка Kernel в устройство. Понятия контекста и программы
  • Понятие очереди команд. Синхронное и асинхронное выполнение команд
  • Виды буферов данных для обмена с ускорителем. Команды чтения-записи буферов
  • Передача параметров в Kernel
  • Понятие индексного пространства. Запуск Kernel. Обзор функций
  • Настройка среды и проекта в Microsoft Visual Studio. Заголовочные файлы и библиотеки OpenCL
  • Компиляция хост-программы, запуск из-под отладчика, демонстрация выполнения Kernel
Занятие 3
Практическая работа «Компиляция и запуск типового OpenCL Kernel» (продолжительность – 90 мин).

  • Получение навыков написания Kernel для реализации SIMD-параллельного алгоритма и его компиляции средствами Intel OpenCL SDK
  • Получение навыков сборки хост-программы для запуска OpenCL Kernel в среде Microsoft Visual Studio
  • Освоение понятия индексного пространства. Получение навыков преобразования алгоритма для выполнения в индексных пространствах различной размерности
  • Получение навыков отладки OpenCL-программы средствами Microsoft Visual Studio и эмулятора ускорителя
  • Обсуждение материала первого дня обучения (Занятия 1-2). Ответы на вопросы
Занятие 4
Intel OpenCL SDK и BSP. Режимы компиляции. Средства отладки и оценки эффективности (продолжительность – 90 мин).

  • Intel OpenCL SDK. Назначение и состав. Обзор инструментов пакета Quartus
  • Понятие BSP. Обзор BSP ускорителя Euler Thread
  • Понятие частичной реконфигурации FPGA
  • Назначение утилиты AOC. Обзор режимов работы
  • Назначение утилиты AOCL. Обзор режимов работы и демонстрация примеров
  • Маршруты компиляции Kernel. Прохождение от функционального тестирования до оптимального дизайна
  • Анализ отчетов компиляции. Оценка расходования ресурсов. Выявление «bottle neck». Оценка максимально допустимой тактовой частоты работы ПЛИС
  • Применение профилировщика для оценки быстродействия при выполнении на ускорителе
Занятие 5
Методы оптимизации Multiple (SIMD) Work-Item Kernel (продолжительность – 90 мин).

  • Пример Kernel для матричного умножения. Обзор проблемы быстродействия
  • Модель памяти в OpenCL. Понятие Global-, Local- и Private-memory
  • Первый шаг оптимизации: применение Private-memory
  • Понятие группировки в индексных пространствах. Функция barrier
  • Второй шаг оптимизации: применение Local-memory
  • Третий шаг оптимизации: применение расширения индексного пространства
  • Разворачивание циклов. Практика применения
  • Атрибуты функции Kernel. Задание ограничений на размеры групп. Репликация
Занятие 6
Практическая работа «Оптимизация Single Work-Item Kernel» (продолжительность – 90 мин).

  • Теоретическое введение: понятие Single Work-Item Kernel
  • Получение базовых знаний о Single Work-Item Kernel
  • Генерация кода Kernel из реализации на языке «С» для универсального процессора
  • Генерация и анализ отчетов компиляции
  • Проведение пошаговой оптимизации и сравнение отчетов
  • Обсуждение материала первого и второго дней обучения (Занятия 1-5). Ответы на вопросы
Занятие 7
Особенности Single Work-Item Kernel. Методы оптимизации. (продолжительность – 90 мин).

  • Переход от Multiple Work-Item Kernel к Single Work-Item Kernel. Разбор примера реализации цифрового FIR-фильтра
  • Преимущества Single Work-Item Kernel. Условия применения
  • Отличия в реализации хоста при использовании Single Work-Item Kernel
  • Метод оптимизации: конвейерное выполнение
  • Метод оптимизации: разворачивание циклов
  • Методы оптимизации вычислений с плавающей точкой
  • Обзор типовых «bottle neck» и методы их устранения
  • Параллелизм на стороне хоста. Конвейерное выполнение нескольких Kernel. Синхронизация. Использование объекта Event
Занятие 8
Специфические возможности FPGA. Технологии Pipe и Channel (продолжительность – 90 мин).

  • Понятие Channel. Особенности реализации в BSP
  • Чтение и запись в Channel. Блокирующие и неблокирующие операции ввода-вывода
  • Особенности реализации Channel для Multiple Work-Item Kernel
  • Разбор примера обработки видеопотока с применением Channel. Особенности реализации OpenCL на Intel FPGA SoC
  • Понятие Pipe. Отличие Pipe от Channel
  • Поддержка Pipe на стороне хост-программы
  • Понятие Host Pipe. Потоковая передача данных в ускоритель через интерфейс PCIe
  • Разбор примера обработки данных с применением Host Pipe
Занятие 9
Практическая работа «Обработка потоковых данных с использованием Host Pipe» (продолжительность – 90 мин).

  • Получение навыков сборки проекта OpenCL в ОС Linux
  • Получение навыков реализации Host-to-Kernel взаимодействия посредством Pipe
  • Изучение особенностей реализации Pipe в хост-программе
  • Получение навыков реализации Kernel-to-Kernel взаимодействия посредством Channel
  • Получения навыков использования эмулятора для отладки программ, использующих Channel и Pipe
  • Обсуждение материала курса (Занятия 1-8). Ответы на вопросы
Видео обращение
Заявка на обучение

Пожалуйста, отправть заявку на обучение, указав название организации и приблизительные даты обучения

Статьи по теме

Применение OpenCL для программирования ПЛИС и новая услуга «FPGA as-a-service»

Одно из новых направлений в развитии гетерогенного программирования – применение языка С и стандарта OpenCL для проведения вычислений на ПЛИС (программируемых логических интегральных схемах, FPGA)

Подробнее

Ускорение исследований геномики с OpenCL и FPGA

С появлением оборудования секвенирования второго поколения, расходы на сравнение генов значительно сократились, что привело к доступности получения данных о генной последовательности.

Подробнее

Успешное решение облака

Связь с нами

АО «Алмаз-СП»
127025, Москва, ул.Образцова, д.7, строение 2
+7 (495) 221-69-21