È stata presentata la specifica OpenCL 3.0

Il consorzio Khronos, responsabile dello sviluppo delle specifiche delle famiglie OpenGL, Vulkan e OpenCL, ha annunciato sulla conclusione dello sviluppo delle specifiche OpenCL 3.0, che definiscono le API e le estensioni del linguaggio C per facilitare calcoli paralleli multipiattaforma utilizzando CPU multicore, GPU, FPGA, DSP e altri chip specializzati, dai più utilizzati nei supercomputer e nei server cloud, ai chip che si possono trovare in dispositivi mobili e tecnologie incorporate. Lo standard OpenCL è completamente aperto e non richiede royalty. Hanno partecipato allo sviluppo dello standard aziende come IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments e Toshiba.

Attualmente, le specifiche hanno uno status provvisorio, che implica la possibilità di ulteriori modifiche basate sui feedback inviati tramite GitHub. Dopo che i commenti saranno stati considerati, la specifica riceverà lo status finale e sarà pubblicato un set di test definitivo per verificare la compatibilità delle implementazioni esistenti.

È stata presentata la specifica OpenCL 3.0

Le migliorie più significative caratteristiche OpenCL 3.0:

  • API OpenCL 3.0 ora copre tutte le versioni di OpenCL (1.2, 2.x), senza fornire specifiche separate per ogni versione. OpenCL 3.0 prevede la possibilità di estensione delle funzionalità principali attraverso l'integrazione di specifiche aggiuntive, che verranno sovrapposte sotto forma di opzioni, senza bloccare la natura monolitica di OpenCL 1.2/2.x.
  • È stata dichiarata obbligatoria solo la funzionalità corrispondente a OpenCL 1.2, mentre tutte le capacità offerte nelle specifiche OpenCL 2.x sono considerate opzionali. Questo approccio semplificherà la creazione di implementazioni specializzate compatibili con OpenCL 3.0 e amplierà il numero di dispositivi su cui OpenCL 3.0 può essere utilizzato. Ad esempio, i produttori possono implementare il supporto per OpenCL 3.0 senza implementare funzionalità separate di OpenCL 2.x. Per accedere alle funzionalità opzionali del linguaggio in OpenCL 3.0, è stato aggiunto un sistema di query di controllo, che consente di valutare il supporto degli elementi API individuali, oltre a macro speciali.
  • L'unificazione con le specifiche precedentemente rilasciate semplifica la portabilità delle applicazioni su OpenCL 3.0. Le applicazioni OpenCL 1.2 possono funzionare su dispositivi che supportano OpenCL 3.0 senza modifiche. Anche le applicazioni OpenCL 2.x non richiederanno modifiche al codice, ma se l'ambiente OpenCL 3.0 offre le funzionalità necessarie (per garantire la portabilità futura, si raccomanda alle applicazioni OpenCL 2.x di aggiungere controlli per valutare il supporto delle funzionalità OpenCL 2.x utilizzate). Gli sviluppatori di driver con implementazioni OpenCL potranno facilmente aggiornare i loro prodotti a OpenCL 3.0 aggiungendo solo la gestione delle richieste relative a determinate chiamate dell'API e, nel tempo, aumentare gradualmente la funzionalità.
  • La specifica OpenCL 3.0 è allineata con l'ambiente, le estensioni e le specifiche della rappresentazione intermedia universale SPIR-V, che è utilizzata anche nell'API Vulkan. Il supporto per la specifica SPIR-V 1.3 è stato integrato nel nucleo di OpenCL 3.0 come funzionalità opzionale. Attraverso l'uso della rappresentazione intermedia SPIR-V per i nuclei computazionali, è stato aggiunto il supporto per le operazioni con sotto-gruppi.
    È stata presentata la specifica OpenCL 3.0
  • È stato aggiunto il supporto per l'estensione che consente l'esecuzione di operazioni DMA asincrone (Asynchronous DMA), supportate in chip simili a DSP con accesso diretto alla memoria. L'Asynchronous DMA consente di utilizzare transazioni DMA per il trasferimento di dati tra la memoria globale e quella locale in modalità asincrona, parallelamente ai calcoli o ad altre operazioni di trasferimento dati.
  • La specifica delle estensioni di programmazione parallela per il linguaggio C è stata aggiornata a versione 3.0, e lo sviluppo delle estensioni del linguaggio OpenCL per C++ è stato interrotto a favore del progetto «C++ for OpenCL». C++ for OpenCL è un compilatore basato su Clang/LLVM che traduce kernel in C++ e OpenCL C in una rappresentazione intermedia SPIR-V o in codice macchina a basso livello. La traduzione in SPIR-V consente anche la costruzione di applicazioni C++ che utilizzano la libreria template SYCL, semplificando la creazione di applicazioni parallelizzate.

    È stata presentata la specifica OpenCL 3.0
  • Per la traduzione di OpenCL attraverso l'API Vulkan, sono stati proposti il compilatore clspv, che converte i kernel OpenCL in rappresentazioni Vulkan SPIR-V, e l'interfaccia clvk per garantire il funzionamento dell'API OpenCL sopra Vulkan.

    È stata presentata la specifica OpenCL 3.0

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