Rilis PoCL 5.0 dengan implementasi independen standar OpenCL

Rilis proyek PoCL 5.0 (Portable Computing Language OpenCL) telah diterbitkan, mengembangkan implementasi standar OpenCL yang independen dari produsen akselerator grafis dan memungkinkan penggunaan berbagai backend untuk mengeksekusi kernel OpenCL pada berbagai jenis grafis dan prosesor pusat. . Kode proyek didistribusikan di bawah lisensi MIT. Mendukung pekerjaan pada platform X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA dan berbagai prosesor ASIP (Application-Specific instruction-set Processor) dan TTA (Transport Triggered Architecture) khusus dengan arsitektur VLIW.

Implementasi kompiler kernel OpenCL dibangun berdasarkan LLVM, dan Clang digunakan sebagai front end untuk OpenCL C. Untuk memastikan portabilitas dan kinerja yang tepat, kompiler kernel OpenCL dapat menghasilkan fungsi kombinasi yang dapat menggunakan berbagai sumber daya perangkat keras untuk memparalelkan eksekusi kode, seperti VLIW, superscalar, SIMD, SIMT, multi-core dan multi-threading. Ada dukungan untuk driver ICD (Instalable Client Driver). Terdapat backend untuk mendukung pengoperasian melalui CPU, ASIP (TCE/TTA), GPU berdasarkan arsitektur HSA dan GPU NVIDIA (melalui libcuda).

ΠΎΠ²ΠΎΠΉ Срсии:

  • Backend β€œRemote” baru telah diterapkan, dirancang untuk mengatur komputasi terdistribusi dengan mentransfer pemrosesan perintah OpenCL ke host lain di jaringan yang menjalankan proses pocld latar belakang.
  • Driver CUDA mengimplementasikan fitur dan ekstensi OpenCL 3.0 tambahan seperti operasi atom, variabel cakupan, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, dan sub_group_ballot.
  • Peningkatan dukungan untuk CPU berdasarkan arsitektur RISC-V. Pengoperasian PoCL diuji pada papan Starfive VisionFive 2 yang dimuat dengan lingkungan Ubuntu 23.10 dengan LLVM 17 dan GCC 13.2.
  • Ekstensi cl_ext_float_atomics telah diterapkan dengan dukungan untuk FP32 dan FP64.
  • Implementasi ekstensi cl_khr_command_buffer telah diperbarui ke versi 0.9.4.
  • Backend AlmaIF eksperimental untuk FPGA telah diusulkan.
  • Menghapus dukungan yang tidak lengkap untuk representasi perantara shader SPIR 1.x/2.0. SPIR-V dinyatakan sebagai bahasa shader perantara yang direkomendasikan.
  • Menambahkan dukungan untuk Dentang/LLVM 17.0. Dukungan untuk Dentang/LLVM 10-13 sudah tidak digunakan lagi.

Sumber: opennet.ru

Tambah komentar