Sono state pubblicate le specifiche finali di OpenCL 3.0

Il consorzio Khronos, responsabile dello sviluppo delle specifiche delle famiglie OpenGL, Vulkan e OpenCL, ha annunciato ha pubblicato le specifiche finali OpenCL 3.0, che definiscono le API e le estensioni del linguaggio C per l'organizzazione di calcoli paralleli cross-platform utilizzando CPU multicore, GPU, FPGA, DSP e altri chip specializzati, dai chip impiegati in supercomputer e server cloud, fino a quelli che si possono trovare in dispositivi mobili e tecnologia embedded. Lo standard OpenCL è completamente aperto e non richiede royalty.

Simultaneamente pubblicato un SDK OpenCL open source con strumenti, esempi, documentazione, file header, binding per C++ e librerie C per lo sviluppo di applicazioni compatibili con OpenCL 3.0. Inoltre, è stata presentata una prima implementazione di OpenCL 3.0 basata sul compilatore Clang, attualmente in fase di revisione per l'inclusione nel core di LLVM. Hanno partecipato allo sviluppo dello standard aziende come IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments e Toshiba.

Sono state pubblicate le specifiche finali di 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.
    Sono state pubblicate le specifiche finali di 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.

    Sono state pubblicate le specifiche finali di 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.

    Sono state pubblicate le specifiche finali di 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