Le specifiche finali di OpenCL 3.0 sono già state rilasciate

Alcuni mesi fa abbiamo condiviso qui sul blog le notizie di il rilascio dello sviluppo di OpenCL 3.0 da parte di Preoccupazione di Khronos (Responsabile dello sviluppo delle specifiche per la famiglia OpenGL, Vulkan e OpenCL).

E lo è stato fino a poco tempo fa annunciato il rilascio delle specifiche finali di OpenCL 3.0, definendo API ed estensioni del linguaggio C per organizzare il calcolo parallelo multipiattaforma utilizzando CPU multi-core, GPU, FPGA, DSP e altri chip specializzati da quelli utilizzati nei supercomputer e nei server cloud ai chip che possono essere trovati nei dispositivi mobili e nella tecnologia integrata.

Allo stesso tempo, è stato rilasciato un OpenCL SDK open source con strumenti, esempi, documentazione, file di intestazione, collegamenti per librerie C ++ e C per lo sviluppo di applicazioni conformi a OpenCL 3.0.

Viene inoltre presentata l'implementazione iniziale di OpenCL 3.0 basata sul compilatore Clang, che è in fase di revisione tra pari per l'inclusione nel pacchetto LLVM principale. Aziende come IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments e Toshiba hanno contribuito allo standard.

Oggi, il Khronos® OpenCL ™ Working Group è lieto di annunciare il rilascio delle specifiche OpenCL 3.0 finalizzate, inclusa una nuova specifica del linguaggio OpenCL C 3.0 unificata, insieme a una prima versione iniziale di un SDK Khronos OpenCL per consentire agli sviluppatori di alzarsi rapidamente accelerare con OpenCL.

Caratteristiche principali di 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 offre la possibilità di estendere le funzionalità di base integrando specifiche aggiuntive che si sovrapporranno sotto forma di opzioni senza bloccare la natura monolitica di OpenCL 1.2 / 2.X.

Solo funzionalità che incontra OpenCL 1.2 è dichiarato obbligatorioe tutte le funzionalità proposte in Le specifiche di OpenCL 2.x sono chiamate opzionali.

Questo approccio semplificherà la creazione di implementazioni specializzate compatibili con OpenCL 3.0 e amplierà la gamma di dispositivi su cui è possibile utilizzare OpenCL 3.0.

Ad esempio, I produttori possono implementare il supporto per OpenCL 3.0 senza implementare funzionalità specifiche di OpenCL 2.x. Per accedere alle funzioni del linguaggio opzionali, è stato aggiunto un sistema di richiesta di test a OpenCL 3.0 per valutare il supporto per i singoli elementi API, oltre a macro speciali.

L'unificazione con le specifiche rilasciate in precedenza semplifica la traduzione delle applicazioni in OpenCL 3.0. Le applicazioni OpenCL 1.2 potranno essere eseguite su dispositivi che supportano OpenCL 3.0 senza modifiche.

applicazioni OpenCL 2.x inoltre non richiede modifiche al codice, ma se l'ambiente OpenCL 3.0 fornisce le funzionalità necessarie (per la portabilità futura, le applicazioni OpenCL 2.x sono incoraggiate ad aggiungere query di prova per valutare la compatibilità con le funzionalità OpenCL 2.x utilizzate).

Gli sviluppatori di driver con implementazioni OpenCL possono aggiornare facilmente i loro prodotti a OpenCL 3.0 aggiungendo solo l'elaborazione delle richieste per determinate chiamate API e aumentando gradualmente le funzionalità nel tempo.

La specifica OpenCL 3.0 è stata allineata con l'ambiente, le estensioni e le specifiche dell'intermedio generico SPIR-V, che viene utilizzato anche nell'API Vulkan. Il supporto per la specifica SPIR-V 1.3 è incluso nell'OpenCL 3.0 principale come funzionalità opzionale. È stato aggiunto il supporto per le operazioni con i sottogruppi utilizzando la rappresentazione intermedia SPIR-V per i core di calcolo.

a parte quello aggiunto il supporto per un'estensione per eseguire operazioni DMA Asincrono supportato su chip DMA simili a DSP.

Il DMA asincrono consente di utilizzare le transazioni DMA per trasferire i dati tra la memoria globale e quella locale in modo asincrono, parallelamente ai calcoli in corso o ad altri trasferimenti di dati.

La specifica delle estensioni di programmazione parallela per la lingua C è stato aggiornato alla versione 3.0 e lo sviluppo delle estensioni del linguaggio OpenCL per C ++ viene interrotto a favore del progetto "C ++ for OpenCL".

Per tradurre OpenCL tramite l'API Vulkan, viene proposto il compilatore clspv, che converte i kernel OpenCL nella rappresentazione Vulkan SPIR-V e il livello clvk per garantire che l'API OpenCL funzioni su Vulkan.

fonte: https://www.khronos.org/


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.