Publicades les especificacions finals d'OpenCL 3.0

La preocupació Khronos, responsable del desenvolupament de les especificacions de la família OpenGL, Vulkan i OpenCL, va anunciar a la publicació de les especificacions finals OpenCL 3.0, definint API i extensions del llenguatge C per organitzar la informàtica paral·lela multiplataforma utilitzant CPU multi-nucli, GPU, FPGA, DSP i altres xips especialitzats, des dels utilitzats en superordinadors i servidors en núvol fins a xips que es poden trobar en dispositius mòbils i tecnologia incorporada. L'estàndard OpenCL és completament obert i no requereix tarifes de llicència.

Simultàniament publicat Obriu OpenCL SDK amb eines, exemples, documentació, fitxers de capçalera, enllaços C++ i biblioteques C per desenvolupar aplicacions compatibles amb OpenCL 3.0. També representat per implementació inicial d'OpenCL 3.0 basada en el compilador Clang, que es troba en l'etapa de revisió de pedaços per incloure'ls a l'estructura principal de LLVM. En el treball de l'estàndard van participar empreses com IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments i Toshiba.

Publicades les especificacions finals d'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.
    Publicades les especificacions finals d'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.

    Publicades les especificacions finals d'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.

    Publicades les especificacions finals d'OpenCL 3.0

Font: opennet.ru

Afegeix comentari