Lançamento do PoCL 3.0 com implementação independente do padrão OpenCL 3.0

Foi apresentada uma versão do projeto PoCL 3.0 (Portable Computing Language OpenCL), que desenvolve uma implementação do padrão OpenCL independente de fabricantes de aceleradores gráficos e permite a utilização de diversos backends para execução de kernels OpenCL em diferentes tipos de gráficos e centrais. processadores. O código do projeto é distribuído sob a licença do MIT. Suporta trabalho em plataformas X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA e vários processadores especializados ASIP (Application-Specific Instruction-set Processor) e TTA (Transport Triggered Architecture) com arquitetura VLIW.

A implementação do compilador de kernel OpenCL é construída com base no LLVM e o Clang é usado como front end para OpenCL C. Para garantir portabilidade e desempenho adequados, o compilador do kernel OpenCL pode gerar funções combinadas que podem usar vários recursos de hardware para paralelizar a execução de código, como VLIW, superescalar, SIMD, SIMT, multi-core e multi-threading. Há suporte para drivers ICD (driver de cliente instalável). Existem backends para suportar operação via CPU, ASIP (TCE/TTA), GPU baseada na arquitetura HSA e GPU NVIDIA (via libcuda).

Na nova versão:

  • O conjunto mínimo de recursos necessários para suportar a especificação OpenCL 3.0 foi implementado. Atualmente, o suporte ao OpenCL 3.0 está disponível apenas em back-ends baseados em CPU com LLVM 14 (outros back-ends e versões mais antigas do LLVM fornecem suporte para OpenCL 1.2).
  • Adicionado suporte para Clang/LLVM 14.
  • Rastreamento e visualização aprimorados.
  • Adicionado suporte para gerar grupos especializados de funções e incluí-los em arquivos executáveis ​​com kernels OpenCL.

Fonte: opennet.ru

Adicionar um comentário