Search

In this special feature Architosh digs into the main elements behind the new Vulkan graphics and compute GPU API in a discussion with The Khronos Group president Neil Trevett to get at what all this means for computing and graphics going forward.

Prior to the Game Developers Conference (GDC), which happened last week, Neil Trevett, Vice President of Mobile Ecosystems, NVIDIA and also President, Khronos Group, spoke with me about what the new Vulkan API means, how it relates to existing standards like OpenGL and OpenCL, and what the industry consortium’s hopes and goals are for it in the years to come.

Architected for the Present Future

The future of technology from this present looks like this—an expanding universe of computer-based devices all connected to the Internet and many, if not most, using some form of a graphical user-interface. When present graphics APIs were originally architected decades ago their authors were responding primarily to the world of personal computers, workstations, and advanced visualization systems.

Flash forward to our present and the Internet of Things illustrates a different picture. GPUs are being used to power computers, smartphones, gaming systems, robots, drones, smart TVs, smart watches, rendering servers, automobile and aeronautical infomatic systems, and a vast array of industrial computer controlled equipment (e.g.: GPUs for input processing—mainly for neural net acceleration—as well as outputting graphics).

01 – Why the market needs Vulkan the new GPU API that unifies graphics and compute across a diversity of hardware systems. (image: Khronos Group, all rights reserved)

Enter Vulkan™, which was previously named the Next Generation OpenGL Initiative. In addition to an acknowledgement of our present future, Vulkan accomplishes and addresses the following:

Direct control over GPU operation, with minimal driver overhead for maximum performance

It is important to note that Vulkan isn’t just a graphics-oriented API (application programming interface) but also a GPU compute API as well. This essentially means that Vulkan uses a system GPU (your graphics card’s processor) to do parallel processing for intensive computation workloads.

How Vulkan Differs from OpenCL

However, there is a difference with regards to OpenCL, the Khronos Group’s other compute-oriented industry standard. As Neil Trevett explains, “Today the key difference is that Vulkan is primarily focused on accessing acceleration on a GPU or multiple GPUs whereas OpenCL has more heterogenous flexibility and can put to use, simultaneously, not just GPUs and CPUs but also a wide variety of other devices, including DSPs, FPGAs and so on.”

Vulkan now offers a range of incentives and features that will in fact compete with both Nvidia’s CUDA, OpenCL, and even Microsoft DirectX technology, but in different ways for different reasons. The subject of GPU compute is rather complex and we’ll come back to that towards the end of this article.