Uvolnění PoCL 5.0 s nezávislou implementací standardu OpenCL

Byla zveřejněna nová verze projektu PoCL 5.0 (Portable Computing Language OpenCL), která rozvíjí implementaci standardu OpenCL nezávislého na výrobcích grafických akcelerátorů a umožňuje využití různých backendů pro provádění OpenCL jader na různých typech grafických a centrálních procesorů. Kód projektu je šířen pod licencí MIT. Podporována je práce 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 OpenCL jader je postavena na základě LLVM, a jako frontend pro OpenCL C se používá Clang. Pro zajištění odpovídající přenositelnosti a výkonu může kompilátor OpenCL jader generovat kombinované funkce, které mohou využívat různé hardwarové zdroje pro paralelizaci provádění kódu, jako jsou VLIW, superskalární architektura, SIMD, SIMT, vícejádrové zpracování a multithreading. Podporovány jsou ICD ovladače (Installable Client Driver). Jsou k dispozici backendy pro zajištění fungování přes CPU, ASIP (TCE/TTA), GPU na základě architektury HSA a GPU NVIDIA (přes libcuda).

V nové verzi:

  • Byl implementován nový backend «Remote», určený k organizaci distribuovaných výpočtů prostřednictvím přenosu zpracování příkazů OpenCL na jiné hostitele v síti, na kterých běží pozadí proces pocld.
  • V ovladači CUDA byly implementovány další možnosti a rozšíření OpenCL 3.0, jako jsou atomové operace, proměnné s omezenou oblastí platnosti, podskupiny intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier a sub_group_ballot.
  • Byla zlepšena podpora CPU založená na architektuře RISC-V. PoCL byla testována na desce Starfive VisionFive 2 se zavedeným prostředím Ubuntu 23.10 s LLVM 17 a GCC 13.2.
  • Bylo implementováno rozšíření cl_ext_float_atomics s podporou 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.
  • Byla odstraněna nedokončená podpora pro meziskladbu shadery SPIR 1.x/2.0. Jako doporučený meziskladový jazyk shaderů byl označen SPIR-V.
  • Byla přidána podpora Clang/LLVM 17.0. Podpora Clang/LLVM 10-13 byla označena jako zastaralá.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster