Paglabas ng PoCL 5.0 na may independiyenteng pagpapatupad ng pamantayan ng OpenCL

Ang paglabas ng proyekto ng PoCL 5.0 (Portable Computing Language OpenCL) ay nai-publish, na bumubuo ng isang pagpapatupad ng pamantayan ng OpenCL na independiyente sa mga tagagawa ng graphics accelerator at pinapayagan ang paggamit ng iba't ibang mga backend para sa pagpapatupad ng mga OpenCL kernel sa iba't ibang uri ng mga graphics at mga sentral na processor . Ang code ng proyekto ay ipinamahagi sa ilalim ng lisensya ng MIT. Sinusuportahan ang trabaho sa mga platform na X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU at iba't ibang espesyal na ASIP (Application-Specific Instruction-set Processor) at TTA (Transport Triggered Architecture) na mga processor na may VLIW architecture.

Ang pagpapatupad ng OpenCL kernel compiler ay binuo batay sa LLVM, at ang Clang ay ginagamit bilang front end para sa OpenCL C. Upang matiyak ang wastong portability at performance, ang OpenCL kernel compiler ay makakabuo ng mga kumbinasyong function na maaaring gumamit ng iba't ibang mapagkukunan ng hardware upang iparallelize ang pagpapatupad ng code, tulad ng VLIW, superscalar, SIMD, SIMT, multi-core at multi-threading. Mayroong suporta para sa mga driver ng ICD (Installable Client Driver). May mga backend upang suportahan ang operasyon sa pamamagitan ng CPU, ASIP (TCE/TTA), GPU batay sa arkitektura ng HSA at NVIDIA GPU (sa pamamagitan ng libcuda).

Sa bagong bersyon:

  • Ang isang bagong "Remote" na backend ay ipinatupad, na idinisenyo upang ayusin ang distributed computing sa pamamagitan ng paglilipat ng pagproseso ng mga OpenCL command sa iba pang mga host sa network na nagpapatakbo ng background pocld process.
  • Ang driver ng CUDA ay nagpapatupad ng mga karagdagang feature at extension ng OpenCL 3.0, gaya ng atomic operations, scoped variables, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, at sub_group_ballot.
  • Pinahusay na suporta para sa mga CPU batay sa arkitektura ng RISC-V. Ang operasyon ng PoCL ay sinubukan sa Starfive VisionFive 2 board na puno ng Ubuntu 23.10 na kapaligiran na may LLVM 17 at GCC 13.2.
  • Ang extension ng cl_ext_float_atomics ay ipinatupad na may suporta para sa FP32 at FP64.
  • Ang pagpapatupad ng cl_khr_command_buffer extension ay na-update sa bersyon 0.9.4.
  • Isang pang-eksperimentong AlmaIF backend para sa mga FPGA ay iminungkahi.
  • Inalis ang hindi kumpletong suporta para sa intermediate na representasyon ng SPIR 1.x/2.0 shaders. Ang SPIR-V ay idineklara bilang ang inirerekomendang intermediate shader language.
  • Nagdagdag ng suporta para sa Clang/LLVM 17.0. Ang suporta para sa Clang/LLVM 10-13 ay hindi na ginagamit.

Pinagmulan: opennet.ru

Magdagdag ng komento