Phát hành PoCL 5.0 với việc triển khai độc lập tiêu chuẩn OpenCL

Việc phát hành dự án PoCL 5.0 (Ngôn ngữ điện toán di động OpenCL) đã được xuất bản, phát triển việc triển khai tiêu chuẩn OpenCL độc lập với các nhà sản xuất bộ tăng tốc đồ họa và cho phép sử dụng nhiều chương trình phụ trợ khác nhau để thực thi hạt nhân OpenCL trên các loại đồ họa và bộ xử lý trung tâm khác nhau . Mã dự án được phân phối theo giấy phép MIT. Hỗ trợ hoạt động trên các nền tảng X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA và nhiều bộ xử lý ASIP (Bộ xử lý tập lệnh dành riêng cho ứng dụng) và TTA (Kiến trúc kích hoạt vận chuyển) chuyên dụng khác nhau với kiến ​​trúc VLIW.

Việc triển khai trình biên dịch hạt nhân OpenCL được xây dựng trên cơ sở LLVM và Clang được sử dụng làm giao diện người dùng cho OpenCL C. Để đảm bảo tính di động và hiệu suất phù hợp, trình biên dịch hạt nhân OpenCL có thể tạo ra các hàm kết hợp có thể sử dụng nhiều tài nguyên phần cứng khác nhau để song song hóa việc thực thi mã, chẳng hạn như VLIW, superscalar, SIMD, SIMT, đa lõi và đa luồng. Có hỗ trợ driver ICD (Installable Client Driver). Có các backend hỗ trợ hoạt động thông qua CPU, ASIP (TCE/TTA), GPU dựa trên kiến ​​trúc HSA và GPU NVIDIA (thông qua libcuda).

Trong phiên bản mới:

  • Một chương trình phụ trợ “Từ xa” mới đã được triển khai, được thiết kế để tổ chức tính toán phân tán bằng cách chuyển việc xử lý các lệnh OpenCL sang các máy chủ khác trên mạng đang chạy quy trình pocld nền.
  • Trình điều khiển CUDA triển khai các tính năng và phần mở rộng bổ sung của OpenCL 3.0, chẳng hạn như các hoạt động nguyên tử, các biến có phạm vi, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier và sub_group_ballot.
  • Cải thiện hỗ trợ cho CPU dựa trên kiến ​​trúc RISC-V. Hoạt động PoCL đã được thử nghiệm trên bo mạch Star Five VisionFive 2 được tải với môi trường Ubuntu 23.10 với LLVM 17 và GCC 13.2.
  • Tiện ích mở rộng cl_ext_float_atomics đã được triển khai với sự hỗ trợ cho FP32 và FP64.
  • Việc triển khai tiện ích mở rộng cl_khr_command_buffer đã được cập nhật lên phiên bản 0.9.4.
  • Một phụ trợ AlmaIF thử nghiệm cho FPGA đã được đề xuất.
  • Đã xóa hỗ trợ chưa đầy đủ cho biểu diễn trung gian của trình đổ bóng SPIR 1.x/2.0. SPIR-V được khai báo là ngôn ngữ đổ bóng trung gian được đề xuất.
  • Đã thêm hỗ trợ cho Clang/LLVM 17.0. Hỗ trợ cho Clang/LLVM 10-13 đã không còn được dùng nữa.

Nguồn: opennet.ru

Thêm một lời nhận xét