Izdaja PoCL 3.1 z neodvisno implementacijo standarda OpenCL

Predstavljena je bila izdaja projekta PoCL 3.1 (Portable Computing Language OpenCL), ki razvija implementacijo standarda OpenCL, ki je neodvisna od proizvajalcev grafičnih pospeševalnikov in omogoča uporabo različnih ozadij za izvajanje jeder OpenCL na različnih vrstah grafike in osrednji procesorji. Koda projekta se distribuira pod licenco MIT. Podpira delo na platformah X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU in različnih specializiranih procesorjih ASIP (Application-Specific Instruction-set Processor) in TTA (Transport Triggered Architecture) z arhitekturo VLIW.

Izvedba prevajalnika jedra OpenCL je zgrajena na osnovi LLVM, Clang pa se uporablja kot sprednji del za OpenCL C. Za zagotovitev ustrezne prenosljivosti in zmogljivosti lahko prevajalnik jedra OpenCL generira kombinirane funkcije, ki lahko uporabljajo različne strojne vire za vzporedno izvajanje kode, kot so VLIW, superskalar, SIMD, SIMT, večjedrni in večnitni. Obstaja podpora za gonilnike ICD (Installable Client Driver). Obstajajo ozadja za podporo delovanja prek CPE, ASIP (TCE/TTA), GPE, ki temelji na arhitekturi HSA in NVIDIA GPE (prek libcuda).

V novi različici:

  • Dodana podpora za Clang/LLVM 15.0.
  • Bistveno izboljšana podpora za vmesno predstavitev senčil SPIR-V za gonilnike CPU in CUDA.
  • Gonilnik za specializirano strojno opremo (CL_DEVICE_TYPE_ACCELERATOR) in naprave po meri (CL_DEVICE_TYPE_CUSTOM), ki ne podpirajo spletnega prevajanja, je bil znatno preoblikovan. Gonilnika accel in ttasim sta bila združena v nov gonilnik AlmaIF.
  • Delo na gonilniku za grafični API Vulkan se nadaljuje.
  • Predlagana je osnovna izvedba razširitve cl_khr_command_buffer, ki vam omogoča pisanje zaporedja ukazov OpenCL za izvedbo v enem klicu.

Vir: opennet.ru

Dodaj komentar