Ускорение C, C++, OpenCL, и RTL приложений в среде SDAccel

ЗАПИСАТЬСЯ НА ОБУЧЕНИЕ

Описание курса

Изучаются разработка, отладка, профилирование новых и существующих приложений, написанных на OpenCL, C/C++ и RTL, в среде проектирования SDAccel для запуска на Xilinx FPGAs.
При обучении основной упор делается на применение различных техник для:
- уменьшения латентности
- использования параллелизма
- оптимизации пропускной способности
- конвейеризации
Помимо этого, в курсе приводятся основные сведения по использованию платы ускорителя Alveo.

Продолжительность

2 дня

Кому будет полезен курс?

Всем разработчикам, заинтересованным в ускорении выполнения программных приложений на FPGA

Что нужно знать заранее?

Базовые знания архитектуры FPGA

Программное обеспечение

Среда разработки SDx

По завершении курса вы будете иметь все необходимые навыки для того чтобы:

Знать, каким образом в архитектуре FPGA реализуются параллельные вычисления
Понимать, как среда проектирования SDAccel помогает программистам сфокусироваться на задачах, решаемых разрабатываемым приложением
Проверять модель выполнения OpenCL API
Анализировать модель памяти OpenCL API
Создавать кернел (вычислительный ядро, выполняющее параллельную обработку данных) из C, C++, OpenCL, или RTL IP (используя RTL Kernel Wizard)
Применять техники оптимизации кода для хоста и кернела
Эффективно пересылать данные между кернелом и системной памятью
Профилировать и отлаживать код OpenCL API в среде разработки SDAccel

Структура курса

День 1
Введение в среду разработки SDAccel и инфраструктуру OpenCL (Лекция) – Объясняется, как программисты могут реализовать достоинства среды проектирования SDAccel и инфраструктуры OpenCL.
Обзор инструментов SDx (лекция, лабораторная работа) – Описываются элементы маршрута проектирования, такие как программная эмуляция, аппаратная эмуляция и системный запуск, а также отладка кода для хоста и кернела
Маршрут компиляции исполняемых файлов (лекция, лабораторная работа) – введение в маршрут компиляции в среде SDAccel, позволяющей пользователю управлять процессом компиляции кода для хоста и кернелов
Введение в FPGA (лекция) – Описываются основы структуры FPGA, которая необходима для построения наиболее оптимальной вычислительной архитектуры для любого алгоритма
Основы инфраструктуры OpenCL 1 (лекция) – Описываются компоненты инфраструктуры OpenCL, такие как модель платформы, модель выполнения, модель памяти, модель программирования
Основы инфраструктуры OpenCL 2 (лекция, лабораторная работа) – Описываются компоненты инфраструктуры OpenCL, такие как API платформы, API времени исполнения и язык программирования OpenCL
Синхронизация (лекция, лабораторная работа) – Описывается техники синхронизации OpenCL, такие как события, барьеры, блокирующие запись/чтение, преимущества выполнения команд с изменением очередности
Введение в NDRanges (лекция) – Объясняются основы NDRanges (N-мерных массивов) и модель выполнения OpenCL, которая определяет то, каким образом кернелы обрабатывают NDRanges

День 2
Работа с NDRanges (лекция, лабораторная работа) – Объясняются изменения в коде хоста и кернела для работы с NDRange. Кроме того, объясняется, как работает NDRange, и каким образом определить наилучший размер рабочей группы для архитектуры FPGA
Профилирование (лекция) – Демонстрируются различные отчеты работы инструментов SDAccel, которые помогают оптимизировать передачу данных и работу кернелов
Отладка (лекция) – Объясняется поддержка отладки кода для хоста и кернела, а также даются советы по отладке системы
Методологии оптимизации (лекция) – Дается рекомендуемый маршрут для оптимизации приложений в среде SDAccel
Техника оптимизации обмена данными с памятью (лекция) – Описываются различные техники оптимизации обмена данными между памятью и кернелами
Техника оптимизации кернела (лекция, лабораторная работа) – Применение различных техник, таких как разворачивание циклов, конвейеризация и DATAFLOW
Использование RTL Kernel Wizard для использования готового IP в качестве ускорителя вычислений (лекция, лабораторная работа) – Показывается, как среда проектирования SDAccel дает возможность разработчикам кернелов на RTL интегрировать свои аппаратные функции в приложение, работающее на ПК, соединенное с FPGA ускорителем интерфейсом PCIe

ЗАПИСАТЬСЯ НА ОБУЧЕНИЕ