Проектирование на Verilog
 Записаться на обучение
Средний
3 дня
В классе / Онлайн

Как проходят занятия в классе?
Занятия в классе состоят из лекций, обсуждения вопросов и лабораторных работ. Занимаемся полный рабочий день. Начинаем в 10:00 и заканчиваем около 18:00.

Как проходят занятия онлайн?
Занятия онлайн максимально приближены к занятиям в классе. Для лекций и обсуждения вопросов используем Yandex Telemost, Google Meet или подобные платформы. Для выполнения лабораторных работ нужно будет подключиться к лабораторным ПК по VPN. Работаете в режиме удаленного рабочего стола через программу RealVNC Viewer.

Требования к ПК:
• Быстрый интернет
• Два монитора, один из которых с разрешением не менее 1920х1080
• Гарнитура (наушники с микрофоном)

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

86 990 ₽

Описание курса
Курс посвящен разработке, отладке и профилированию новых или существующих приложений 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% предоплата по счету.

Работаете ли вы с юридическими лицами? Возможно ли обучение от организации?

Да, мы работаем с юридическими лицами. Обучение от организации возможно.

Можно ли нанять ваших инженеров для работы над проектом?

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

Разрабатываем на Xilinx

Референс-дизайны и IP-блоки. Оптимизируем существующие решения.