Конференція Високопродуктивні обчислення, Київ, 13-15 жовтня 2014

Опублікована специфікація гетерогенних обчислювальних систем HSA 1.0

19 березня 2015

Організація HSA Foundation, заснована компаніями AMD, ARM, Samsung, Qualcomm, Texas Instruments, Imagination та MediaTek, представила специфікацію HSA 1.0 (Heterogenous System Architecture), визначальну архітектуру, набір runtime-компонентів та програмні інтерфейси гетерогенних обчислювальних систем. Архітектура HSA визначає роботу обладнання. Програмні інтерфейси призначені для розробників програмного забезпечення, інструментаріїв та компіляторів. Специфікація на runtime визначає, як додатки повинні взаємодіяти з платформами HSA.

HSA дозволяє налагодити спільну роботу CPU, GPU та різних DSP-процесорів, та організувати гібридні обчислення, в яких відповідний обчислювальний пристрій обирається в прозорому режимі в залежності від задачі. HSA позиціонується як єдина оптимізована платформа, на базі якої може функціонувати OpenCL та OpenMP. Особливістю HSA є те, що CPU та GPU мають доступ до спільних областей пам'яті, що спрощує організацію роботи гібридних додатків та мінімізує кількість операцій з копіювання пам'яті. Наприклад, GPU та CPU можуть напряму працювати зі спільним блоком пам'яті додатку за аналогією з роботою з пам'яттю в багатопоточних програмах. Специфікації охоплюють також методи відображення віртуальної пам'яті, забезпечення когерентності пам'яті та передачі повідомлень.

В основі HSA лежить спеціальна проміжна мова HSAIL (Heterogeneous System Architecture Intermediate Language) та фіналізатор, що забезпечує її трансляцію в машинний код, специфічний для різного обладнання. Фіналізатор може використовуватися як для статичної компіляції HSAIL під час зборки додатку, так і в процесі виконання або завантаження додатку. Компоненти для використання HSA реалізовані для різних високорівневих мов програмування, в тому числі для С, C++, Java та Python.

Пов'язані з платформою напрацювання, в тому числі симулятор набору інструкцій HSAIL, еталонний runtime та runtime для APU AMD, заснований на LLVM компілятор в HSAIL, компілятор OpenCL в HSAIL, інструментарій для розбору, асемблювання та дезасемблювання HSAIL опубліковані під вільними ліцензіями на GitHub. Драйвер "AMD KFD", що надає інтерфейс HSA для використання обчислювальних можливостей графічних процесорів та APU AMD, вже включений до складу ядра Linux 3.19.

Теги: CPU, GPU, Linux, OpenCL, OpenMP, гібридизація, графічні прискорювачі

Матеріали за темою:

Коментарі