Utgivelse av PoCL 3.0 med uavhengig implementering av OpenCL 3.0-standarden

En utgivelse av PoCL 3.0 (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:

  • Minimumssettet med funksjoner som kreves for å støtte OpenCL 3.0-spesifikasjonen er implementert. OpenCL 3.0-støtte er foreløpig bare tilgjengelig på CPU-baserte backends med LLVM 14 (andre backends og eldre versjoner av LLVM gir støtte for OpenCL 1.2).
  • Lagt til støtte for Clang/LLVM 14.
  • Forbedret sporing og visualisering.
  • Lagt til støtte for å generere spesialiserte grupper av funksjoner og inkludere dem i kjørbare filer med OpenCL-kjerner.

Kilde: opennet.ru

Legg til en kommentar