Keluaran PoCL 5.0 dengan pelaksanaan bebas standard OpenCL

Keluaran projek PoCL 5.0 (Portable Computing Language OpenCL) telah diterbitkan, membangunkan pelaksanaan standard OpenCL yang bebas daripada pengeluar pemecut grafik dan membenarkan penggunaan pelbagai hujung belakang untuk melaksanakan kernel OpenCL pada pelbagai jenis grafik dan pemproses pusat. . Kod projek diedarkan di bawah lesen MIT. Menyokong kerja pada platform X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU dan pelbagai pemproses ASIP khusus (Pemproses Set Arahan Khusus) dan TTA (Transport Triggered Architecture) dengan seni bina VLIW.

Pelaksanaan pengkompil kernel OpenCL dibina berdasarkan LLVM, dan Clang digunakan sebagai hujung hadapan untuk OpenCL C. Untuk memastikan mudah alih dan prestasi yang betul, pengkompil kernel OpenCL boleh menjana fungsi gabungan yang boleh menggunakan pelbagai sumber perkakasan untuk menyelaraskan pelaksanaan kod, seperti VLIW, superscalar, SIMD, SIMT, multi-core dan multi-threading. Terdapat sokongan untuk pemacu ICD (Pemacu Pelanggan Boleh Pasang). Terdapat bahagian belakang untuk menyokong operasi melalui CPU, ASIP (TCE/TTA), GPU berdasarkan seni bina HSA dan GPU NVIDIA (melalui libcuda).

Dalam versi baharu:

  • Bahagian belakang "Jauh Jauh" baharu telah dilaksanakan, direka bentuk untuk mengatur pengkomputeran teragih dengan memindahkan pemprosesan arahan OpenCL kepada hos lain pada rangkaian yang menjalankan proses pocld latar belakang.
  • Pemacu CUDA melaksanakan ciri dan sambungan OpenCL 3.0 tambahan seperti operasi atom, pembolehubah berskop, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier dan sub_group_ballot.
  • Sokongan yang lebih baik untuk CPU berdasarkan seni bina RISC-V. Operasi PoCL telah diuji pada papan Starfive VisionFive 2 yang dimuatkan dengan persekitaran Ubuntu 23.10 dengan LLVM 17 dan GCC 13.2.
  • Sambungan cl_ext_float_atomics telah dilaksanakan dengan sokongan untuk FP32 dan FP64.
  • Pelaksanaan sambungan cl_khr_command_buffer telah dikemas kini kepada versi 0.9.4.
  • Bahagian belakang AlmaIF percubaan untuk FPGA telah dicadangkan.
  • Mengalih keluar sokongan tidak lengkap untuk perwakilan perantaraan pelorek SPIR 1.x/2.0. SPIR-V diisytiharkan sebagai bahasa peneduh perantaraan yang disyorkan.
  • Menambah sokongan untuk Clang/LLVM 17.0. Sokongan untuk Clang/LLVM 10-13 telah ditamatkan.

Sumber: opennet.ru

Tambah komen