Rilascio di PoCL 5.0 con implementazione indipendente dello standard OpenCL

È stato pubblicato il rilascio del progetto PoCL 5.0 (Portable Computing Language OpenCL), che sviluppa l'implementazione dello standard OpenCL, indipendente dai produttori di acceleratori grafici e consente di utilizzare diversi backend per eseguire i kernel OpenCL su diversi tipi di processori grafici e centrali. Il codice del progetto è distribuito con la licenza MIT. È supportato il funzionamento su piattaforme X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA e vari processori ASIP (Application-Specific Instruction-set Processor) e TTA (Transport Triggered Architecture) con architettura VLIW.

L'implementazione del compilatore dei kernel OpenCL è basata su LLVM, mentre Clang funge da frontend per OpenCL C. Per garantire la dovuta portabilità e prestazioni, il compilatore dei kernel OpenCL può generare funzioni combinate che possono utilizzare diverse risorse hardware per parallelizzare l'esecuzione del codice, come VLIW, superscalare, SIMD, SIMT, multicompatibilità e multithreading. È presente il supporto per i driver ICD (Installable Client Driver). Sono disponibili backend per garantire il funzionamento tramite CPU, ASIP (TCE/TTA), GPU basate su architettura HSA e GPU NVIDIA (tramite libcuda).

Nella nuova versione:

  • È stato implementato un nuovo backend "Remote", progettato per organizzare calcoli distribuiti trasferendo l'elaborazione dei comandi OpenCL su altri host nella rete, su cui è in esecuzione un processo in background pocld.
  • Nel driver CUDA sono state implementate funzionalità aggiuntive e estensioni OpenCL 3.0, come operazioni atomiche, variabili con ambito limitato, sottogruppi intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier e sub_group_ballot.
  • È stato migliorato il supporto per CPU basate su architettura RISC-V. Il funzionamento di PoCL è stato testato sulla scheda Starfive VisionFive 2 con ambiente Ubuntu 23.10 caricato con LLVM 17 e GCC 13.2.
  • È stata implementata l'estensione cl_ext_float_atomics con supporto per FP32 e FP64.
  • L'implementazione dell'estensione cl_khr_command_buffer è stata aggiornata alla versione 0.9.4.
  • È stato proposto un backend sperimentale AlmaIF per FPGA.
  • È stato rimosso il supporto incompleto per la rappresentazione intermedia degli shader SPIR 1.x/2.0. Come linguaggio intermedio raccomandato per gli shader è stato dichiarato SPIR-V.
  • È stato aggiunto il supporto per Clang/LLVM 17.0. Il supporto per Clang/LLVM 10-13 è stato dichiarato obsoleto.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster