Các thông số kỹ thuật cuối cùng của OpenCL 3.0 đã được phát hành

Một vài tháng trước, chúng tôi đã chia sẻ ở đây trong blog tin tức về việc phát hành sự phát triển của OpenCL 3.0 bởi Khronos lo ngại (Chịu trách nhiệm phát triển các thông số kỹ thuật cho họ OpenGL, Vulkan và OpenCL).

Và cho đến gần đây phát hành thông số kỹ thuật OpenCL 3.0 cuối cùng được công bố, xác định các 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 sử dụng CPU đa lõi, GPU, FPGA, DSP và các chip chuyên dụng khác từ những chip được sử dụng trong siêu máy tính và máy chủ đám mây đến các chip có thể được tìm thấy trong thiết bị di động và công nghệ tích hợp.

Đồng thời, một SDK OpenCL mã nguồn mở đã được phát hành với các công cụ, ví dụ, tài liệu, tệp tiêu đề, liên kết cho thư viện C ++ và C để phát triển các ứng dụng tương thích OpenCL 3.0.

Việc triển khai ban đầu của OpenCL 3.0 dựa trên trình biên dịch Clang cũng được trình bày, đang trong giai đoạn đánh giá ngang hàng để đưa vào gói LLVM chính. Các công ty như IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments và Toshiba đã đóng góp vào tiêu chuẩn này.

Hôm nay, Nhóm làm việc Khronos® OpenCL ™ vui mừng thông báo về việc phát hành các thông số kỹ thuật OpenCL 3.0 đã hoàn thiện, bao gồm thông số kỹ thuật ngôn ngữ OpenCL C 3.0 thống nhất mới, cùng với bản phát hành ban đầu sớm của Khronos OpenCL SDK để cho phép các nhà phát triển bắt đầu nhanh chóng tăng tốc với OpenCL.

Các tính năng chính của OpenCL 3.0

API OpenCL 3.0 ngay bây giờ bao gồm tất cả các phiên bản của OpenCL (1.2, 2.x), mà không cung cấp thông số kỹ thuật riêng biệt cho mỗi phiên bản.

OpenCL 3.0 cung cấp khả năng mở rộng chức năng cốt lõi bằng cách tích hợp các thông số kỹ thuật bổ sung sẽ chồng chéo lên nhau dưới dạng các tùy chọn mà không chặn bản chất nguyên khối của OpenCL 1.2 / 2.X.

Chỉ chức năng tuân thủ OpenCL 1.2 được tuyên bố là bắt buộcvà tất cả các tính năng được đề xuất trong Thông số kỹ thuật OpenCL 2.x được gọi là tùy chọn.

Cách tiếp cận này sẽ đơn giản hóa việc tạo ra các triển khai chuyên biệt tương thích với OpenCL 3.0 và sẽ mở rộng phạm vi thiết bị mà OpenCL 3.0 có thể được sử dụng.

Ví dụ: Các nhà sản xuất có thể triển khai hỗ trợ cho OpenCL 3.0 mà không cần triển khai các tính năng cụ thể của OpenCL 2.x. Để truy cập các chức năng ngôn ngữ tùy chọn, một hệ thống yêu cầu kiểm tra đã được thêm vào OpenCL 3.0 để đánh giá hỗ trợ cho các phần tử 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 đã phát hành trước đây giúp dễ dàng dịch các ứng dụng sang OpenCL 3.0. 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.

Ứng dụng OpenCL 2.x cũng không yêu cầu thay đổi mã, nhưng nếu môi trường OpenCL 3.0 cung cấp chức năng cần thiết (để có thể di động trong tương lai, các ứng dụng OpenCL 2.x được khuyến khích thêm các truy vấn kiểm tra để đánh giá khả năng tương thích với 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 có 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 bằng cách chỉ thêm xử lý yêu cầu cho các lệnh gọi API nhất định và tăng dần chức năng theo thời gian.

Đặc điểm kỹ thuật OpenCL 3.0 đã phù hợp với môi trường, tiện ích mở rộng và thông số kỹ thuật của trung gian chung chung SPIR-V, cũng được sử dụng trong API Vulkan. Hỗ trợ cho đặc điểm kỹ thuật SPIR-V 1.3 được bao gồm trong OpenCL 3.0 chính như một tính năng tùy chọn. Hỗ trợ cho các hoạt động với các nhóm con đã được thêm vào bằng cách sử dụng biểu diễn trung gian SPIR-V cho các lõi máy tính.

bên cạnh đó hỗ trợ thêm cho tiện ích mở rộng để thực hiện các hoạt động DMA Hỗ trợ không đồng bộ trên chip DMA giống DSP.

DMA không đồng bộ làm cho nó có thể sử dụng các giao dịch DMA để truyền dữ liệu giữa bộ nhớ cục bộ và toàn cục một cách không đồng bộ, song song với các tính toán đang diễn ra hoặc truyền dữ liệu khác.

Đặc điểm kỹ thuật của phần mở rộng lập trình song song cho ngôn ngữ C đã được cập nhật lên phiên bản 3.0 và sự phát triển của các tiện ích mở rộng ngôn ngữ OpenCL cho C ++ bị ngừng theo hướng có lợi cho dự án "C ++ cho OpenCL".

Để dịch OpenCL thông qua Vulkan API, trình biên dịch clspv được đề xuất, chuyển đổi hạt nhân OpenCL sang biểu diễn Vulkan SPIR-V và lớp clvk để đảm bảo rằng API OpenCL hoạt động trên Vulkan.

Fuente: https://www.khronos.org/


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.