Опубликован HPVM 2.0, компилятор для CPU, GPU, FPGA и аппаратных ускорителей
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Проект LLVM представил выпуск компилятора HPVM 2.0 (Heterogeneous Parallel Virtual Machine), нацеленного на упрощение программирования для гетерогенных систем и предоставляющего средства для генерации кода для CPU, GPU, FPGA и предметно-ориентированных аппаратных ускорителей. Код проекта распространяется под лицензией Apache 2.0.
Программирование для гетерогенных параллельных систем усложнено из-за наличия в одной системе компонентов, использующих разные модели достижения параллелизма (ядра CPU, векторные инструкции, GPU и т.п.), разные наборы инструкций и разные иерархии памяти. В каждой системе используется своя комбинация подобных компонентов. Основная идея проекта HPVM в использовании при компиляции унифицированного представления параллельно выполняемых программ, которое может применяться для различных видов оборудования, поддерживающего распараллеливание вычислений, включая GPU, векторные инструкции, многоядерные процессоры, FPGA и различные специализированные чипы-ускорители.
В отличие от других систем в HPVM попытались совместить три возможности для организации гетерогенных вычислений - независимое от языка программирования и оборудования промежуточное представление (IR), виртуальную архитектуру набора команд (V-ISA) и планирование во время выполнения (runtime scheduling):
- Промежуточное представление HPVM расширяет промежуточное представление инструкций LLVM применением иерархического графа потоков данных, позволяющим охватывать параллелизм на уровне задач, данных и вычислительных конвейеров. Промежуточное представление HPVM также включает векторные инструкции и разделяемую память. Основной целью применения промежуточного представления является эффективная генерация кода и оптимизации для гетерогенных систем.
- Виртуальная архитектура набора команд (V-ISA) абстрагирует низкоуровневые особенности оборудования и унифицирует различные формы параллелизма и архитектуры памяти, используя только базовую модель обеспечения параллелизма - граф потоков данных. V-ISA позволяет добиться переносимости между разными типами оборудования для параллельных вычислений и даёт возможность не терять производительность при использовании разных элементов гетерогенных систем. Виртуальная ISA также может применяться для поставки универсального исполняемого кода программ, который может запускаться с привлечением CPU, GPU, FPGA и различных ускорителей.
- Гибкие политики планирования вычислительного процесса применяются во время выполнения и реализуются как на основе информации о программе (структуры графа), так и через компилирование отдельных узлов программы для выполнения на любом из целевых вычислительных устройств, доступных в системе.
Развиваемые проектом генераторы кода, способны транслировать узлы приложений, определённые при помощи виртуальной ISA, для выполнения с использованием GPU NVIDIA (cuDNN и OpenCL), векторных инструкций Intel AVX, FPGA и многоядерных CPU x86. Отмечается, что производительность результатов работы трансляторов HPVM сопоставима с написанным вручную кодом OpenCL для GPU и векторных вычислительных устройств.
Основные новшества HPVM 2.0:
- Предложен языковой фронтэнд Hetero-C++, упрощающий распараллеливание кода приложений на языках C/C++ для компиляции в HPVM. Hetero-C++ определяет расширения для параллелизма на уровне данных и иерархических задач, преобразуемые в графы потоков HPVM.
- Добавлен бэкенд FPGA, обеспечивающий поддержку выполнения кода на FPGA производства Intel. Для организации выполнения используется Intel FPGA SDK для OpenCL.
- Добавлен фреймворк DSE (Design Space Exploration), включающий оптимизации компилятора и механизмы выявления узких мест для автоматического тюнинга приложений для заданной аппаратной платформы.
Фреймворк содержит готовую модель производительности для FPGA от Intel и даёт возможность подключать собственные обработчики для оптимизации под любые устройства, поддерживаемые HPVM. Оптимизации могут применяться как на уровне графа потоков данных HPVM, так и на уровне LLVM.
- Компоненты LLVM обновлены до версии 13.0.
- Проведена реорганизация кода, нацеленная на упрощение навигации по кодовой базе, библиотекам и утилитам.
- Улучшена инфраструктура для тестирования, добавлены новые тесты различных компонентов HPVM.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://discourse.llvm.org/t/a...)
- OpenNews: Инициатива по развитию открытых проектов для FPGA
- OpenNews: Опубликована спецификация гетерогенных вычислительных систем HSA 1.0
- OpenNews: Для ядра Linux развивается система распределённого выполнения потоков Popcorn
- OpenNews: Разработчики из Google предложили разработать свою libc для LLVM
- OpenNews: Первый стабильный релиз компоновщика Mold, развиваемого разработчиком LLVM lld
Похожие новости:
- В ядре Linux 5.18 планируют разрешить использование стандарта языка Си C11
- Опубликован набор патчей, ускоряющих сборку ядра Linux на 50-80%
- Доступен Emscripten 3.0, компилятор из C/C++ в WebAssembly
- Предложен компилятор исходных текстов на языке TypeScript в машинный код
- cproc - новый компактный компилятор для языка Си
- [Высокая производительность, Компиляторы, Процессоры] DSP-процессоры: назначение и особенности
- Проект LLVM представил HPVM 1.0, компилятор для CPU, GPU, FPGA и ускорителей
- [Ненормальное программирование, Разработка веб-сайтов, Программирование, Haskell] Зачем мы транспилируем Haskell в JavaScript
- [Программирование, Разработка мобильных приложений, Разработка под Android, Kotlin] Влияние data-классов на вес приложения
- [Ненормальное программирование, C++] Мемоизация в compile time вычислениях в C++
Теги для поиска: #_hpvm, #_compile
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:52
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Проект LLVM представил выпуск компилятора HPVM 2.0 (Heterogeneous Parallel Virtual Machine), нацеленного на упрощение программирования для гетерогенных систем и предоставляющего средства для генерации кода для CPU, GPU, FPGA и предметно-ориентированных аппаратных ускорителей. Код проекта распространяется под лицензией Apache 2.0. Программирование для гетерогенных параллельных систем усложнено из-за наличия в одной системе компонентов, использующих разные модели достижения параллелизма (ядра CPU, векторные инструкции, GPU и т.п.), разные наборы инструкций и разные иерархии памяти. В каждой системе используется своя комбинация подобных компонентов. Основная идея проекта HPVM в использовании при компиляции унифицированного представления параллельно выполняемых программ, которое может применяться для различных видов оборудования, поддерживающего распараллеливание вычислений, включая GPU, векторные инструкции, многоядерные процессоры, FPGA и различные специализированные чипы-ускорители. В отличие от других систем в HPVM попытались совместить три возможности для организации гетерогенных вычислений - независимое от языка программирования и оборудования промежуточное представление (IR), виртуальную архитектуру набора команд (V-ISA) и планирование во время выполнения (runtime scheduling):
Основные новшества HPVM 2.0:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:52
Часовой пояс: UTC + 5