Релиз проекта PoCL 1.4 (Portable Computing Language OpenCL)
Доступен релиз проекта PoCL 1.4 (Portable Computing Language OpenCL), развивающего реализацию стандарта OpenCL, независимую от производителей графических ускорителей и позволяющую использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров. Код проекта распространяется под лицензией MIT. Поддерживается работа на платформах X86_64, MIPS32, ARM v7, AMD HSA APU и различных специализированных TTA-процессорах (Transport Triggered Architecture) c архитектурой VLIW.
Реализация компилятора ядер OpenCL построена на базе LLVM, а в качестве фронтэнда для OpenCL C используется Clang. Для обеспечения должной переносимости и производительности компилятор ядер OpenCL может генерировать комбинированные функции, которые могут использовать различные аппаратные ресурсы для распараллеливания выполнения кода, такие как VLIW, суперскалярность, SIMD, SIMT, многоядерность и многопоточность. Имеется поддержка ICD-драйверов (Installable Client Driver). Присутствуют бэкенды для обеспечения работы через CPU, ASIP (TCE/TTA), GPU на базе архитектуры HSA и GPU NVIDIA (CUDA).
В новой версии:
- Добавлена поддержка LLVM/Clang 9.0. Прекращена поддержка версий LLVM старее 6.0.
- Улучшена реализация на базе CPU промежуточных представлений кода SPIR и SPIR-V (используется в API Vulkan), которые могут применяться как для представления шейдеров для графики, так и для параллельных вычислений;
- Добавлен драйвер pocl-accel с примером инфраструктуры для поддержки аппаратных ускорителей OpenCL 1.2, реализующих отражаемый в память (mmap) управляющий интерфейс;
- Добавлена возможность сборки установок pocl, не привязанных к каталогам (relocatable).