Versió PoCL 3.1 amb una implementació independent de l'estàndard OpenCL

S'ha presentat un llançament del projecte PoCL 3.1 (Portable Computing Language OpenCL), que desenvolupa una implementació de l'estàndard OpenCL que és independent dels fabricants d'acceleradors gràfics i permet l'ús de diversos backends per executar nuclis OpenCL en diferents tipus de gràfics i centrals. processadors. El codi del projecte es distribueix sota la llicència MIT. Admet el treball a les plataformes X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU i diversos processadors especialitzats ASIP (Application-Specific Instruction-set Processor) i TTA (Transport Triggered Architecture) amb arquitectura VLIW.

La implementació del compilador del nucli OpenCL es construeix sobre la base de LLVM, i Clang s'utilitza com a interfície per a OpenCL C. Per garantir la portabilitat i el rendiment adequats, el compilador del nucli OpenCL pot generar funcions de combinació que poden utilitzar diversos recursos de maquinari per paral·lelitzar l'execució de codi, com ara VLIW, superescalar, SIMD, SIMT, multi-nucli i multi-threading. Hi ha suport per als controladors ICD (Controlador de client instal·lable). Hi ha backends per admetre el funcionament mitjançant CPU, ASIP (TCE/TTA), GPU basada en l'arquitectura HSA i GPU NVIDIA (mitjançant libcuda).

En la nova versió:

  • S'ha afegit suport per a Clang/LLVM 15.0.
  • Значительно улучшена поддержка промежуточного представления шейдеров SPIR-V для драйверов, использующих CPU и CUDA.
  • Значительно переработан драйвер для специализированного аппаратного обеспечения (CL_DEVICE_TYPE_ACCELERATOR) и собственных устройств (CL_DEVICE_TYPE_CUSTOM), не поддерживающих online-компиляцию. Драйверы accel и ttasim объединены в новый драйвер AlmaIF.
  • Продолжена работа над драйвером для графического API Vulkan.
  • Предложена базовая реализация расширения cl_khr_command_buffer, позволяющего записать последовательность команд OpenCL для их выполнения одним вызовом.

Font: opennet.ru

Afegeix comentari