Γ stata presentata la versione del progetto PoCL 3.1 (Portable Computing Language OpenCL), che sviluppa un'implementazione dello standard OpenCL indipendente dai produttori di acceleratori grafici e consente l'utilizzo di diversi backend per l'esecuzione dei kernel OpenCL su diversi tipi di grafica e centrali processori. Il codice del progetto Γ¨ distribuito sotto la licenza MIT. Supporta il lavoro su piattaforme X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA e vari processori specializzati ASIP (Application-Specific Instruction-set Processor) e TTA (Transport Triggered Architecture) con architettura VLIW.
L'implementazione del compilatore del kernel OpenCL Γ¨ costruita sulla base di LLVM e Clang viene utilizzato come front-end per OpenCL C. Per garantire portabilitΓ e prestazioni adeguate, il compilatore del kernel OpenCL puΓ² generare funzioni combinate che possono utilizzare varie risorse hardware per parallelizzare l'esecuzione del codice, come VLIW, superscalare, SIMD, SIMT, multi-core e multi-threading. Γ disponibile il supporto per i driver ICD (driver client installabile). Esistono backend per supportare il funzionamento tramite CPU, ASIP (TCE/TTA), GPU basata sull'architettura HSA e GPU NVIDIA (tramite libcuda).
Nella nuova versione:
- Aggiunto il supporto per Clang/LLVM 15.0.
- Supporto della rappresentazione intermedia dello shader SPIR-V notevolmente migliorato per i driver CPU e CUDA.
- Il driver per hardware specializzato (CL_DEVICE_TYPE_ACCELERATOR) e dispositivi personalizzati (CL_DEVICE_TYPE_CUSTOM) che non supportano la compilazione online Γ¨ stato riprogettato in modo significativo. I driver accel e ttasim sono stati fusi nel nuovo driver AlmaIF.
- Continua il lavoro sul driver per l'API grafica Vulkan.
- Viene proposta un'implementazione di base dell'estensione cl_khr_command_buffer, che consente di scrivere una sequenza di comandi OpenCL da eseguire in una chiamata.
Fonte: opennet.ru