Lanzamiento de PoCL 3.0 con implementación independiente del estándar OpenCL 3.0

Se ha presentado una versión del proyecto PoCL 3.0 (Portable Computing Language OpenCL), que desarrolla una implementación del estándar OpenCL independiente de los fabricantes de aceleradores gráficos y permite el uso de varios backends para ejecutar kernels OpenCL sobre diferentes tipos de gráficos y centrales. procesadores. El código del proyecto se distribuye bajo la licencia MIT. Admite el trabajo en plataformas X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU y varios procesadores especializados ASIP (procesador de conjunto de instrucciones específicas de la aplicación) y TTA (arquitectura activada por transporte) con arquitectura VLIW.

La implementación del compilador del kernel OpenCL se basa en LLVM y Clang se utiliza como interfaz para OpenCL C. Para garantizar la portabilidad y el rendimiento adecuados, el compilador del kernel OpenCL puede generar funciones combinadas que pueden utilizar varios recursos de hardware para paralelizar la ejecución de código, como VLIW, superescalar, SIMD, SIMT, multinúcleo y multiproceso. Hay soporte para controladores ICD (controlador de cliente instalable). Hay backends para admitir la operación a través de CPU, ASIP (TCE/TTA), GPU basada en arquitectura HSA y GPU NVIDIA (a través de libcuda).

Versículos nuevos:

  • Se ha implementado el conjunto mínimo de funciones necesarias para admitir la especificación OpenCL 3.0. Actualmente, la compatibilidad con OpenCL 3.0 solo está disponible en backends basados ​​en CPU con LLVM 14 (otros backends y versiones anteriores de LLVM brindan soporte para OpenCL 1.2).
  • Se agregó soporte para Clang/LLVM 14.
  • Seguimiento y visualización mejorados.
  • Se agregó soporte para generar grupos especializados de funciones e incluirlos en archivos ejecutables con kernels OpenCL.

Fuente: opennet.ru

Añadir un comentario