Версия на 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, а Clang се използва като преден край за OpenCL C. За да осигури подходяща преносимост и производителност, компилаторът на ядрото на OpenCL може да генерира комбинирани функции, които могат да използват различни хардуерни ресурси за паралелизиране на изпълнението на код, като VLIW, суперскаларен, SIMD, SIMT, многоядрен и многонишков. Има поддръжка за ICD драйвери (Installable Client Driver). Има бекенд за поддръжка на работа чрез CPU, ASIP (TCE/TTA), GPU, базиран на HSA архитектура и NVIDIA GPU (чрез libcuda).

В новата версия:

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

Източник: opennet.ru

Добавяне на нов коментар