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

Foi lançado o projeto PoCL 5.0 (Portable Computing Language OpenCL), que desenvolve uma implementação do padrão OpenCL, independente dos fabricantes de aceleradores gráficos, permitindo o uso de diferentes backends para executar núcleos OpenCL em vários tipos de processadores gráficos e centrais. O código do projeto é distribuído sob a licença MIT. Suporta operação em plataformas X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU e diversos ASIP (Application-Specific Instruction-set Processor) e processadores TTA (Transport Triggered Architecture) com arquitetura VLIW.

A implementação do compilador de núcleos OpenCL é construída com base no LLVM, e o Clang é usado como frontend para OpenCL C. Para garantir a portabilidade e o desempenho adequados, o compilador de núcleos OpenCL pode gerar funções combinadas que podem utilizar diferentes recursos de hardware para paralelizar a execução do código, como VLIW, superescalaridade, SIMD, SIMT, multicores e multithreading. Há suporte para drivers ICD (Installable Client Driver). Existem backends para garantir operação via CPU, ASIP (TCE/TTA), GPU com arquitetura HSA e GPU NVIDIA (via libcuda).

Na nova versão:

  • Foi implementado um novo backend "Remote", destinado à organização de computações distribuídas através da transferência do processamento de comandos OpenCL para outros hosts na rede, onde um processo em segundo plano pocld está em execução.
  • No driver CUDA, foram implementadas funcionalidades adicionais e extensões do OpenCL 3.0, como operações atômicas, variáveis de escopo limitado, subgrupos intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier e sub_group_ballot.
  • Foi aprimorado o suporte a CPUs baseadas na arquitetura RISC-V. O funcionamento do PoCL foi testado na placa Starfive VisionFive 2 com o ambiente Ubuntu 23.10, com LLVM 17 e GCC 13.2.
  • Foi implementada a extensão cl_ext_float_atomics com suporte para FP32 e FP64.
  • A implementação da extensão cl_khr_command_buffer foi atualizada para a versão 0.9.4.
  • Foi proposto um backend experimental AlmaIF para FPGA.
  • Foi removido o suporte inacabado ao intermediário de shaders SPIR 1.x/2.0. O SPIR-V foi declarado como o idioma intermediário de shaders recomendado.
  • Adicionada a suporte para Clang/LLVM 17.0. O suporte para Clang/LLVM 10-13 foi declarado obsoleto.

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