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

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

A implementação do compilador de núcleos OpenCL é baseada no LLVM, e o Clang é usado como frontend para o OpenCL C. Para garantir a devida portabilidade e desempenho, o compilador de núcleos OpenCL pode gerar funções combinadas que utilizam diversos recursos de hardware para paralelizar a execução do código, como VLIW, superscalaridade, SIMD, SIMT, multi-core e multithreading. O suporte a drivers ICD está disponível.
(Installable Client Driver). Existem backends para fornecer operação através de CPU, ASIP (TCE/TTA), GPU com arquitetura HSA e GPU NVIDIA (através de libcuda).

Na nova versão:

  • Adicionada a compatibilidade com Clang/LLVM 18.0, suporte a LLVM 10, 11, 12 e 13 foi descontinuado.
  • Implementado um novo backend cpu-tbb, que utiliza a biblioteca OneTBB, desenvolvida pela Intel, para realizar a paralelização de operações e o agendamento da execução de tarefas.
  • No backend cpu, que fornece a execução de núcleos OpenCL na CPU, foi adicionada a compatibilidade com o padrão de programação paralela OpenMP, o método clGetDeviceAndHostTimer() e extensões experimentais cl_pocl_svm_rect, cl_pocl_command_buffer_svm e cl_pocl_command_buffer_host_buffer foram implementadas.
  • No backend ‘Remote’, destinado à organização de computações distribuídas através da delegação do processamento de comandos OpenCL para outros hosts na rede, onde um processo em segundo plano pocld está em execução, foi adicionada a compatibilidade com CG SVM (Coarse-Grain Shared Virtual Memory), a possibilidade de acessar o backend usando o protocolo de comunicação Vsock e suporte para compilação e vinculação de programas usando as funções clCompileProgram() e clLinkProgram().
  • No backend LevelZero, que utiliza a API Level Zero, foi permitido criar buffers com tamanhos superiores a 4GB, e foram implementadas otimizações nos processos de sincronização.
  • No backend CUDA, foram implementadas operações sub_group_shuffle e sub_group_shuffle_xor, além de um aumento no limite CL_DEVICE_MAX_MEM_ALLOC_SIZE.

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