Выпущена версия 1.0 компилятора HPVM для гетерогенных параллельных систем
Новую версию компилятора для гетерогенных систем HPVM 1.0 (гетерогенная параллельная виртуальная машина) выпустили разработчики исследовательской группы проекта LLVM из университета Иллинойса 8 апреля, сообщается на сайте проекта.
Компилятор HPVM предназначен для генерации параллельного кода для процессоров, графических процессоров, ПЛИС и ускорителей, причем в версии 1.0 пока не реализована поддержка ПЛИС и ускорителей.
При компиляции используется унифицированное представление программы, которая может выполняться на различном оборудовании, поддерживающем параллельные вычисления.
Компилятор HPVM использует промежуточное представление, не зависящее ни от языка программирования, ни от оборудования. Оно включает векторные инструкции и разделяемую память и может использовать параллелизм на уровне задач, данных и вычислительных конвейеров. На уровне промежуточного представления осуществляется оптимизация вычислений.
Другой составляющей HPVM является виртуальная архитектура набора команд, которая обеспечивает переносимость кода между различным оборудованием и возможность его запуска на процессорах, графических процессорах, ПЛИС и специализированных ускорителях.
Кроме того, HPVM использует гибкое планирование во время выполнения программы, что позволяет добиться высокой производительности, сравнимой с той, которая достигается при написании кода OpenCL вручную непосредственно для графических процессоров и векторных вычислительных устройств.
В версии 1.0 добавлена поддержка тензорных операций линейной алгебры, фронтэндов Pytorch и Keras, а также аппроксимация свёрточных операторов и инструмент для автоматической настройки оптимальной аппроксимации.