Проектирование на Versal AI Engine #3: Программирование кернела и оптимизация

39 980 ₽

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

Описание курса
Этот курс охватывает доплнительные функции Versal ACAP AI Engine, включая отладку приложения на унифицированной программной платформе Vitis, использование встроенных функций, аппаратную реализацию системного дизайна и оптимизацию программы кернела AI Engine.

В этом курсе основное внимание уделяется:
– Описанию расширенных возможностей архитектуры Versal ACAP AI Engine
– Отладке приложений с использованием единой программной платформы Vitis
– Использованию встроенных функций AI Engine и программированию КИХ-фильтров с использованием этих функций
– Аппаратной реализации системного дизайна
– Оптимизации кернелов AI Engine с помощью директив компиляции, стиля программирования и эффективного перемещения данных

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

Кому будет полезен курс?
Разработчикам программного и аппаратного обеспечения, системным архитекторам и всем, кому необходимо ускорить работу своих программных приложений с помощью устройств Xilinx.

Что нужно знать заранее?
– Комфортное программирование на C/C++
– Процесс разработки программного обеспечения
– Программное обеспечение Vitis для ускорения приложения
– Материалы тренингов Проектирование с Versal AI Engine, часть 1 и 2

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

Аппаратная платформа
Архитектура: Xilinx Versal ACAPs

По завершении курса приобретете необходимые навыки для того,чтобы:
– Отлаживать приложения, применяя методологию проверки и трейсинга событий
– Выявлять и устранять различные проблемы, возникающих при разработке приложений.
– Использовать различные методы оптимизации кернела AI Engine, такие как директивы компиляции, программная конвейеризация, кодирование для повышения производительности и использование ресурсов ядра
– Применять рекомендованный стиль кодирования C для повышения производительности, включая встраивание функций, ограничение указателей и перетасовку кода.
– Реализовывать кернел AI Engine, используя встроенные функции mul4_sym и mac4_sym для симметричного КИХ-фильтра
– Реализовывать кернел AI Engine, используя встроенные функции mul4_nc и mac4_nc для несимметричного КИХ-фильтра
– Разрабатывать и генерировать кернел AI Engine с помощью Model Composer

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

День 1
Введение в архитектуру AI Engine (обзор)
Делается введение в архитектуру AI Engine и описываются доступные интерфейсы AI Engine. (Лекция)
Versal AI Engine и перемещение данных
Описывается архитектура модуля памяти для AI Engine и способы доступа к ней. (Лекция)
Отладка приложений AI Engine, часть 1
Описывается методология отладки приложений и отладки с помощью трейсинга событий, таких как события AI Engine, DMA, блокировки. Также демонстрируется визуализация этих событий в единой программной платформе Vitis. (Лекция, Лабораторная работа)
Отладка приложений AI Engine, часть 2 (сценарии применения)
Рассматриваются различные варианты возникающих проблем, такие как конфликты памяти и анализ блокировок. Также делается анализ производительности (профилирование). (Лекция)
Обзор оптимизации ядра AI Engine
Объясняются различные методы оптимизации ядра AI Engine, такие как директивы компиляции, программная конвейеризация, стиль кодирования и использование ресурсов ядра. (Лекция)
Оптимизация ядра AI Engine - Директивы компиляции
Описывается использование директив компиляции для развертывания цикла, выравнивания цикла и программной конвейеризации. (Лекция)
Оптимизация ядра AI Engine - стиль кодирования
Даются рекомендации по кодированию C для повышения производительности, включая встраивание функций, ограничение указателей и перетасовку кода. (Лекция)
Оптимизация ядра AI Engine
Иллюстрируются методы оптимизации ядра, такие как ключевое слово restrict, настраиваемые прагмы и реструктуризация кода. Также рассматривается использование дополнительных аккумуляторов для улучшенного планирования и расчета использования ядра AI Engine. (Лабораторная работа)

День 2
Программирование кернела на C++
Дается обзор функциональных возможностей шаблонов C++ и различных типов состояний экземпляров кернела с использованием классов C++. Также рассматриваются состояния экземпляра кернела со скалярными параметрами и с параметрами массива в конструкторе. (Лекция, Лабораторная работа)
Типы данных – Обзор
Делается функциональный обзор AI Engine, определяются поддерживаемые типы векторных данных и регистры большой разрядности, позволяющие выполнять инструкции одной команды с несколькими данными (SIMD). (Лекция)
Реализация симметричного фильтра на AI Engine
Описывается расширенный внутренний синтаксис MAC, включая встроенные функции mul4_sym и mac4_sym для симметричной реализации КИХ фильтра. Также приведены рекомендации по выбору встроенных функций с фиксированной точкой для КИХ-фильтра. (Лекция, Лабораторная работа)
Реализация несимметричного фильтра AI Engine
Описываются встроенные функции mul4_nc и mac4_nc для несимметричной реализации КИХ фильтра. Также приводятся рекомендации по выбору встроенных функций для КИХ-фильтра. (Лекция)
Операции с плавающей точкой
Объясняются операции с плавающей точкой: fpmul, fpmac и fpmsc, а также полностью настраиваемая встроенная функция с плавающей точкой fpmac_conf. (Лекция)
Model Composer для разработки AI Engine
Делается знакомство с инструментом Model Composer и как с его помощью  разрабатываются кернелы на AI Engine и выполняется моделирование

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