Utgivelse av PoCL 3.1 med uavhengig implementering av OpenCL-standarden

En utgivelse av PoCL 3.1 (Portable Computing Language OpenCL)-prosjektet har blitt presentert, som utvikler en implementering av OpenCL-standarden som er uavhengig av grafikkakseleratorprodusenter og tillater bruk av ulike backends for å utføre OpenCL-kjerner på ulike typer grafikk og sentrale prosessorer. Prosjektkoden distribueres under MIT-lisensen. Støtter arbeid på plattformene X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU og forskjellige spesialiserte ASIP (Application-Specific Instruction-set Processor) og TTA (Transport Triggered Architecture) prosessorer med VLIW-arkitektur.

Implementeringen av OpenCL-kjernekompilatoren er bygget på grunnlag av LLVM, og Clang brukes som frontend for OpenCL C. For å sikre riktig portabilitet og ytelse, kan OpenCL-kjernekompilatoren generere kombinasjonsfunksjoner som kan bruke ulike maskinvareressurser for å parallellisere kodekjøring, slik som VLIW, superscalar, SIMD, SIMT, multi-core og multi-threading. Det er støtte for ICD-drivere (Installable Client Driver). Det er backends for å støtte drift via CPU, ASIP (TCE/TTA), GPU basert på HSA-arkitektur og NVIDIA GPU (via libcuda).

I den nye versjonen:

  • Lagt til støtte for Clang/LLVM 15.0.
  • Betydelig forbedret SPIR-V shader mellomrepresentasjonsstøtte for CPU- og CUDA-drivere.
  • Driveren for spesialisert maskinvare (CL_DEVICE_TYPE_ACCELERATOR) og tilpassede enheter (CL_DEVICE_TYPE_CUSTOM) som ikke støtter nettbasert kompilering har blitt betydelig redesignet. Accel- og ttasim-driverne er slått sammen til den nye AlmaIF-driveren.
  • Arbeidet fortsetter med driveren for Vulkan graphics API.
  • En grunnleggende implementering av utvidelsen cl_khr_command_buffer er foreslått, som lar deg skrive en sekvens av OpenCL-kommandoer for kjøring i ett anrop.

Kilde: opennet.ru

Legg til en kommentar