Xilinx пытается облегчить программирование FPGA

Xilinx пытается облегчить программирование FPGA

Выпуск 7(6731) от 08 апреля 2021 г.
РУБРИКА: ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА

Программирование процессора – ​хорошо известная задача. С появлением платформы параллельных вычислений и модели программирования CUDA корпорации nVidia и стандарта OpenCL она существенно упростилась даже для графических процессоров. Однако в случае вентильных матриц, программируемых пользователем (FPGA), этот процесс считался прерогативой разработчиков ИС, а не программистов. Корпорации Xilinx и Intel пытаются изменить ситуацию при помощи своих семейств инструментальных средств Vitis и инициативы OneAPI.

Новость о том, что клиентское инструментальное средство высокоуровневого синтеза (high-level synthesis, HLS) Vitis корпорации Xilinx обладает открытым исходным кодом, стала еще одним толчком к демократизации разработки ПО для FPGA. Это важно, так как некоторые проблемы лучше решаются при помощи FPGA с их программируемыми структурами данных и возможностями передачи данных с малой задержкой (временем ожидания). По сути, FPGA – ​это оригинальная (исходная) программно-управляемая аппаратная платформа. FPGA также помогает переопределять аппаратные функции в развернутом у потребителя оборудовании. Перенос проектирования программирования FPGA на языки высокого уровня наподобие С и С++ открывает новые возможности для системных разработчиков.

Использование ПО с открытым исходным кодом вместо проприетарного (фирменного) – ​хороший способ расширить участие в разработках представителей профильного сообщества и стимулировать появление большого числа инноваций. Корпорация Xilinx разместила свой код в репозитории GitHub (https://github.com/Xilinx/HLS), здесь же будут размещаться все последующие версии.

Корпорация Xilinx сотрудничает с фирмой Silexica (специализируется на ПО FPGA), создавшей плагин SLX (SLX Plugin), расширяющий преобразования кода Vitis HLS2020.2 за счет новой модели ввода данных, применение которой стало возможным благодаря проекту с открытым исходным кодом. Все это позволяет снизить время ожидания и увеличить пропускную способность HLS.

Согласно данным последних исследований рынка FPGA, корпорация Xilinx является крупнейшим поставщиком этих приборов в стоимостном выражении. Соответственно, FPGA этой корпорации применяются большим числом системных разработчиков, формирующих крупное сообщество. Таким образом, открыв исходный код клиентской части Vitis HLS, корпорация Xilinx расширяет возможности внедрения своих инструментальных средств.

Корпорация Xilinx привлекла к совершенствованию и подстройке под требования заказчиков своего инструментального средства HLS ряд известных университетов, таких как Университет штата Иллинойс (Урбана-Шампейн), Имперский колледж Лондона и Гонконгский университет науки и техники. Эти университеты активно используют HLS в своих перспективных исследованиях. Особый интерес представляет один из реализуемых Гонконгским университетом проектов – ​средство HLS под различные FPGA, которое автоматически разбивается на подмодули, оптимизированные для прикладных применений различных FPGA, подключенных межсоединениями к сети или памяти DDR.

Корпорация Xilinx продвигает свои FPGA для академического использования в рамках университетской программы (https://www.xilinx.com/support/university.htm). Это приводит к появлению большого числа научных работ, в которых для программирования FPGA Xilinx применяется инструментальное средство HLS. Специалисты корпорации утверждают, что лучший способ прояснить все аспекты FPGA и связанных с ними технологий – ​ознакомление студентов со всеми гранями этого вопроса на ранних этапах их карьеры. Конечная цель состоит в том, чтобы сделать FPGA для программистов еще одним специализированным кристаллом физического уровня – ​наподобие центральных и графических процессоров.


Технологический процесс проектирования Vitis HLS

Цепочка инструментальных средств Vitis HLS корпорации Xilinx позволяет использовать код С/С++ и функции OpenCL, которые питают компилятор Clang, наряду со специфичными для HLS программами. Компилятор и т. н. прагмы («псевдокомментарии», стандартизованные формы указания компилятору) в конечном итоге развертываются в FPGA с ее логической структурой, блоками ОЗУ и функциями цифровой обработки сигнала (см. рисунок). Клиентской частью Vitis является компилятор Clang в сочетании с промежуточными представлениями (intermediate representation, IR). Промежуточный уровень «инфраструктуры компилятора» (LLVM – ​универсальная система анализа, трансформации и оптимизации) высокоуровневого синтеза реализуется в RTL-результатах, необходимых для пространственного развертывания аппаратного обеспечения. Результат работы клиентской части Vitis HLS далее передается на специфичный для FPGA корпорации Xilinx уровень оптимизации и прикладную часть проектирования топологии. Прикладная часть специфична для Xilinx и не является частью системы с открытым исходным кодом.



Источник: Xilinx

Технологический процесс проектирования Vitis HLS


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

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

Открытые исходные коды в клиентской части способны помочь решить больше проблем заказчиков. Подготовленные клиенты, такие как поставщики облачных услуг, смогут глубоко подстроить процесс проектирования FPGA под свои требования и включить в него предпочтительные для них языки программирования. Кроме того, при помощи открытых исходных кодов независимые поставщики смогут вводить в процесс проектирования не только дополнительные языки помимо С/С++, но и различные промежуточные представления «инфраструктуры компилятора», а также различные цели в прикладную часть.


Сможет ли Xilinx сделать высокоуровневый синтез преобладающей тенденцией?

Возможно, последнее решение корпорации Xilinx дает ту платформу, на которой могут сойтись участники дискуссий о совместном проектировании аппаратного и программного обеспечения. Для программистов это способ получить доступ к проблемам аппаратных средств и их оптимизации, не теряя при этом высокоуровневых конструкций. Правда, от них тогда потребуется более четкое представление о целевом аппаратном обеспечении – ​например, спецификации каналов (внутренних шин, путей) передачи данных, которые будут использованы для тонкой подстройки аппаратных реализаций. И HLS может стать одним из инструментальных средств для осуществления исследований в этой области.

HLS – ​это одна из возможных парадигм программирования, поэтому важно ее преподавание в университетах – ​для того чтобы специалисты осваивали ее в самом начале своей карьеры. Реализация HLS LLVM IR с открытым исходным кодом открывает возможности для большего ее освоения и доверия к ней в исследовательских сообществах. Корпорация Xilinx пока сохраняет контроль над HLS, поскольку разрабатывает его уже более 10 лет. Со временем, однако, роль экосистемы в дальнейшем развитии HLS будет расти. Видение корпорации Xilinx относительно HLS состоит в том, чтобы сделать его широко распространенным, возможно, даже фактическим стандартом в области программирования пространственных и ускоренных вычислений. Стать настоящим отраслевым стандартом HLS поможет сообщество пользователей и активных участников всей экосистемы. Открытие исходных кодов HLS – ​лишь начало следующего этапа.


Krewell Kevin. Xilinx Opens Up Vitis HLS Tool for FPGAs. EE Times, March 9, 2021: https://www.eetimes.com/xilinx-opens-up-vitis-hls-tool-for-fpgas/#


ЧИТАЙТЕ ТАКЖЕ