E foi lançado o PoCL 5 com novo backend, melhorias e muito mais. Confira as novidades dessa importante atualização.
PoCL (Portable Computing Language) é uma implementação portátil de código aberto (licenciada pelo MIT) do padrão OpenC, além de ser uma implementação OpenCL de código aberto para vários dispositivos facilmente portável.
O objetivo principal deste projeto é melhorar a interoperabilidade da diversidade de dispositivos compatíveis com OpenCL, integrando-os em uma plataforma única e orquestrada centralmente.
Além disso, um dos principais objetivos de longo prazo é melhorar a portabilidade de desempenho dos programas OpenCL nos tipos de dispositivos que usam tempo de execução e técnicas de compilação.
Para os interessados no projeto, saiba que o código do projeto é distribuído sob a licença MIT e o trabalho é suportado nas plataformas X86_64, MIPS32, ARM v7, AMD HSA APU e diversos processadores TTA especializados com arquitetura VLIW.
Agora, o lançamento da nova versão do PoCL 5.0 foi anunciado.
Novidades do PoCL 5
O lançamento da nova versão do PoCL 5.0 foi anunciado há poucos dias e entre as principais novidades que a nova versão apresenta, destaca-se um novo backend que permite o download de comandos OpenCL através de uma rede para um ou mais servidores, também é destaca melhorias no CUDA, melhorias de suporte e muito mais.
Como mencionado no início, a novidade mais importante é o novo backend “PoCL-Remote” que foi projetado para baixar comandos OpenCL através de uma rede para um ou mais servidores que executam o daemon ‘pocld’, incluído no PoCL.
Ao habilitar o suporte para OpenCL em outros sistemas de rede, o PoCL-Remote permite que você use OpenCL perfeitamente nesses hosts remotos.
É mencionado que, diferentemente das soluções de descarregamento de rede existentes para OpenCL, o PoCL-Remote usa a infraestrutura de gerenciamento de memória PoCL para rastrear objetos de memória e copiá-los apenas quando realmente necessário.
Quando é necessária uma migração de objetos de memória, o caminho mais eficiente para a transferência é automaticamente escolhido.
Outra novidade apresentada pela nova versão do PoCL 5.0 são os novos recursos adicionados ao driver NVIDIA CUDA para fornecer suporte parcial ao OpenCL 3.0.
O driver CUDA foi ampliado com novas funções para suportar recursos opcionais do OpenCL 3.0, diversas extensões essenciais para otimização execução no chipStar, bem como adição de operações atômicas OpenCL 2.x/3.x.
As melhorias de suporte incluem suporte para granulação fina SVM de granulação grossa, quando o dispositivo CUDA é compatível, bem como a introdução de suporte inicial para subgrupos: intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, sub_group_ballot.
Além disso, nesta versão, o suporte para CPUs RISC-V foi aprimorado. PoCL foi testado no Starfive VisionFive 2 usando uma imagem Ubuntu 23.10 pré-instalada. Com LLVM 17 e GCC 13.2, 98% dos testes foram aprovados (apenas 4 testes de 253 falharam).
Das outras mudanças que se destacam nesta nova versão:
- Numerosas melhorias adicionais foram implementadas no controlador da CPU, impulsionadas principalmente pelas necessidades do chipStar.
- Implementação de cl_ext_float_atomics com suporte para FP32 e FP64.
- Implementação de cl_khr_command_buffer atualizada para a versão 0.9.4.
Back-end experimental de FPGA integrado à biblioteca do kernel. - Foi proposto um backend experimental AlmaIF para FPGAs que permite a reconfiguração transparente de FPGAs de diferentes fornecedores usando um banco de dados bitstream. Este trabalho faz parte de pesquisas em andamento e pode ser considerado um avanço significativo. O banco de dados com os bitstreams é gerado pelo projeto AFOCL.
- Removido o suporte incompleto para renderização intermediária dos shaders SPIR 1.x/2.0. SPIR-V é declarado como a linguagem de sombreamento intermediária recomendada.
- Habilite o suporte para FP16 e espaço de endereço genérico usando a entrada SPIR-V.
- Adicionado suporte para Clang/LLVM 17.0.
- Implementação de cl_ext_float_atomics (em FP32 + FP64) ao usar LLVM 17.
- O suporte para Clang/LLVM 10-13 foi descontinuado.
Para saber mais sobre essa versão do PoCL, acesse a nota de lançamento.
Como instalar ou atualizar o PoCL
Para instalar a versão mais recente do PoCL nas principais distribuições Linux, acesse esta página: