Релиз PoCL 4.0 с независимой реализацией стандарта OpenCL
Представлен релиз проекта PoCL 4.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) c архитектурой VLIW.
Реализация компилятора ядер OpenCL построена на базе LLVM, а в качестве фронтэнда для OpenCL C используется Clang. Для обеспечения должной переносимости и производительности компилятор ядер OpenCL может генерировать комбинированные функции, которые могут использовать различные аппаратные ресурсы для распараллеливания выполнения кода, такие как VLIW, суперскалярность, SIMD, SIMT, многоядерность и многопоточность. Имеется поддержка ICD-драйверов (Installable Client Driver). Присутствуют бэкенды для обеспечения работы через CPU, ASIP (TCE/TTA), GPU на базе архитектуры HSA и GPU NVIDIA (через libcuda).
В новой версии:
Добавлена поддержка Clang/LLVM 16.0. Прекращена поддержка Clang/LLVM 6–9.
Улучшена поддержка промежуточного представления шейдеров SPIR-V для драйверов, использующих CPU и CUDA.
Добавлен драйвер для устройств, использующих API Level Zero.
В драйвер CPU добавлена поддержка глобальных переменных, видимых на уровне всей программы (program-scope), а не отдельных функций (function-scope). Добавлена поддержка общего адресного пространства. Реализованы функции cl_khr_fp16 (LLVM 16+), cl_khr_subgroups и cl_intel_unified_shared_memory.
Источник: http://www.opennet.ru/opennews/art.shtml? num=59331
© OpenNet