Khronos was busy at this year’s GDC, with three major announcements, including Vulkan API, OpenCL 2.1, and SPIR-V.
Khronos Reveals Vulkan API
The Khronos Group announced the availability of technical previews of the new Vulkan open standard API for high-efficiency access to graphics and compute on modern GPUs used in a wide variety of devices.
This ground-up design, previously referred to as the Next Generation OpenGL Initiative, provides applications direct control over GPU acceleration for maximized performance and predictability, and uses Khronos’ new SPIR-V specification for shading language flexibility.
Vulkan initial specifications and implementations are expected later this year and any company may participate in Vulkan’s ongoing development by joining Khronos.
Khronos Releases SPIR-V
In another significant announcement, Khronos released SPIR-V, the first open standard intermediate language for parallel compute and graphics.
OpenCL 2.1 and Vulkan, 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. This is a revolution in the Khronos Standard Portable Intermediate Representation initially used by OpenCL, 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.
OpenCL 2.1 Provisional Specification for Public Review
The Khronos Group also announced the ratification and public release of the OpenCL 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-V cross-API shader program intermediate language now used by both OpenCL and the new Vulkan graphics API.