Il 5 maggio il consorzio Khronos ha presentato la specifica OpenCL 3.1 — un ulteriore aggiornamento dello standard aperto per il calcolo cross-platform su CPU, GPU, DSP, NPU e altri acceleratori. Il rilascio è stato programmato in concomitanza con la conferenza IWOCL 2026 e sviluppa il modello OpenCL 3.x, in cui alcune funzionalità vengono inizialmente testate come estensioni e successivamente integrate nel nucleo obbligatorio dello standard.
La principale novità di OpenCL 3.1 è il supporto obbligatorio per il caricamento dei kernel computazionali nel formato SPIR-V in tutte le implementazioni compatibili. SPIR-V è utilizzato come rappresentazione intermedia portabile, che può essere generata, in particolare, tramite LLVM/Clang e SPIR-V LLVM Translator. Questo dovrebbe semplificare l'uso di OpenCL come backend per SYCL, chipStar e compilatori specializzati, e consentire di distribuire i kernel non come codice sorgente, ma in forma intermedia precompilata.
Nel nucleo di OpenCL 3.1 sono state anche integrate funzionalità importanti per carichi di lavoro AI e HPC: subgruppi con operazioni di shuffle/rotate e un set esteso di tipi, prodotti scalari di interi con varianti di saturazione e accumulo, nuove operazioni bitwise, richiesta della dimensione consigliata del gruppo di lavoro locale e richiesta standard UUID del dispositivo, conforme al comportamento di Vulkan.
Tra le altre novità, si segnalano nuove capacità linguistiche senza la necessità di caricare estensioni, migliorato printf in OpenCL C con supporto per i modificatori z e t, chiarimenti sulla semantica di CL_DEVICE_HOST_UNIFIED_MEMORY, la possibilità di passare dimensioni nulle per gli argomenti della memoria locale e semplificazioni nella sincronizzazione durante il controllo dello stato di completamento dell'evento CL_COMPLETE.
Il lavoro sulle implementazioni di OpenCL 3.1 è già in atto presso Arm, Imagination, Intel e Qualcomm. Tra le implementazioni aperte, Khronos menziona in particolare Rusticl come parte di Mesa, PoCL e CLVK. È anche in corso lo sviluppo di layer di compatibilità che eseguono OpenCL sopra Vulkan e DirectX 12, il che dovrebbe ampliarne l'accessibilità su sistemi senza driver nativi.
Le prossime direzioni di sviluppo menzionate da Khronos includono i buffer dei comandi per riavvii a basso livello delle operazioni, miglioramenti della memoria unificata comune, operazioni con matrici in modalità condivisa, nuovi tipi AI come formati a bassa precisione, nonché miglioramenti per la memoria esterna e la compatibilità con Vulkan, DirectX 12 e pipeline multimediali.
Fonte: linux.org.ru
