Giới thiệu đặc tả OpenCL 3.0

Mối quan tâm của Khronos, chịu trách nhiệm phát triển các đặc tả dòng OpenGL, Vulkan và OpenCL, công bố khi hoàn thành việc phát triển các thông số kỹ thuật OpenCL 3.0 xác định API và phần mở rộng của ngôn ngữ C để tổ chức tính toán song song đa nền tảng bằng cách sử dụng CPU đa lõi, GPU, FPGA, DSP và các chip chuyên dụng khác, từ các chip được sử dụng trong siêu máy tính và máy chủ đám mây đến những con chip có thể tìm thấy trong các thiết bị di động và công nghệ nhúng. Tiêu chuẩn OpenCL hoàn toàn mở và không yêu cầu phí giấy phép. Các công ty như IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments và Toshiba đã tham gia vào công việc phát triển tiêu chuẩn này.

Ở giai đoạn hiện tại, thông số kỹ thuật đã được chỉ định trạng thái tạm thời, ngụ ý khả năng sàng lọc dựa trên phản hồi được gửi qua GitHub. Sau khi các nhận xét được tính đến, thông số kỹ thuật sẽ được hoàn thiện và bộ thử nghiệm cuối cùng sẽ được xuất bản để kiểm tra tính tương thích của các triển khai hiện có.

Giới thiệu đặc tả OpenCL 3.0

Đáng chú ý nhất tính năng OpenCL 3.0:

  • API OpenCL 3.0 hiện bao gồm tất cả các phiên bản OpenCL (1.2, 2.x) mà không cung cấp thông số kỹ thuật riêng cho từng phiên bản. OpenCL 3.0 cung cấp khả năng mở rộng chức năng cốt lõi thông qua việc tích hợp các thông số kỹ thuật bổ sung sẽ được xếp lớp dưới dạng tùy chọn mà không chặn tính chất nguyên khối của OpenCL 1.2/2.X.
  • Chỉ chức năng tuân thủ OpenCL 1.2 mới được khai báo là bắt buộc và tất cả các tính năng được đề xuất trong thông số kỹ thuật OpenCL 2.x đều được phân loại là tùy chọn. Cách tiếp cận này sẽ giúp việc tạo các triển khai tùy chỉnh tương thích với OpenCL 3.0 trở nên dễ dàng hơn và sẽ mở rộng phạm vi thiết bị có thể sử dụng OpenCL 3.0. Ví dụ: nhà sản xuất có thể triển khai hỗ trợ OpenCL 3.0 mà không cần triển khai các tính năng OpenCL 2.x cụ thể. Để truy cập các tính năng ngôn ngữ tùy chọn, OpenCL 3.0 đã thêm một hệ thống truy vấn kiểm tra cho phép bạn đánh giá sự hỗ trợ của các thành phần API riêng lẻ cũng như các macro đặc biệt.
  • Việc hợp nhất với các thông số kỹ thuật được phát hành trước đó giúp di chuyển ứng dụng sang OpenCL 3.0 dễ dàng hơn. Các ứng dụng OpenCL 1.2 sẽ có thể chạy trên các thiết bị hỗ trợ OpenCL 3.0 mà không cần sửa đổi. Các ứng dụng OpenCL 2.x cũng sẽ không yêu cầu thay đổi mã, miễn là môi trường OpenCL 3.0 cung cấp chức năng cần thiết (để đảm bảo tính di động trong tương lai, các ứng dụng OpenCL 2.x được khuyến nghị thêm các truy vấn kiểm tra để đánh giá khả năng hỗ trợ cho các tính năng OpenCL 2.x đang được sử dụng). Các nhà phát triển trình điều khiển triển khai OpenCL có thể dễ dàng nâng cấp sản phẩm của họ lên OpenCL 3.0, chỉ thêm xử lý truy vấn cho một số lệnh gọi API nhất định và tăng dần chức năng theo thời gian.
  • Đặc tả OpenCL 3.0 được điều chỉnh phù hợp với môi trường, tiện ích mở rộng và thông số kỹ thuật của biểu diễn trung gian chung SPIR-V, cũng được API Vulkan sử dụng. Hỗ trợ cho thông số kỹ thuật SPIR-V 1.3 được bao gồm trong OpenCL 3.0 lõi như một tính năng tùy chọn. Thông qua việc sử dụng một đại diện trung gian SPIR-V hỗ trợ cho các hoạt động với các nhóm con đã được thêm vào cho lõi máy tính.
    Giới thiệu đặc tả OpenCL 3.0

  • Đã thêm hỗ trợ cho tiện ích mở rộng để thực hiện các hoạt động DMA không đồng bộ (DMA không đồng bộ), được hỗ trợ trong các chip giống DSP có quyền truy cập bộ nhớ trực tiếp. DMA không đồng bộ cho phép sử dụng các giao dịch DMA để truyền dữ liệu giữa bộ nhớ chung và bộ nhớ cục bộ một cách không đồng bộ, song song với các phép tính hoặc các hoạt động truyền dữ liệu khác.
  • Đặc tả Tiện ích mở rộng lập trình song song C đã được cập nhật thành phiên bản 3.0và việc phát triển các phần mở rộng ngôn ngữ OpenCL cho C++ đã bị ngừng để nhường chỗ cho dự án “C++ cho OpenCL”. C++ cho OpenCL là trình biên dịch dựa trên Clang/LLVM và phát thanh truyền hình Hạt nhân C++ và OpenCL C thành biểu diễn trung gian SPIR-V hoặc mã máy cấp thấp. Thông qua việc phát sóng, SPIR-V cũng tổ chức việc lắp ráp các ứng dụng C++ bằng thư viện mẫu SYCL, giúp đơn giản hóa việc tạo các ứng dụng song song.

    Giới thiệu đặc tả OpenCL 3.0

  • Một trình biên dịch đã được đề xuất để phát OpenCL thông qua API Vulkan clspv, chuyển đổi hạt nhân OpenCL thành biểu diễn Vulkan SPIR-V và một lớp clvk để cho phép API OpenCL hoạt động trên Vulkan.

    Giới thiệu đặc tả OpenCL 3.0

Nguồn: opennet.ru

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