Lanzamento de PoCL 3.1 con implementación independente do estándar OpenCL

Preséntase o lanzamento do proxecto PoCL 3.1 (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:

  • Engadido soporte para Clang/LLVM 15.0.
  • Compatibilidade de representación intermedia do sombreador SPIR-V mellorada significativamente para os controladores de CPU e CUDA.
  • O controlador para o hardware especializado (CL_DEVICE_TYPE_ACCELERATOR) e os dispositivos personalizados (CL_DEVICE_TYPE_CUSTOM) que non admiten a compilación en liña foi deseñado significativamente. Os controladores accel e ttasim fusionáronse no novo controlador AlmaIF.
  • Continúa o traballo no controlador para a API de gráficos Vulkan.
  • Proponse unha implementación básica da extensión cl_khr_command_buffer, que permite escribir unha secuencia de comandos OpenCL para a súa execución nunha chamada.

Fonte: opennet.ru

Engadir un comentario