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

Foi apresentada uma versão do projeto PoCL 3.1 (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:

  • Adicionado suporte para Clang/LLVM 15.0.
  • Suporte de representação intermediária de shader SPIR-V significativamente aprimorado para drivers de CPU e CUDA.
  • O driver para hardware especializado (CL_DEVICE_TYPE_ACCELERATOR) e dispositivos personalizados (CL_DEVICE_TYPE_CUSTOM) que não suportam compilação online foi significativamente redesenhado. Os drivers accel e ttasim foram mesclados no novo driver AlmaIF.
  • O trabalho continua no driver da API gráfica Vulkan.
  • É proposta uma implementação básica da extensão cl_khr_command_buffer, que permite escrever uma sequência de comandos OpenCL para execução em uma chamada.

Fonte: opennet.ru

Adicionar um comentário