HPVM - компилятор на основе LLVM для CPU, GPU, FPGA и ускорителей.

Разработчики проекта LLVM выпущен недавно выпустил компилятор гетерогенных параллельных виртуальных машин (ХПВМ) 1.0, Целью которой является упрощает программирование для гетерогенных систем и предоставляет инструменты генерации кода для ЦП, графических процессоров, ПЛИС и аппаратных ускорителей зависит от домена (поддержка FGPA и ускорителей не была включена в версию 1.0).

Основная идея за HPVM заключается в компиляции единого представления исполняемых программ одновременно которые можно использовать для работы на разнообразном параллельном оборудовании, включая графические процессоры, векторные инструкции, многоядерные процессоры, FPGA и различные специализированные микросхемы ускорителей.

Программирование для гетерогенных параллельных систем осложняется наличием в системе компонентов (ядер ЦП, векторных инструкций, графических процессоров и т. Д.), Которые используют разные модели для достижения параллелизма, разные наборы инструкций и разные иерархии памяти, и каждая система имеет комбинацию такие компоненты меняются.

Исследовательская группа LLVM Compiler Research Group штата Иллинойс рада объявить о выпуске HPVM с открытым исходным кодом (версия 1.0). HPVM - это переориентирующая структура компилятора, ориентированная на ЦП, ГП и ускорители (этот выпуск не включает поддержку ускорителей) [1]. HPVM использует независимый от цели компилятор IR, который расширяет компилятор LLVM 9.0.0 IR с помощью явного иерархического представления потока данных, которое фиксирует задачи, данные и конвейерный параллелизм.

Эта версия является важным дополнением к нашей первой версии (версия 0.5), которая добавляет поддержку тензорных операций линейной алгебры, интерфейсы Pytorch и Keras, аппроксимации для операторов свертки и эффективную и гибкую структуру для аппроксимации. 

Следует отметить, что использование HPVM может значительно повысить производительность как eПроизводительность трансляторов HPVM сопоставима с производительностью кода OpenCL. рукописный для графических процессоров и векторных вычислительных устройств. В отличие от других систем, HPVM попытался объединить три возможности для организации гетерогенных вычислений: независимое от языка и оборудования промежуточное представление, виртуальную архитектуру набора команд (V-ISA) и программирование во время выполнения.

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

Промежуточное звено HPVM также включает векторные инструкции и разделяемую память. Основная цель использования промежуточного представления - эффективная генерация кода и оптимизация для гетерогенных систем.

Архитектура виртуального набора команд (V-ISA) абстрагирует низкоуровневые аппаратные функции и объединяет различные формы параллелизма и архитектур памяти, используя только базовую модель параллелизма, граф потока данных. V-ISA позволяет достичь переносимости между различными типами параллельного вычислительного оборудования и позволяет не терять производительность при использовании разных элементов гетерогенных систем. Virtual ISA также может использоваться для предоставления универсального исполняемого программного кода, который можно запускать с использованием CPU, GPU, FPGA и различных ускорителей.

На текущем этапе развития, HPVM предлагает генераторы кода, способные переводить узлы приложений, определенные ISA. Virtual для запуска с использованием графических процессоров NVIDIA (cuDNN и OpenCL), векторных инструкций Intel AVX и многоядерных процессоров x86. }

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

По сравнению с первой предварительной версией, HPVM 1.0 включает поддержку тензорных операций линейной алгебры, интерфейсы для Pytorch и Keras, а также фреймворк настройки аппроксимации, который автоматически выбирает оптимальные приближения для определенных тензорных операций и выбирает настройку для оптимальной производительности.

Наконец, если вам интересно узнать больше об этом компиляторе, Вы можете проверить подробности по следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.