Опубліковано HPVM 2.0, компілятор для CPU, GPU, FPGA та апаратних прискорювачів

Проект 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 і різних прискорювачів.
  • p align="justify"> Гнучкі політики планування обчислювального процесу застосовуються під час виконання і реалізуються як на основі інформації про програму (структури графа), так і через компілювання окремих вузлів програми для виконання на будь-якому з цільових обчислювальних пристроїв, доступних в системі.

Генератори коду, що розвиваються проектом, здатні транслювати вузли додатків, визначені за допомогою віртуальної 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

Додати коментар або відгук