Релиз проекта PoCL 1.4 (Portable Computing Language OpenCL)
Релиз проекта 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).