Especificação OpenCL 3.0 apresentada

O consórcio Khronos, responsável pelo desenvolvimento das especificações da família OpenGL, Vulkan e OpenCL, anunciou sobre a conclusão do desenvolvimento das especificações OpenCL 3.0, que definem a API e as extensões da linguagem C para a organização de computação paralela multiplataforma utilizando CPUs multicores, GPUs, FPGAs, DSPs e outros chips especializados, desde aqueles usados em supercomputadores e servidores em nuvem até chips que podem ser encontrados em dispositivos móveis e em tecnologia embarcada. O padrão OpenCL é totalmente aberto e não requer royalties. Na elaboração do padrão, participaram empresas como IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments e Toshiba.

Na atual fase, a especificação recebeu o status de provisória, o que implica a possibilidade de revisão com base no feedback enviado através de GitHub. Após a consideração das observações, a especificação receberá o status final e será publicado o conjunto de testes definitivo para verificar a compatibilidade das implementações existentes.

Especificação OpenCL 3.0 apresentada

As melhorias mais notáveis Características OpenCL 3.0:

  • A API OpenCL 3.0 agora abrange todas as versões do OpenCL (1.2, 2.x), sem fornecer especificações separadas para cada versão. O OpenCL 3.0 prevê a possibilidade de ampliar a funcionalidade principal através da integração de especificações adicionais, que serão aplicadas na forma de opções, sem bloquear a natureza monolítica do OpenCL 1.2/2.X.
  • Apenas a funcionalidade correspondente ao OpenCL 1.2 é considerada obrigatória, enquanto todas as funcionalidades propostas nas especificações OpenCL 2.x são consideradas opcionais. Essa abordagem facilitará a criação de implementações especializadas compatíveis com OpenCL 3.0 e expandirá a gama de dispositivos em que o OpenCL 3.0 pode ser utilizado. Por exemplo, os fabricantes podem implementar suporte ao OpenCL 3.0 sem implementar funcionalidades separadas do OpenCL 2.x. Para acessar as funcionalidades opcionais da linguagem no OpenCL 3.0, foi adicionada um sistema de consultas de verificação, permitindo avaliar o suporte a elementos individuais da API, bem como macros especiais.
  • A unificação com as especificações anteriores facilita a tradução de aplicativos para OpenCL 3.0. Aplicativos OpenCL 1.2 poderão funcionar em dispositivos compatíveis com OpenCL 3.0 sem necessidade de modificações. Aplicativos OpenCL 2.x também não exigirão alteração de código, mas se o ambiente OpenCL 3.0 fornecer a funcionalidade necessária (para garantir a portabilidade nos futuros aplicativos OpenCL 2.x, recomenda-se adicionar verificações para avaliar o suporte das funcionalidades utilizadas do OpenCL 2.x). Desenvolvedores de drivers com implementações OpenCL poderão atualizar facilmente seus produtos para OpenCL 3.0, adicionando apenas o tratamento de solicitações para determinadas chamadas de API e, ao longo do tempo, aumentar gradualmente a funcionalidade.
  • A especificação OpenCL 3.0 foi alinhada com o ambiente, extensões e especificações da representação intermediária universal SPIR-V, que também é aplicada na API Vulkan. O suporte à especificação SPIR-V 1.3 foi incorporado ao OpenCL 3.0 como uma possibilidade opcional. Através do uso da representação intermediária SPIR-V para núcleos computacionais, foi adicionada a suporte a operações com subgrupos.
    Especificação OpenCL 3.0 apresentada
  • Foi adicionada a suporte a uma extensão para a execução de operações DMA assíncronas (Asynchronous DMA), suportada em chips semelhantes a DSP com acesso direto à memória. A Asynchronous DMA permite o uso de transações DMA para transferir dados entre a memória global e local de forma assíncrona, juntamente com as computações realizadas ou outras operações de transferência de dados.
  • A especificação de extensões de programação paralela para a linguagem C foi atualizada para a versão 3.0, enquanto o desenvolvimento das extensões da linguagem OpenCL para C++ foi interrompido em favor do projeto "C++ for OpenCL". C++ for OpenCL é um compilador baseado em Clang/LLVM e transpila núcleos de C++ e OpenCL C para a representação intermediária SPIR-V ou código de máquina de baixo nível. Através da transpiração para SPIR-V, também é organizada a construção de aplicativos C++ que utilizam a biblioteca de templates SYCL, que simplifica a criação de aplicativos paralelos.

    Especificação OpenCL 3.0 apresentada
  • Para a transpiração de OpenCL através da API Vulkan, são propostos o compilador clspv, que transforma núcleos OpenCL na representação Vulkan SPIR-V, e uma camada clvk para garantir o funcionamento da API OpenCL sobre Vulkan.

    Especificação OpenCL 3.0 apresentada

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster