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

Представлено реліз проекту PoCL 3.1 (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).

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

  • Додано підтримку Clang/LLVM 15.0.
  • Значно покращено підтримку проміжного представлення шейдерів SPIR-V для драйверів, що використовують CPU та CUDA.
  • Значно перероблено драйвер для спеціалізованого апаратного забезпечення (CL_DEVICE_TYPE_ACCELERATOR) та власних пристроїв (CL_DEVICE_TYPE_CUSTOM), які не підтримують online-компіляцію. Драйвери accel та ttasim об'єднані в новий драйвер AlmaIF.
  • Продовжено роботу над драйвером для графічного API Vulkan.
  • Запропоновано базову реалізацію розширення cl_khr_command_buffer, що дозволяє записати послідовність команд OpenCL для їх виконання одним викликом.

Джерело: opennet.ru

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