Ja van ser donades a conèixer les especificacions finals d'OpenCL 3.0

Fa alguns mesos vam compartir aquí al blog la notícia de la publicació d'el desenvolupament d'OpenCL 3.0 per part de Khronos Concern (Responsable de el desenvolupament d'especificacions per a la família OpenGL, Vulkan i OpenCL).

I va ser fins fa poc que es va anunciar la publicació de les especificacions finals d'OpenCL 3.0, Definint API i extensions de el llenguatge C per organitzar computació paral·lela multiplataforma utilitzant CPU multi-core, GPUs, FPGAs, DSPs i altres xips especialitzats des dels que s'utilitzen en superordinadors i servidors en el núvol fins xips que es poden trobar en dispositius mòbils i tecnologia integrada.

A el mateix temps, es va publicar un SDK OpenCL de codi obert amb eines, exemples, documentació, arxius de capçalera, enllaços per a biblioteques C ++ i C per desenvolupar aplicacions compatibles amb OpenCL 3.0.

També es presenta la implementació inicial d'OpenCL 3.0 basada en el compilador Clang, que es troba en l'etapa de revisió per parells per a la seva inclusió en el paquet principal LLVM. Empreses com IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments i Toshiba han contribuït a l'estàndard.

Avui, el Grup de Treball de Khronos® OpenCL ™ es complau a anunciar el llançament de les especificacions d'OpenCL 3.0 finalitzades, inclosa una nova especificació de llenguatge OpenCL C 3.0 unificada, juntament amb una versió inicial primerenca d'un SDK d'OpenCL de Khronos per permetre als desenvolupadors aixecar ràpidament accelerar amb OpenCL.

Principals característiques d'OpenCL 3.0

L'API d'OpenCL 3.0 ara cobreix totes les versions d'OpenCL (1.2, 2.x), sense proporcionar especificacions separades per a cada versió.

OpenCL 3.0 ofereix la capacitat d'ampliar la funcionalitat principal mitjançant la integració d'especificacions addicionals que es superposaran en forma d'opcions sense bloquejar la naturalesa monolítica d'OpenCL 1.2 / 2.X.

Només la funcionalitat que compleix amb OpenCL 1.2 es declara obligatòria, I totes les característiques proposades en les especificacions d'OpenCL 2.x s'anomenen opcionals.

Aquest enfocament simplificarà la creació d'implementacions especialitzades que siguin compatibles amb OpenCL 3.0 i ampliarà la gamma de dispositius en els quals es pot utilitzar OpenCL 3.0.

Per exemple, els fabricants poden implementar suport per OpenCL 3.0 sense implementar característiques específiques d'OpenCL 2.x. Per accedir a les funcions de llenguatge opcionals, s'ha afegit un sistema de sol·licitud de prova a OpenCL 3.0 per avaluar la compatibilitat amb elements d'API individuals, així com macros especials.

La unificació amb especificacions publicades anteriorment facilita la traducció d'aplicacions a OpenCL 3.0. Les aplicacions OpenCL 1.2 podran executar-se en dispositius que admetin OpenCL 3.0 sense modificacions.

les aplicacions OpenCL 2.x tampoc requereixen canvis de codi, però si l'entorn OpenCL 3.0 proporciona la funcionalitat necessària (per a la portabilitat futura, es recomana a les aplicacions OpenCL 2.x que agreguin consultes de prova per avaluar la compatibilitat amb les característiques d'OpenCL 2.x que s'estan utilitzant).

Els desenvolupadors de controladors amb implementacions d'OpenCL poden actualitzar fàcilment els seus productes a OpenCL 3.0 afegint només el processament de sol·licituds per a certes trucades d'API i augmentar gradualment la funcionalitat amb el temps.

L'especificació OpenCL 3.0 s'ha alineat amb l'entorn, les extensions i les especificacions de l'intermedi genèric SPIR-V, Que també s'utilitza en l'API de Vulkan. El suport per a l'especificació SPIR-V 1.3 s'inclou en el OpenCL 3.0 principal com una característica opcional. S'ha afegit suport per a operacions amb subgrups mitjançant l'ús de la representació intermèdia SPIR-V per nuclis de còmput.

A més de que es va agregar suport per a una extensió per realitzar operacions DMA asíncrones admeses en xips DMA similars a DSP.

La DMA asincrònica fa possible utilitzar transaccions DMA per transferir dades entre la memòria global i local de forma asincrònica, en paral·lel amb els càlculs en curs o altres transferències de dades.

L'especificació de les extensions de programació paral·lela per al llenguatge C s'ha actualitzat a la versió 3.0 i el desenvolupament de les extensions de l'llenguatge OpenCL per a C ++ s'interromp en favor el projecte «C ++ per OpenCL».

Per traduir OpenCL a través de l'API de Vulkan, es proposa el compilador clspv, que converteix els nuclis d'OpenCL a la representació Vulkan SPIR-V, i la capa clvk per garantir que l'API d'OpenCL funcioni sobre Vulkan.

font: https://www.khronos.org/


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.