As especificações finais do OpenCL 3.0 já foram liberadas

Alguns meses atrás nós compartilhamos aqui no blog as novidades da o lançamento do desenvolvimento do OpenCL 3.0 por Preocupação de Khronos (Responsável pelo desenvolvimento de especificações para a família OpenGL, Vulkan e OpenCL).

E era até recentemente que lançamento das especificações finais do OpenCL 3.0 anunciadas, definindo APIs e extensões da linguagem C para organizar computação paralela multiplataforma usando CPUs multi-core, 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 tecnologia integrada.

Ao mesmo tempo, um SDK OpenCL de código aberto foi lançado com ferramentas, exemplos, documentação, arquivos de cabeçalho, links para bibliotecas C ++ e C para o desenvolvimento de aplicativos compatíveis com OpenCL 3.0.

A implementação inicial do OpenCL 3.0 com base no compilador Clang também é apresentada, que está em estágio de revisão por pares para inclusão no pacote LLVM principal. Empresas como IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments e Toshiba contribuíram para o padrão.

Hoje, o Khronos® OpenCL ™ Working Group tem o prazer de anunciar o lançamento das especificações finalizadas do OpenCL 3.0, incluindo uma nova especificação de linguagem OpenCL C 3.0 unificada, junto com um lançamento inicial de um Khronos OpenCL SDK para permitir que os desenvolvedores iniciem rapidamente acelerar com OpenCL.

Características principais do OpenCL 3.0

API OpenCL 3.0 agora cobre todas as versões do OpenCL (1.2, 2.x), sem fornecer especificações separadas para cada versão.

O OpenCL 3.0 oferece a capacidade de estender a funcionalidade central integrando especificações adicionais que se sobreporão na forma de opções sem bloquear a natureza monolítica do OpenCL 1.2 / 2.X.

Única funcionalidade que está em conformidade com OpenCL 1.2 é declarado obrigatório, e todos os recursos propostos no As especificações OpenCL 2.x são chamadas de opcionais.

Esta abordagem simplificará a criação de implementações especializadas que são compatíveis com o OpenCL 3.0 e expandirá a gama de dispositivos nos quais o OpenCL 3.0 pode ser usado.

Por exemplo Os fabricantes podem implementar suporte para OpenCL 3.0 sem implementar recursos específicos do OpenCL 2.x. Para acessar funções de linguagem opcionais, um sistema de solicitação de teste foi adicionado ao OpenCL 3.0 para avaliar o suporte para elementos API individuais, bem como macros especiais.

A unificação com especificações lançadas anteriormente facilita a tradução de aplicativos para OpenCL 3.0. Os aplicativos OpenCL 1.2 serão capazes de rodar em dispositivos que suportam OpenCL 3.0 sem modificação.

aplicações OpenCL 2.x também não requer mudanças de código, mas se o ambiente OpenCL 3.0 fornece a funcionalidade necessária (para portabilidade futura, os aplicativos OpenCL 2.x são encorajados a adicionar consultas de teste para avaliar a compatibilidade com os recursos do OpenCL 2.x que estão sendo usados).

Os desenvolvedores de driver com implementações OpenCL podem facilmente atualizar seus produtos para OpenCL 3.0 adicionando apenas processamento de solicitação para certas chamadas de API e aumentando gradualmente a funcionalidade com o tempo.

A especificação OpenCL 3.0 foi alinhada com o ambiente, extensões e especificações do intermediário genérico SPIR-V, que também é usado na API Vulkan. O suporte para a especificação SPIR-V 1.3 está incluído no OpenCL 3.0 principal como um recurso opcional. O suporte para operações com subgrupos foi adicionado usando a representação intermediária SPIR-V para núcleos de computação.

Além disso adicionado suporte para uma extensão para executar operações DMA Assíncrono com suporte em chips DMA semelhantes a DSP.

O DMA assíncrono torna possível usar transações de DMA para transferir dados entre a memória global e local de forma assíncrona, em paralelo com cálculos em andamento ou outras transferências de dados.

A especificação de extensões de programação paralela para a linguagem C foi atualizado para a versão 3.0 e o desenvolvimento das extensões da linguagem OpenCL para C ++ é descontinuado em favor do projeto "C ++ para OpenCL".

Para traduzir OpenCL por meio da API Vulkan, o compilador clspv é proposto, que converte kernels OpenCL para a representação Vulkan SPIR-V e a camada clvk para garantir que a API OpenCL funcione em cima do Vulkan.

fonte: https://www.khronos.org/


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.