Релиз PoCL 1.3, независимой реализации стандарта OpenCL

Доступен релиз проекта PoCL 1.3 (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 8.0. Обеспечена поддержка ICD (Installable Client Driver) на платформе macOS. Реализована возможность сборки pocl без бэкенд драйверов для CPU. Для HSA (Heterogeneous System Architecture) представлена начальная поддержка компиляции ISA поверх HSA runtime. Проведена чистка кодовой базы, в том числе удалена библиотека Vecmathlib и прекращена поддержка старых версий LLVM (меньше 6.0).

© OpenNet