Liberigo de PoCL 5.0 kun sendependa efektivigo de la OpenCL-normo

La liberigo de la projekto PoCL 5.0 (Portable Computing Language OpenCL) estis publikigita, evoluigante efektivigon de la OpenCL-normo 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:

  • Nova "Malproksima" backend estis efektivigita, desegnita por organizi distribuitan komputadon transdonante la prilaboradon de OpenCL-komandoj al aliaj gastigantoj en la reto kurante la fonan pocld-procezon.
  • La CUDA-ŝoforo efektivigas kromajn funkciojn kaj etendaĵojn de OpenCL 3.0, kiel atomoperacioj, skopitaj variabloj, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, kaj sub_group_ballot.
  • Plibonigita subteno por CPUoj bazitaj sur la RISC-V-arkitekturo. PoCL-operacio estis testita sur la Starfive VisionFive 2-tabulo ŝarĝita per Ubuntu 23.10-medio kun LLVM 17 kaj GCC 13.2.
  • La etendo cl_ext_float_atomics estis efektivigita kun subteno por FP32 kaj FP64.
  • La efektivigo de la etendo cl_khr_command_buffer estis ĝisdatigita al versio 0.9.4.
  • Eksperimenta AlmaIF-backend por FPGAoj estis proponita.
  • Forigita nekompleta subteno por meza reprezentado de SPIR 1.x/2.0-ombriloj. SPIR-V estas deklarita kiel la rekomendita meza ombra lingvo.
  • Aldonita subteno por Clang/LLVM 17.0. Subteno por Clang/LLVM 10-13 estas malrekomendita.

fonto: opennet.ru

Aldoni komenton