Llançament de PoCL 3.0 amb una implementació independent de l'estàndard OpenCL 3.0

S'ha presentat un llançament del projecte PoCL 3.0 (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 implementat el conjunt mínim de funcions necessàries per donar suport a l'especificació OpenCL 3.0. Actualment, el suport d'OpenCL 3.0 només està disponible en backends basats en CPU amb LLVM 14 (altres backends i versions anteriors de LLVM ofereixen suport per a OpenCL 1.2).
  • S'ha afegit suport per a Clang/LLVM 14.
  • Traçat i visualització millorats.
  • S'ha afegit suport per generar grups especialitzats de funcions i incloure-les en fitxers executables amb nuclis OpenCL.

Font: opennet.ru

Afegeix comentari