PoCL 1.6, самостоятелна реализация на стандарта OpenCL

Стартирането на новата версия на проекта PoCL 1.6 (Portable Computing Language OpenCL), от акцентите на версия 1.6 е поддръжката за Clang / LLVM 11.0, както и свършената работа за подобряване на производителността и функциите на CUDA, подобрена съвместимост с PowerPC и подобрено използване на OpenCL отстраняване на грешки.

За тези, които не са запознати с PoCL, трябва да знаете какво представлява преносима реализация с отворен код (лицензиран от MIT) на стандарта OpenCL (1.2 с някои поддържани 2.0 функции). Освен че е изпълнение на OpenCL с много устройства с отворен код (наистина хетерогенни) лесно преносими, основната цел на този проект е да подобри оперативната съвместимост на разнообразието от съвместими с OpenCL устройства, като ги интегрира в единна централизирана платформа.

Освен това една от ключовите дългосрочни цели е да се подобри преносимостта на производителността на програмите OpenCL на типове устройства, които използват техники за изпълнение и компилация.

Компилаторът на ядрото OpenCL се основава на LLVM, а Clang се използва като интерфейс към OpenCL C. За да осигури адекватна производителност и преносимост, компилаторът на ядрото OpenCL може да генерира комбинирани функции, които могат да използват различни хардуерни ресурси за паралелизиране на изпълнението на кода. , като VLIW, суперскаларен, SIMD, SIMT, многожилен и многонишкови. Има поддръжка за драйвери за ICD (Installable Client Driver). Има бекендове за осигуряване на работа чрез CPU, ASIP (TCE / TTA), GPU, базиран на HSA архитектура, и NVIDIA GPU (CUDA).

Основни нови функции на PoCL 1.6

Тази нова версия на PoCL 1.6 подчертава способността да се компилира тази реализация с активирани драйвери на устройства по време на компилиране, както и наличността на устройството ще се проверява при стартиране (преди това системи, върху които е изграден и работи PoCL трябва да имат същата поддръжка на контролера). Реализирана е възможността за използване на мениджъра на пакети conda за разпространение на бинарни пакети PoCL с поддръжка на CUDA за системи Linux-x86_64 и Linux-ppc64le.

Друга промяна, която се откроява, е поддръжката за LLVM 11 заедно с разширените възможности за отстраняване на грешки в OpenCL кода при използване на контролера на процесора.

В допълнение трябва да се отбележи, че е извършена оптимизация на производителността на CUDA бекенда, което значително рационализира операциите, свързани с използването на локална памет (FFT, GEMM).

Бенчмаркове, които използват бенчмаркове на SHOC (които сега се тестват непрекъснато, показват, че тези оптимизации са довели до много по-добра производителност, особено за бенчмаркове, включващи локална памет като FFT и GEMM, в сравнение с набор по-горе референция. PoCL сега често постига конкурентна производителност със собствения OpenCL драйвер на Nvidia). Приветстваме приноса за идентифициране и премахване на основните причини за останалите проблемни области. Също така приветстваме приноса за подобряване на покритието на функциите за стандартите OpenCL 1.2 / 3.0.

  • PoCL производителността в много тестове вече е близка до собствения OpenCL драйвер на NVIDIA.
  • Добавен е параметърът за компилация HARDENING_ENABLE, за да се даде възможност на компилаторните опции да генерират по-сигурен libpocl.so на цената на влошаване на производителността.
  • Върната поддръжка за системи PowerPC 8/9, за които нивото на внедряване на OpenCL при използване на pthread и CUDA устройства съответства на нивото CUDA в системи x86_64.
  • Променен ABI за ядра CUDA, които използват __ локални блокове. След надстройката потребителите трябва да изчистят pocl кеша.
  • Премахната поддръжка за опцията за изграждане SINGLE_LLVM_LIB, вместо да се използват STATIC_LLVM и llvm-config, за да се определи към кои библиотеки да се обвърже.

И накрая, ако искате да научите повече за тази нова версия, можете да проверите подробностите в оригиналната реклама. 

Докато за тези, които се интересуват да научат повече за това изпълнение, те могат да се консултират официалния уебсайт от това, където можете да намерите документацията и да изтеглите файлове.

Кодът на проекта се разпространява под лиценза MIT и работата се поддържа на платформи X86_64, MIPS32, ARM v7, AMD HSA APU и различни специализирани TTA процесори с архитектурата VLIW.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

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