PoCL 3.1 kaleratzea OpenCL estandarraren ezarpen independentearekin

PoCL 3.1 (Portable Computing Language OpenCL) proiektuaren bertsio bat aurkeztu da, zeinak OpenCL estandarraren inplementazio bat garatzen duena, grafikoen azeleragailuen fabrikatzaileengandik independentea dena eta OpenCL nukleoak exekutatzeko hainbat motatako grafikoetan eta zentraletan exekutatzeko aukera ematen duena. prozesadoreak. Proiektuaren kodea MIT lizentziapean banatzen da. X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU eta VLIW arkitektura duten ASIP (Application-Specific Instruction-set Processor) eta TTA (Transport Triggered Architecture) prozesadore espezializatuetan lan egiten du.

OpenCL kernel-konpilatzailearen inplementazioa LLVM-n oinarrituta dago eta Clang OpenCL C-rako frontend gisa erabiltzen da. Eramangarritasun eta errendimendu egokia bermatzeko, OpenCL kernel-konpilatzaileak konbinazio-funtzioak sor ditzake, hardware-baliabide ezberdinak erabil ditzaketen kodearen exekuzioa paralelizatzeko, hala nola VLIW, superscalar, SIMD, SIMT, multi-core eta multi-threading. ICD kontrolatzaileentzako laguntza dago (Installable Client Driver). CPU, ASIP (TCE/TTA), HSA arkitekturan oinarritutako GPU eta NVIDIA GPU (libcuda bidez) funtzionatzeko backendak daude.

Bertsio berrian:

  • Clang/LLVM 15.0rako euskarria gehitu da.
  • PUZ eta CUDA kontrolatzaileentzako SPIR-V shader bitarteko irudikapenaren euskarria nabarmen hobetu da.
  • Lineako konpilazioa onartzen ez duten hardware espezializatuaren (CL_DEVICE_TYPE_ACCELERATOR) eta gailu pertsonalizatuen (CL_DEVICE_TYPE_CUSTOM) kontrolatzailea nabarmen berritu da. Accel eta ttasim kontrolatzaileak AlmaIF kontrolatzaile berrian batu dira.
  • Vulkan grafikoen APIaren kontrolatzailearekin lanean jarraitzen da.
  • cl_khr_command_buffer luzapenaren oinarrizko inplementazioa proposatzen da, dei batean exekutatzeko OpenCL komandoen sekuentzia bat idazteko aukera ematen duena.

Iturria: opennet.ru

Gehitu iruzkin berria