Frigivelse af PoCL 3.0 med en uafhængig implementering af OpenCL 3.0 standarden

En udgivelse af PoCL 3.0 (Portable Computing Language OpenCL)-projektet er blevet præsenteret, som udvikler en implementering af OpenCL-standarden, der er uafhængig af grafikacceleratorproducenter og tillader brugen af ​​forskellige backends til at udføre OpenCL-kerner på forskellige typer grafik og centrale processorer. Projektkoden distribueres under MIT-licensen. Understøtter arbejde på platforme X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU og forskellige specialiserede ASIP (Application-Specific Instruction-set Processor) og TTA (Transport Triggered Architecture)-processorer med VLIW-arkitektur.

Implementeringen af ​​OpenCL-kernekompileren er bygget på basis af LLVM, og Clang bruges som frontend for OpenCL C. For at sikre korrekt portabilitet og ydeevne kan OpenCL-kernekompileren generere kombinationsfunktioner, der kan bruge forskellige hardwareressourcer til at parallelisere kodeudførelse, såsom VLIW, superscalar, SIMD, SIMT, multi-core og multi-threading. Der er understøttelse af ICD-drivere (Installable Client Driver). Der er backends til at understøtte drift via CPU, ASIP (TCE/TTA), GPU baseret på HSA-arkitektur og NVIDIA GPU (via libcuda).

I den nye version:

  • Det minimumssæt af funktioner, der kræves for at understøtte OpenCL 3.0-specifikationen, er blevet implementeret. OpenCL 3.0-understøttelse er i øjeblikket kun tilgængelig på CPU-baserede backends med LLVM 14 (andre backends og ældre versioner af LLVM understøtter OpenCL 1.2).
  • Tilføjet understøttelse af Clang/LLVM 14.
  • Forbedret sporing og visualisering.
  • Tilføjet understøttelse til at generere specialiserede grupper af funktioner og inkludere dem i eksekverbare filer med OpenCL-kerner.

Kilde: opennet.ru

Tilføj en kommentar