Publicáronse as especificacións finais de OpenCL 3.0

A empresa Khronos, responsable do desenvolvemento das especificacións da familia OpenGL, Vulkan e OpenCL, anunciou na publicación das especificacións finais OpenCL 3.0, definindo APIs e extensións da linguaxe C para organizar a computación paralela multiplataforma mediante CPUs multinúcleo, GPU, FPGA, DSP e outros chips especializados, desde os usados ​​en supercomputadoras e servidores na nube ata chips que se poden atopar en dispositivos móbiles e tecnoloxía incorporada. O estándar OpenCL está completamente aberto e non require taxas de licenza.

Simultaneamente publicado abra OpenCL SDK con ferramentas, exemplos, documentación, ficheiros de cabeceira, ligazóns C++ e bibliotecas C para desenvolver aplicacións compatibles con OpenCL 3.0. Tamén presentado implementación inicial de OpenCL 3.0 baseada no compilador Clang, que está na fase de revisión de parches para a súa inclusión na estrutura principal de LLVM. No traballo sobre o estándar participaron empresas como IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments e Toshiba.

Publicáronse as especificacións finais de OpenCL 3.0

O máis salientable Características OpenCL 3.0:

  • A API de OpenCL 3.0 cobre agora todas as versións de OpenCL (1.2, 2.x), sen proporcionar especificacións separadas para cada versión. OpenCL 3.0 ofrece a posibilidade de estender a funcionalidade básica mediante a integración de especificacións adicionais que se colocarán en capas en forma de opcións sen bloquear a natureza monolítica de OpenCL 1.2/2.X.
  • Só se declara obrigatoria a funcionalidade que cumpra con OpenCL 1.2 e todas as funcións propostas nas especificacións de OpenCL 2.x clasifícanse como opcionais. Este enfoque facilitará a creación de implementacións personalizadas compatibles con OpenCL 3.0 e ampliará a gama de dispositivos nos que se pode usar OpenCL 3.0. Por exemplo, os fabricantes poden implementar compatibilidade con OpenCL 3.0 sen implementar funcións específicas de OpenCL 2.x. Para acceder ás funcións opcionais do idioma, OpenCL 3.0 engadiu un sistema de consultas de proba que lle permite avaliar a compatibilidade de elementos individuais da API, así como macros especiais.
  • A unificación con especificacións publicadas anteriormente facilita a migración de aplicacións a OpenCL 3.0. As aplicacións OpenCL 1.2 poderán executarse en dispositivos compatibles con OpenCL 3.0 sen modificación. As aplicacións OpenCL 2.x tampouco requirirán cambios de código, sempre que o ambiente OpenCL 3.0 proporcione a funcionalidade necesaria (para garantir a portabilidade futura, recoméndase que as aplicacións OpenCL 2.x engadan consultas de proba para avaliar a compatibilidade coas funcións OpenCL 2.x). sendo utilizado). Os desenvolvedores de controladores con implementacións de OpenCL poden actualizar facilmente os seus produtos a OpenCL 3.0, engadindo só procesamento de consultas para determinadas chamadas de API e aumentando gradualmente a funcionalidade co paso do tempo.
  • A especificación OpenCL 3.0 está aliñada co entorno, as extensións e as especificacións da representación intermedia xenérica SPIR-V, que tamén utiliza a API de Vulkan. O soporte para a especificación SPIR-V 1.3 inclúese no núcleo OpenCL 3.0 como función opcional. Mediante o uso dunha representación intermedia SPIR-V engadiuse soporte para operacións con subgrupos para núcleos de computación.
    Publicáronse as especificacións finais de OpenCL 3.0

  • Engadido soporte para unha extensión para realizar operacións DMA asíncronas (Asynchronous DMA), compatible con chips tipo DSP con acceso directo á memoria. A DMA asíncrona permite utilizar transaccións DMA para transferir datos entre a memoria global e local de forma asíncrona, en paralelo con cálculos ou outras operacións de transferencia de datos.
  • Actualizouse a especificación de extensións de programación paralela C versión 3.0, e o desenvolvemento de extensións da linguaxe OpenCL para C++ foi detido en favor do proxecto "C++ para OpenCL". C++ para OpenCL é un compilador baseado en Clang/LLVM e emisión Núcleos C++ e OpenCL C en representación intermedia SPIR-V ou código máquina de baixo nivel. A través da difusión, SPIR-V tamén organiza a montaxe de aplicacións C++ utilizando a biblioteca de modelos SYCL, que simplifica a creación de aplicacións paralelas.

    Publicáronse as especificacións finais de OpenCL 3.0

  • Propúxose un compilador para transmitir OpenCL a través da API Vulkan clspv, que converte os núcleos OpenCL nunha representación Vulkan SPIR-V e unha capa clvk para permitir que a API OpenCL funcione enriba de Vulkan.

    Publicáronse as especificacións finais de OpenCL 3.0

Fonte: opennet.ru

Engadir un comentario