OpenCL 2.1 specification gets ratified

Posted on Tuesday, March 03 2015 @ 11:18 CET by Thomas De Maesschalck
Khronos logo
Khronos also announced the release of OpenCL 2.1 for public review:
The KhronosTM Group, an open consortium of leading hardware and software companies, today announced the ratification and public release of the OpenCLTM 2.1 provisional specification.

OpenCL 2.1 is a significant evolution of the open, royalty- free standard for heterogeneous parallel programming that defines a new kernel language based on a subset of C++ for significantly enhanced programmer productivity, and support for the new Khronos SPIR-VTM cross-API shader program intermediate language now used by both OpenCL and the new Vulkan graphics API. The OpenCL 2.1 specification at www.khronos.org/opencl/ is released in provisional form to enable developers and implementers to provide feedback before finalization at the OpenCL forums: https://www.khronos.org/opencl/opencl_feedback_forum.

OpenCL 2.1 Technical Overview Session in San Francisco
OpenCL Ecosystem Advances: OpenCL 2.1, SPIR-V and SYCL
Wednesday, March 4th at 3-4:30pm
Venue: SF Green Space at 657 Mission Street, Suite 200 – five minutes’ walk from GDC Overview of OpenCL 2.1, SPIR-V and direct interaction with working group members No GDC pass required, however seating is limited so please register if you plan to attend: https://www.khronos.org/news/events/gdc-2015.

About OpenCL 2.1
The OpenCL C++ kernel language is a static subset of C++14 and significantly boosts parallel programming productivity by providing lambda functions, classes, templates, operator overloading, and many other C++ features to free developers from low-level coding details without sacrificing performance. OpenCL C++ enables reusable device libraries and containers for easily sharable code that is fast and elegant, and templates enables meta-programming for highly adaptive software that cleanly delivers performance portability.

In another significant announcement today, OpenCL 2.1 and VulkanTM, the new open standard API for high-efficiency access to graphics and compute on modern GPUs, are now sharing core intermediate language technologies resulting in SPIR-V; a revolution in the Khronos Standard Portable Intermediate Representation initially used by OpenCLTM, now fully defined by Khronos with native support for shader and kernel features.

SPIR-V splits the compiler chain, enabling high-level language front-ends to emit programs in a standardized intermediate form to be ingested by Vulkan or OpenCL drivers. Eliminating the need for a built-in high-level language source compiler significantly reduces driver complexity and will enable a diversity of language front-ends. Additionally, a standardized IR provides a measure of kernel IP protection, accelerated kernel load times and enables developers to use a common language front-end, improving kernel reliability and portability across multiple implementations.

In addition to the introduction of the OpenCL C++ shading language, OpenCL 2.1 brings enhancements to the OpenCL API, including:

- Subgroups, that expose hardware threading, are bought into core, together with additional subgroup query operations for increased flexibility;
- clCloneKernel enables copying of kernel objects and state for safe implementation of copy constructors in wrapper classes;
- Low-latency device timer queries support alignment of profiling between device and host code.

“OpenCL 2.1 has responded to developer demand with a C++ based kernel language which delivers the next level of programmer productivity in parallel programming, while still preserving backwards compatibility for existing OpenCL C kernels,” said Neil Trevett, president of the Khronos Group and chair of the OpenCL working group and vice president at NVIDIA. “The use of SPIR-V by Vulkan and OpenCL will fundamentally reshape the graphics and compute ecosystem by enabling diverse language and middleware front-ends to leverage the hardware community’s investment in optimized back-end drivers. Khronos is investigating catalyzing the OpenCL 2.1 ecosystem with an open source front-end OpenCL C++ compiler implementation and a convertor between SPIR-V and LLVM, and we welcome developer feedback on this and any other aspect of OpenCL 2.1.”


About the Author

Thomas De Maesschalck

Thomas has been messing with computer since early childhood and firmly believes the Internet is the best thing since sliced bread. Enjoys playing with new tech, is fascinated by science, and passionate about financial markets. When not behind a computer, he can be found with running shoes on or lifting heavy weights in the weight room.



Loading Comments