Найти в Дзене

7нм от Xilinx: Versal AI, VCK190 и Vitis 2020.2

Оглавление

Последовательно продвигая свою новую 7нм. серию адаптивных вычислительных платформ (ACAP) Versal, Xilinx отметила новый 2021 год выпуском первых серийных чипов серий Versal Prime и Versal AI. Одновременно с выпуском чипов, поступили в продажу и отладочные платы для этих кристаллов – VMK180 и VCK190. Эти отладки различаются только установленными на них кристаллами Versal, а во всем остальном они одинаковы. Мы остановимся на самой “продвинутой” серии Versal AI и отладочной плате для нее VCK190. Отметим, что как отдельные чипы, так и отладочные платы уже доступны для заказа, в том числе и в РФ. В данной короткой статье мы сделаем обзор самих кристаллов, отладочной платы VCK190 и средств разработки.

Чипы серии Versal имеют в своем составе процессорные ядра ARM (2xCortex-A72 +2xCortex-R5) с богатой периферией, программируемую логику: программируемые логические ячейки (LUT), распределенную, блочную и Ultra память, блоки DSP, высокоскоростные трансиверы и аппаратные ядра их использующие (PCI, Ethernet), а так же аппаратные контроллеры динамической памяти. В серии Versal RF, так же присутствуют высокоскоростные ЦАП/АЦП гигагерцового диапазона. Наряду с этими, стандартными структурными элементами систем на кристаллах, в серии Versal, появились и ранее не встречавшиеся архитектурные новинки – внутри кристальная коммуникационная сеть, блоки искусственного интеллекта (AI Engines, в серии VersalAI).

7нм от Xilinx
7нм от Xilinx

Как видно из рисунка, Versal является чрезвычайно мощной вычислительной платформой для самого широкого спектра новейших применений, в том числе в системах ADAS, 5G и подобных. Отладочная плата VCK190 на основе чипа XCVC1902-2MSEVSVA2197, так же имеет очень солидный внешний вид:

Отладочная плата VCK190 на основе чипа XCVC1902-2MSEVSVA2197
Отладочная плата VCK190 на основе чипа XCVC1902-2MSEVSVA2197

У любого разработчика, хоть раз взглянувшего на всю эту красоту, первым делом возникает вопрос – как со всем этим работать, как создавать готовые устройства, использующие всю мощь уникальной архитектуры Versal? Ответ на этот вопрос – работать с такими системами одновременно и легко и … сложно, но всегда очень интересно. Сложной работу делает наличие многочисленных средств разработки, которые требуется изучать и осваивать, но после этого работа становится легкой и приятной, и небольшая команда или даже один опытный разработчик, могут создавать устройства, которые еще лет 10 назад были бы не под силу и большим коллективам.

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

Вести разработку на платформе Versal удобнее всего методом “сверху вниз”, т.е. сначала создать общий облик системы, а затем углубляться в детальную проработку. У Xilinx существует такое понятие как “платформа”, т.е. система, содержащая в себе набор некоторых “стандартных” компонентов, которую затем можно кастомизировать под конкретные требования заказчика. Поэтому начинать следует с первичной вычислительной платформы и конфигурирования для нее ОС Linux. Для этого можно воспользоваться каким-либо стандартным референс-дизайном Xilinx, уже содержащим близкую по функциональности платформу и программное обеспечение для нее, включая сконфигурированный Linux, и в дальнейшем развивать ее в требуемом направлении как в аппаратной, так и в программной части. Найти такие платформы можно, например здесь:

https://github.com/Xilinx/vck190-base-trd

Структура одной из доступных платформ приведена на рисунке ниже:

Структура VCK190
Структура VCK190

Конфигурирование Linux производится с помощью пакета PetaLinux. При разработке платформы “с нуля” либо ее серьезной модификации, понадобится САПР Xilinx Vivado, но часто можно обойтись и без него, создав недостающие части непосредственно в САПР Vitis. Для работы с нейронными сетями необходимо установить пакет Vitis AI (не путать с обычным Vitis, это разные средства разработки). САПР Vitis версии 2020.2 с поддержкой AI-engines является основным инструментом проектирования для ACAP Versal AI. Ниже приведена структура проекта в Vitis:

Структура VCK190
Структура VCK190

Массив AI-Engines

Кратко опишем новую структуру, появившуюся в Versal AI массив AI-Engines, предназначенный для задач вычисления нейросетей, а так же других задач, требующих интенсивных онлайн вычислений, например, формирование диаграммы направленности ФАР-антенн, цифровой фильтрации, БПФ и т.д.

AI-Engines представляют собой систолический (т.е. обладающий регулярной структурой) массив векторных процессоров, каждый из которых может быть запрограммирован индивидуально, и при этом обмениваться данными со своими соседями через общую память. (На текущий момент максимальное количество AI Engines в массиве – 400 шт.)

массив AI-Engines
массив AI-Engines

Как видно, уже отдельная ячейка AI-Engine представляет собой довольно сложное законченное высокопроизводительное вычислительное устройство, а объединение таких устройств в единую структуру многократно повышает вычислительную мощность системы. Но вместе с этим появляется проблема эффективного программирования и использования столь сложной вычислительной системы. Эта проблема решается в рамках САПР Vitis. Имеется возможность индивидуального программирования каждой ячейки AI, но так же можно запрограммировать их совместно в рамках единой вычислительной сети. Такая структура описывается в виде графа и имеет удобное визуальное представление. Так же разработаны специальные библиотечные функции для решения различных задач.

На рисунке ниже приведен процесс разработки программы для AI-engines (слева – для отдельного вычислителя, справа – для нескольких вычислителей, объединенных в единую сеть). Во многих случаях, в ручной работе нет необходимости. Например, программирование массива AI-engines для задач искусственного интеллекта на базе нейросетей – операция полностью автоматизированная.

AI engine programming
AI engine programming

Выводы

Серия Versal AI представляет собой уникальную линейку устройств рекордной производительности, обеспечивающих решение самых сложных задач в самых передовых областях применения вычислительной техники. Оборудование и средства разработки доступны, и те, кто освоят их раньше других, получат весомое конкурентное преимущество.