Разработка ускорителей приложений в среде Vitis

51 990 ₽

Сложность: средний
Продолжительность: 2 дня
Формат участия: в классе/онлайн
Расписание: по согласованию

Описание курса
Курс посвящен разработке, отладке и профилированию новых или существующих приложений C/C++ и RTL в унифицированной программной среде Vitis, ориентированных как на центры обработки данных, так и на встроенные приложения. Кроме того, узнаете, как запускать дизайны на ускорительной карте Xilinx Alveo в облачном сервисе Nimbix.

В курсе делается акцент на следующие темы:
– Создание программного приложения с использованием API OpenCL для запуска аппаратных кернелов (вычислительных ядер) на ускорительных картах Alveo
– Создание программного приложения с использованием OpenCL API и Xilinx XRT для планирования аппаратных кернелов и обмена данных на встроенной процессорной платформе
– Демонстрация маршрута проектирования в графическом интерфейсе Vitis и с использованием makefile для центров обработки данных и встроенных приложений.
– Описание исполняемой модели платформы Vitis и XRT
– Описание разработки кернелов с использованием C/C++ и RTL
– Применение анализатора Vitis для анализа отчетов
– Методология оптимизации дизайна

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

Кому будет полезен курс?
Разработчикам, которым необходимо ускорить выполнение программного приложения, использующего FPGA, SoC (Zynq-7000 SoC, Zynq UltraScale+ MPSoC) и Versal ACAP

Что нужно знать заранее?
– Основы архитектуры Xilinx FPGA
– Язык программирования C/C++
– Маршрут разработки программного обеспечения

Программное обеспечение
Унифицированная программная платформа Vitis

Аппаратная платформа
Архитектура: Ускорительная карта Xilinx Alveo, SoC и ACAP

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

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

День 1


Маршрут проектирования в Vitis

– Введение в унифицированную программную платформу Vitis
Объясняется, как разработчики программного/аппаратного обеспечения и разработчики приложений могут воспользоваться преимуществами унифицированной программной среды Vitis и OpenCL framework. (Лекция)
– Обзор инструментов платформы Vitis
Описываются элементы маршрута разработки, такие как программная эмуляция, аппаратная эмуляция и запуск системы, а также поддержка отладки кода хоста и кода кернела. (Лекция, Лабораторная работа)
– Маршрут проектирования с командной строки
Вводится маршрут использования makefile, где пользователь управляет компиляцией кода хоста и кода кернела. (Лекция, Лаборатория)

Основы аппаратного ускорения

– Введение в аппаратное ускорение
Описываются аппаратные ресурсы FPGA, SoC и ACAP, необходимые для реализации оптимальной вычислительной архитектуры для любого алгоритма в Vitis. (Лекция)

Плата ускоритель Alveo для центров обработки данных
– Обзор ускорительных карт Alveo для центров обработки данных
Обзор ускорительных карт Alveo для центров обработки данных, перечисляются преимущества этих карт и наборы доступных программных решений. (Лекция)
– Обзор решений партнеров Xilinx
Описываются облачные и локальные партнерские решения для ускорительных карт Alveo. (Лекция)
– Начало работы с платой ускорителя Alveo
Описываются процедуры установки аппаратного и программного обеспечения для ускорительных карт Alveo. (Лекция)
– Введение в облачный сервис Nimbix Cloud
Описывается облачный сервис Nimbix, доступность ускорительных карт Alveo в Nimbix Cloud, и как запустить дизайн на Nimbix. (Лекция)

Модель исполнения Vitis и XRT
– Модель исполнения Vitis и XRT
Описываются XRT и API OpenCL, используемые для настройки платформы, выполнения и пост-обработки. (Лекция, Лабораторная работа)
– Синхронизация
Описываются методы синхронизации OpenCL, такие как события, барьеры, блокирующая запись/чтение и преимущества использования неупорядоченного исполнения. (Лекция, Лабораторная работа)

День 2

NDRange (факультативно)
– Введение в NDRanges
Объясняет основы NDRange (N-мерный диапазон) и модель выполнения OpenCL, которая определяет, как кернелы работают в NDRange. (Лекция)
– Работа с NDRanges
Описывается изменение кода хоста и кода кернела относительно NDRange. Также объясняется, как работает NDRange, и как лучше представить размер рабочей группы для архитектуры FPGA. (Лекция)

Анализ дизайна
– Профилирование
Описываются различные отчеты, анализатор Vitis, которые помогают оптимизировать обмен данными и оптимизировать кернелы. {Лекция}
– Отладка
Объясняется поддержка отладки кода хоста и кода кернела, а также даются советы по отладке системы в целом. {Лекция}

Разработка кернела
– Введение в кернелы на C/C++
Показываются компромиссы между описанием на C/C++, OpenCL и RTL и преимущества кернелов, написанных на C. {Лекция, Лабораторная работа}
– Использование RTL Kernel Wizard для создания кернела ускорителя из существующего IP
Описывается процесс интеграции кернелов, написанных на RTL, в хост приложение, работающее на процессоре х86, подключенное к FPGA по интерфейсу PCIe. {Лекция, Лабораторная работа}

Руководство по методологии оптимизации
– Методология оптимизации
Показывается рекомендуемый порядок оптимизации приложения в унифицированной среде разработки программного обеспечения Vitis. {Лекция}
– Оптимизация кернела на основе C/C++
Рассматриваются различных методы оптимизации, такие как развертывание цикла, конвейеризация и DATAFLOW. {Лекция}
– Оптимизация кода хоста
Описываются различные методы оптимизации, такие как сокращение накладных расходов на взаимодействие с кернелами и оптимизация передачи данных между кернелами и глобальной памятью. {Лекция}
– Оптимизация производительности дизайна
Описываются различные методы оптимизации, такие как оптимизация кода хоста, передача данных между кернелами и глобальной памятью и производительность кернела. {Лабораторная работа}

Библиотеки
– Библиотеки ускорителей
Делается обзор доступных библиотек, таких как базовые подпрограммы линейной алгебры (BLAS -Basic Linear Algebra Subroutines), финансовые технологии (Fintech - Financial Technology) и компьютерное зрение OpenCV. Библиотека xfOpenCV представляет собой набор из 60+ кернелов, оптимизированных для Xilinx FPGA и SoC на основе библиотеки компьютерного зрения OpenCV. {Лекция}

записаться на обучение