PoCL 3.0 kaleratzea OpenCL 3.0 estandarraren ezarpen independentearekin

PoCL 3.0 (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:

  • OpenCL 3.0 zehaztapena onartzeko behar diren gutxieneko funtzio multzoa ezarri da. OpenCL 3.0 euskarria gaur egun LLVM 14 duten PUZean oinarritutako backendetan bakarrik dago eskuragarri (beste backend eta LLVMren bertsio zaharragoek OpenCL 1.2rako onartzen dute).
  • Clang/LLVM 14rako euskarria gehitu da.
  • Trazadura eta bistaratzea hobetu.
  • Funtzio talde espezializatuak sortzeko eta OpenCL nukleoekin fitxategi exekutagarrietan sartzeko laguntza gehitu da.

Iturria: opennet.ru

Gehitu iruzkin berria