Vydání PoCL 5.0 s nezávislou implementací standardu OpenCL

Byla zveřejněna verze projektu PoCL 5.0 (Portable Computing Language OpenCL), který vyvíjí implementaci standardu OpenCL, který je nezávislý na výrobcích grafických akcelerátorů a umožňuje použití různých backendů pro spouštění OpenCL jader na různých typech grafik a centrálních procesorů. . Kód projektu je distribuován pod licencí MIT. Podporuje práci na platformách X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU a různých specializovaných procesorech ASIP (Application-Specific Instruction-set Processor) a TTA (Transport Triggered Architecture) s architekturou VLIW.

Implementace kompilátoru jádra OpenCL je postavena na bázi LLVM a Clang se používá jako frontend pro OpenCL C. Pro zajištění správné přenositelnosti a výkonu může kompilátor jádra OpenCL generovat kombinované funkce, které mohou využívat různé hardwarové prostředky k paralelizaci provádění kódu, jako je VLIW, superskalární, SIMD, SIMT, vícejádrové a vícevláknové. K dispozici je podpora ovladačů ICD (Installable Client Driver). Existují backendy pro podporu provozu přes CPU, ASIP (TCE/TTA), GPU založené na architektuře HSA a NVIDIA GPU (přes libcuda).

V nové verzi:

  • Byl implementován nový „vzdálený“ backend, který je navržen tak, aby organizoval distribuované výpočty přenosem zpracování příkazů OpenCL na jiné hostitele v síti, na kterých běží proces pocld na pozadí.
  • Ovladač CUDA implementuje další funkce a rozšíření OpenCL 3.0, jako jsou atomické operace, omezené proměnné, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier a sub_group_ballot.
  • Vylepšená podpora pro CPU založené na architektuře RISC-V. Provoz PoCL byl testován na desce Starfive VisionFive 2 nabité prostředím Ubuntu 23.10 s LLVM 17 a GCC 13.2.
  • Rozšíření cl_ext_float_atomics bylo implementováno s podporou pro FP32 a FP64.
  • Implementace rozšíření cl_khr_command_buffer byla aktualizována na verzi 0.9.4.
  • Byl navržen experimentální backend AlmaIF pro FPGA.
  • Odstraněna neúplná podpora pro přechodnou reprezentaci shaderů SPIR 1.x/2.0. SPIR-V je deklarován jako doporučený přechodný shader jazyk.
  • Přidána podpora pro Clang/LLVM 17.0. Podpora pro Clang/LLVM 10-13 byla ukončena.

Zdroj: opennet.ru

Přidat komentář