S'ha introduït l'especificació OpenCL 3.0

La preocupació Khronos, responsable del desenvolupament de les especificacions de la família OpenGL, Vulkan i OpenCL, va anunciar sobre la finalització del desenvolupament d'especificacions OpenCL 3.0 que defineixen les API i extensions del llenguatge C per organitzar la informàtica paral·lela multiplataforma utilitzant CPU multinucli, GPU, FPGA, DSP i altres xips especialitzats, a partir dels utilitzats en superordinadors i servidors núvols. als xips que es poden trobar en dispositius mòbils i tecnologia integrada. L'estàndard OpenCL és completament obert i no requereix tarifes de llicència. En el treball de l'estàndard van participar empreses com IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments i Toshiba.

En l'etapa actual, s'ha assignat l'estatus provisional a l'especificació, la qual cosa implica la possibilitat de perfeccionament en funció de la retroalimentació enviada a través de GitHub. Un cop es tinguin en compte els comentaris, es finalitzarà l'especificació i es publicarà un conjunt de proves final per provar la compatibilitat de les implementacions existents.

S'ha introduït l'especificació OpenCL 3.0

El més notable Característiques OpenCL 3.0:

  • L'API OpenCL 3.0 ara cobreix totes les versions d'OpenCL (1.2, 2.x), sense proporcionar especificacions separades per a cada versió. L'OpenCL 3.0 ofereix la possibilitat d'ampliar la funcionalitat bàsica mitjançant la integració d'especificacions addicionals que es posaran en capes en forma d'opcions sense bloquejar la naturalesa monolítica d'OpenCL 1.2/2.X.
  • Només es declara obligatòria la funcionalitat que compleix amb OpenCL 1.2 i totes les característiques proposades a les especificacions d'OpenCL 2.x es classifiquen com a opcionals. Aquest enfocament facilitarà la creació d'implementacions personalitzades compatibles amb OpenCL 3.0 i ampliarà la gamma de dispositius en què es pot utilitzar OpenCL 3.0. Per exemple, els fabricants poden implementar el suport d'OpenCL 3.0 sense implementar funcions específiques d'OpenCL 2.x. Per accedir a les funcions d'idioma opcionals, OpenCL 3.0 ha afegit un sistema de consultes de prova que us permet avaluar el suport d'elements de l'API individuals, així com macros especials.
  • La unificació amb especificacions publicades anteriorment facilita la migració d'aplicacions a OpenCL 3.0. Les aplicacions OpenCL 1.2 es podran executar en dispositius compatibles amb OpenCL 3.0 sense modificacions. Les aplicacions OpenCL 2.x tampoc requeriran canvis de codi, sempre que l'entorn OpenCL 3.0 proporcioni la funcionalitat requerida (per garantir la portabilitat futura, es recomana que les aplicacions OpenCL 2.x afegeixin consultes de prova per avaluar la compatibilitat amb les funcions d'OpenCL 2.x). sent utilitzat). Els desenvolupadors de controladors amb implementacions d'OpenCL poden actualitzar fàcilment els seus productes a OpenCL 3.0, afegint només processament de consultes per a determinades trucades d'API i augmentant gradualment la funcionalitat amb el temps.
  • L'especificació OpenCL 3.0 està alineada amb l'entorn, les extensions i les especificacions de la representació intermèdia genèrica SPIR-V, que també utilitza l'API Vulkan. El suport per a l'especificació SPIR-V 1.3 s'inclou al nucli OpenCL 3.0 com a característica opcional. Mitjançant l'ús d'una representació intermèdia SPIR-V S'ha afegit suport per a operacions amb subgrups per als nuclis informàtics.
    S'ha introduït l'especificació OpenCL 3.0

  • S'ha afegit suport per a una extensió per realitzar operacions DMA asíncrones (Asynchronous DMA), compatible amb xips tipus DSP amb accés directe a memòria. El DMA asíncron permet utilitzar transaccions DMA per transferir dades entre la memòria global i local de manera asíncrona, en paral·lel amb càlculs o altres operacions de transferència de dades.
  • S'ha actualitzat l'especificació d'extensions de programació en paral·lel C versió 3.0, i el desenvolupament d'extensions de llenguatge OpenCL per a C++ es va interrompre a favor del projecte "C++ for OpenCL". C++ per a OpenCL és un compilador basat en Clang/LLVM i emissió Nuclis C++ i OpenCL C en representació intermèdia SPIR-V o codi màquina de baix nivell. A través de la difusió, SPIR-V també organitza el muntatge d'aplicacions C++ mitjançant la biblioteca de plantilles SYCL, que simplifica la creació d'aplicacions paral·leles.

    S'ha introduït l'especificació OpenCL 3.0

  • S'ha proposat un compilador per transmetre OpenCL mitjançant l'API Vulkan clspv, que converteix els nuclis OpenCL en una representació Vulkan SPIR-V i una capa clvk per permetre que l'API OpenCL funcioni a sobre de Vulkan.

    S'ha introduït l'especificació OpenCL 3.0

Font: opennet.ru

Afegeix comentari