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

Bylo představeno vydání projektu PoCL 3.1 (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í procesory. 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:

  • Přidána podpora pro Clang/LLVM 15.0.
  • Výrazně vylepšená podpora přechodné reprezentace SPIR-V shaderu pro ovladače CPU a CUDA.
  • Ovladač pro specializovaný hardware (CL_DEVICE_TYPE_ACCELERATOR) a uživatelská zařízení (CL_DEVICE_TYPE_CUSTOM), která nepodporují online kompilaci, byl výrazně přepracován. Ovladače accel a ttasim byly sloučeny do nového ovladače AlmaIF.
  • Práce pokračují na ovladači pro grafické rozhraní API Vulkan.
  • Je navržena základní implementace rozšíření cl_khr_command_buffer, která umožňuje napsat sekvenci OpenCL příkazů pro provedení v jednom volání.

Zdroj: opennet.ru

Přidat komentář