Представено е издание на проекта 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 архитектура и NVIDIA GPU (чрез libcuda).
В новата версия:
- Реализиран е минимален набор от възможности, необходими за поддръжка на спецификацията OpenCL 3.0. Поддръжката на OpenCL 3.0 е достъпна само в бекенда, базиран на CPU, при наличие на LLVM 14 (в други бекенди и при наличие на стари версии на LLVM се предоставя поддръжка за OpenCL 1.2).
- Добавена е поддръжка за Clang/LLVM 14.
- Подобрен е трасинга и визуализацията.
- Добавена е поддръжка за генериране на специализирани групи функции и включването им в изпълняемите файлове с ядра OpenCL.
Източник: opennet.ru
