Реліз PoCL 3.0 з незалежною реалізацією стандарту OpenCL 3.0

Представлено реліз проекту PoCL 3.0 (Portable Computing Language OpenCL), що розвиває реалізацію стандарту OpenCL, незалежну від виробників графічних прискорювачів та дозволяє використовувати різні бекенди для виконання OpenCL-ядер на різних типах графічних та центральних процесорів. Код проекту розповсюджується під ліцензією MIT. Підтримується робота на платформах X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU та різних спеціалізованих ASIP (Application-Specific Instruction-set Processor) та TTA-процесорах (Transport Triggered Architecture) з архітектурою VLIW.

Реалізація компілятора ядер OpenCL побудована на базі LLVM, а як фронтенд для OpenCL C використовується Clang. Для забезпечення належної переносимості та продуктивності компілятор ядер OpenCL може генерувати комбіновані функції, які можуть використовувати різні апаратні ресурси для розпаралелювання виконання коду, такі як VLIW, суперскалярність, SIMD, SIMT, багатоядерність та багатопоточність. Є підтримка ICD-драйверів (Installable Client Driver). Є бекенди для забезпечення роботи через CPU, ASIP (TCE/TTA), GPU на базі архітектури HSA та GPU NVIDIA (через libcuda).

В новой версії:

  • Реалізовано мінімальний набір можливостей, необхідний підтримки специфікації OpenCL 3.0. Підтримка OpenCL 3.0 поки доступна тільки в бекенді на базі CPU за наявності LLVM 14 (в інших бекендах та за наявності старих версій LLVM надається підтримка OpenCL 1.2).
  • Додано підтримку Clang/LLVM 14.
  • Поліпшено трасування та візуалізація.
  • Додано підтримку генерації спеціалізованих груп функцій та включення їх у виконувані файли з ядрами OpenCL.

Джерело: opennet.ru

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