Preséntase o lanzamento do proxecto PoCL 3.0 (Portable Computing Language OpenCL), que desenvolve unha implementación do estándar OpenCL independente dos fabricantes de aceleradores gráficos e que permite o uso de varios backends para executar núcleos OpenCL en diferentes tipos de gráficos e procesadores centrais. . O código do proxecto distribúese baixo a licenza MIT. Admite o traballo en plataformas X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU e varios procesadores especializados ASIP (Application-Specific Instruction-set Processor) e TTA (Transport Triggered Architecture) con arquitectura VLIW.
A implementación do compilador do núcleo OpenCL está construída sobre a base de LLVM e Clang úsase como interface para OpenCL C. Para garantir a portabilidade e o rendemento axeitados, o compilador do núcleo OpenCL pode xerar funcións combinadas que poden usar varios recursos de hardware para paralelizar a execución de código, como VLIW, superescalar, SIMD, SIMT, multi-core e multi-threading. Hai soporte para controladores ICD (Controlador de cliente instalable). Hai backends para admitir o funcionamento mediante CPU, ASIP (TCE/TTA), GPU baseada na arquitectura HSA e GPU NVIDIA (a través de libcuda).
Na nova versión:
- Implementouse o conxunto mínimo de funcións necesarias para admitir a especificación OpenCL 3.0. O soporte de OpenCL 3.0 só está dispoñible actualmente en backends baseados en CPU con LLVM 14 (outros backends e versións antigas de LLVM ofrecen soporte para OpenCL 1.2).
- Engadido soporte para Clang/LLVM 14.
- Trazado e visualización mellorados.
- Engadido soporte para xerar grupos especializados de funcións e incluílos en ficheiros executables con núcleos OpenCL.
Fonte: opennet.ru