Издание на PoCL 3.1 со независна имплементација на стандардот OpenCL

Презентирано е издание на проектот PoCL 3.1 (Portable Computing Language OpenCL), кој развива имплементација на стандардот OpenCL кој е независен од производителите на графички акцелератори и овозможува употреба на различни задни задни за извршување OpenCL кернели на различни типови графики и централни процесори. Проектниот код е дистрибуиран под лиценцата MIT. Поддржува работа на платформите X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU и разни специјализирани процесори ASIP (Application-Specific Instruction-set Processor) и TTA (Transport Triggered Architecture) со VLIW архитектура.

Имплементацијата на компајлерот на јадрото OpenCL е изградена врз основа на LLVM, а Clang се користи како преден крај за OpenCL C. За да се обезбеди соодветна преносливост и перформанси, компајлерот на јадрото OpenCL може да генерира комбинирани функции кои можат да користат различни хардверски ресурси за паралелизирање на извршувањето на кодот, како што се VLIW, суперскалар, SIMD, SIMT, мулти-јадрени и мулти-нишки. Има поддршка за драјвери за ICD (Installable Client Driver). Постојат задни за поддршка за работа преку процесорот, ASIP (TCE/TTA), графичкиот процесор базиран на HSA архитектура и NVIDIA GPU (преку libcuda).

Во новата верзија:

  • Додадена е поддршка за 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 для их выполнения одним вызовом.

Извор: opennet.ru

Додадете коментар