Una versione di u prugettu PoCL 3.1 (Portable Computing Language OpenCL) hè statu presentatu, chì sviluppa una implementazione di u standard OpenCL chì hè indipendente da i fabricatori di acceleratori grafici è permette l'usu di diversi backends per eseguisce kernels OpenCL nantu à diversi tipi di grafica è centrale. processori. U codice di u prugettu hè distribuitu sottu a licenza MIT. Supporta u travagliu nantu à e piattaforme X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU è vari ASIP (Application-Specific Instruction-Set Processor) è TTA (Transport Triggered Architecture) processori cù architettura VLIW.
L'implementazione di u compilatore di u kernel OpenCL hè custruitu nantu à a basa di LLVM, è Clang hè utilizatu cum'è front end per OpenCL C. Per assicurà a portabilità è a prestazione propria, u compilatore di u kernel OpenCL pò generà funzioni di cumminazione chì ponu utilizà diverse risorse hardware per parallelizà l'esecuzione di codice, cum'è VLIW, superscalar, SIMD, SIMT, multi-core è multi-threading. Ci hè un supportu per i drivers ICD (Driver Client Installable). Ci sò backends per supportà l'operazione via CPU, ASIP (TCE / TTA), GPU basatu annantu à l'architettura HSA è NVIDIA GPU (via libcuda).
In a nova versione:
- Supportu aghjuntu per Clang / LLVM 15.0.
- Значительно улучшена поддержка промежуточного представления шейдеров SPIR-V для драйверов, использующих CPU и CUDA.
- Значительно переработан драйвер для специализированного аппаратного обеспечения (CL_DEVICE_TYPE_ACCELERATOR) и собственных устройств (CL_DEVICE_TYPE_CUSTOM), не поддерживающих online-компиляцию. Драйверы accel и ttasim объединены в новый драйвер AlmaIF.
- Продолжена работа над драйвером для графического API Vulkan.
- Предложена базовая реализация расширения cl_khr_command_buffer, позволяющего записать последовательность команд OpenCL для их выполнения одним вызовом.
Source: opennet.ru