Liberigo de PoCL 3.0 kun sendependa efektivigo de la OpenCL 3.0 normo

Publiko de la projekto PoCL 3.0 (Portable Computing Language OpenCL) estis prezentita, kiu disvolvas efektivigon de la normo OpenCL kiu estas sendependa de grafikaj akceliloj kaj permesas la uzon de diversaj backends por ekzekuti OpenCL-kernojn sur malsamaj specoj de grafikaĵoj kaj centraj. procesoroj. La projektkodo estas distribuita sub la MIT-licenco. Subtenas laboron sur platformoj X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU kaj diversaj specialigitaj procesoroj ASIP (Application-Specific Instruction-set Processor) kaj TTA (Transport Triggered Architecture) kun VLIW-arkitekturo.

La efektivigo de la OpenCL-kernkompililo estas konstruita surbaze de LLVM, kaj Clang estas utiligita kiel la antaŭa finaĵo por OpenCL C. Por certigi bonordan porteblon kaj efikecon, la OpenCL-kerno-kompililo povas generi kombinaĵfunkciojn kiuj povas uzi diversajn hardvarresursojn por paraleligi kodekzekuton, kiel ekzemple VLIW, superskalaro, SIMD, SIMT, multi-kerna kaj multi-fadenado. Estas subteno por ICD-ŝoforoj (Installable Client Driver). Estas backends por subteni operacion per CPU, ASIP (TCE/TTA), GPU bazita sur HSA-arkitekturo kaj NVIDIA GPU (per libcuda).

En la nova versio:

  • La minimuma aro de funkcioj necesaj por subteni la specifon OpenCL 3.0 estis efektivigita. OpenCL 3.0-subteno estas nuntempe nur havebla sur CPU-bazitaj backends kun LLVM 14 (aliaj backends kaj pli malnovaj versioj de LLVM provizas subtenon por OpenCL 1.2).
  • Aldonita subteno por Clang/LLVM 14.
  • Plibonigita spurado kaj bildigo.
  • Aldonita subteno por generi specialigitajn grupojn de funkcioj kaj inkluzivi ilin en ruleblaj dosieroj kun OpenCL-kernoj.

fonto: opennet.ru

Aldoni komenton