Описание курса
Курс посвящен разработке, отладке и профилированию новых или существующих приложений C/C++ и RTL в унифицированной программной среде Vitis, ориентированных как на центры обработки данных, так и на встроенные приложения.
В курсе делается акцент на следующие темы:
• Создание программного приложения с использованием API OpenCL для запуска аппаратных кернелов (вычислительных ядер) на ускорительных картах Alveo
• Создание программного приложения с использованием OpenCL API и Xilinx XRT для планирования аппаратных кернелов и обмена данных на встроенной процессорной платформе
• Демонстрация маршрута проектирования в графическом интерфейсе Vitis и с использованием makefile для центров обработки данных и встроенных приложений.
• Описание исполняемой модели платформы Vitis и XRT
• Описание разработки кернелов с использованием C/C++ и RTL
• Применение анализатора Vitis для анализа отчетов
• Методология оптимизации дизайна
Продолжительность
3 дня
Кому будет полезен курс?
Разработчикам, которым необходимо ускорить выполнение программного приложения, использующего 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
Структура курса
Маршрут проектирования в Vitis
• Введение в унифицированную программную платформу Vitis
Объясняется, как разработчики программного/аппаратного обеспечения и разработчики приложений могут воспользоваться преимуществами унифицированной программной среды Vitis и OpenCL framework. (Лекция)
• Обзор инструментов платформы Vitis
Описываются элементы маршрута разработки, такие как программная эмуляция, аппаратная эмуляция и запуск системы, а также поддержка отладки кода хоста и кода кернела. (Лекция, Лабораторная работа)
• Маршрут проектирования с командной строки
Вводится маршрут использования makefile, где пользователь управляет компиляцией кода хоста и кода кернела. (Лекция, Лаборатория)
Основы аппаратного ускорения
• Введение в аппаратное ускорение
Описываются аппаратные ресурсы FPGA, SoC и ACAP, необходимые для реализации оптимальной вычислительной архитектуры для любого алгоритма в Vitis. (Лекция)
Плата ускоритель Alveo для центров обработки данных
• Обзор ускорительных карт Alveo для центров обработки данных
Обзор ускорительных карт Alveo для центров обработки данных, перечисляются преимущества этих карт и наборы доступных программных решений. (Лекция)
• Обзор решений партнеров Xilinx
Описываются облачные и локальные партнерские решения для ускорительных карт Alveo. (Лекция)
• Начало работы с платой ускорителя Alveo
Описываются процедуры установки аппаратного и программного обеспечения для ускорительных карт Alveo. (Лекция)
Модель исполнения Vitis и XRT
• Модель исполнения Vitis и XRT
Описываются XRT и API OpenCL, используемые для настройки платформы, выполнения и пост-обработки. (Лекция, Лабораторная работа)
• Синхронизация
Описываются методы синхронизации OpenCL, такие как события, барьеры, блокирующая запись/чтение и преимущества использования неупорядоченного исполнения. (Лекция, Лабораторная работа)
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. {Лекция}
Ответы на частые вопросы
Да, работаем в обычном режиме.
Да, подойдут. Для инженеров без опыта разработки мы предлагаем базовые курсы, которые начинаются с основ и постепенно переходят к более сложным темам.
Да, выдаем сертификат после прохождения обучения.
В классе либо онлайн.
Занятия в классе состоят из лекций, обсуждения вопросов и лабораторных работ. Занимаемся полный рабочий день. Начинаем в 10:00 и заканчиваем около 18:00.
Занятия онлайн максимально приближены к занятиям в классе. Для лекций и обсуждения вопросов используем Yandex Telemost, Google Meet или подобные платформы. Для выполнения лабораторных работ нужно будет подключиться к лабораторным ПК по VPN. Работаете в режиме удаленного рабочего стола через программу RealVNC Viewer.
Требования к ПК:
• Быстрый интернет
• Два монитора, один из которых с разрешением не менее 1920х1080
• Гарнитура (наушники с микрофоном)
Минимум 1, максимум 4.
Нет, не нужно. Мы выбираем удобные для вас даты и занимаемся.
Обычно мы занимаемся с 10:00 до 18:00.
Да, учебное место укомплектовано компьютером с двумя мониторами, программным обеспечением и отладочной платой.
1. Презентации
2. Лабораторные работы и архив с исходниками для выполнения лабораторных работ
Занятия согласовываются индивидуально. Выбираем удобные для вас даты и занимаемся.
1. Оставляете заявку на сайте
2. Мы с вами связываемся, отвечаем на все вопросы и согласовываем даты занятий
3. Оплачиваете счет (возможна оплата как для физических, так и юридических лиц)
4. Проводим обучение
Занятия проводятся в нашем учебном классе по адресу: Москва, пр-т Вернадского, д.78
В Санкт-Петербурге нет, но вы можете пройти обучение онлайн, чтобы не ехать к нам в Москву.
Да, по предварительной договоренности. Наш учебный класс находится по адресу: Москва, пр-т Вернадского, д.78
За одного человека.
Мы выставляем счет на оплату (возможна оплата как для физических, так и юридических лиц).
Нет, только 100% предоплата.
100% предоплата по счету.
Да, мы работаем с юридическими лицами. Обучение от организации возможно.
Да, оставьте заявку на сайте и мы свяжемся для обсуждения вашего проекта.