È stata presentata la release del progetto PoCL 3.0 (Portable Computing Language OpenCL), che sviluppa l'implementazione dello standard OpenCL, indipendente dai produttori di acceleratori grafici e che consente l'uso di diversi backend per l'esecuzione dei kernel OpenCL su vari tipi di processori grafici e centrali. Il codice del progetto è distribuito sotto licenza MIT. È supportato il funzionamento su piattaforme X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA e vari ASIP (Application-Specific Instruction-set Processor) e processori 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 insieme minimo di funzionalità richieste per supportare la specifica OpenCL 3.0. La supporto per OpenCL 3.0 è attualmente disponibile solo nel backend basato su CPU in presenza di LLVM 14 (negli altri backend e con versioni precedenti di LLVM, è fornito supporto per OpenCL 1.2).
- Aggiunta la supporto per Clang/LLVM 14.
- Migliorata la tracciabilità e la visualizzazione.
- Aggiunta la supporto per la generazione di gruppi di funzioni specializzate e la loro inclusione nei file eseguibili con i kernel OpenCL.
Fonte: opennet.ru
