AMD embraces open source with game libraries and register data. A second release, the Boltzmann Initiative, supports high-performance applications.
By Jon Peddie
AMD plans to give developers unprecedented access to the innards of its GPUs next year, when it launches its GPUOpen initiative. AMD is the only company that can claim a clean sweep across gaming platforms, from desktops, notebooks, to all the consoles, and even a few dedicated pachinko machines. And although AMD GPUs are about par with Nvidia’s, Nvidia has a much larger market share in the desktop PC space. That’s due to many reasons, and AMD has been painfully reminded about them, so no need to drag them out again here. The good news is the company is doing something about it.
One competitive advantage that helps Nvidia gain market share is offering a library of proprietary game development tools. Those tools, combined with some on-the-spot handholding has enabled game developers to embed special functions and performance enhancements like physics processing for destructible environments and realistic hair and shadows that show up best (and sometimes only) on an Nvidia GPU. AMD has done the same thing, just not as wide ranging or aggressively (some of those old problems referred to earlier).
AMD has always, or at least for a long while, been in favor of open standards and systems. That is as much practicality as it is philosophy; the company simply doesn’t have the resources to field and support a proprietary system.
So AMD had to do something more than just offer a me-too games library, even though they have one, just not as well publicized. GPUOpen does that and contains much more than just libraries. GPUOpen is an all-open-stack set of SDKs, and includes such engines as AMD’s OpenCL FireRender ray tracing engine, its RapidFire cloud SDK, CodeXL debuggers and performance profiler. AMD is throwing in a substantial library of graphical resources such as ShadowFX for shadow processing, GeometryFX for physics, and AOFX for ambient occlusion — all open source and, theoretically GPU-neutral.
AMD will also include the TressFX library, developed with Crystal Dynamics, that handles fur and hair generation much like Nvidia’s HairWorks. Theoretically developers could use both in a game, TressFX for one character, HairWorks for another; that might be pretty interesting. We’ve heard Grand Theft Auto V has done that.
In a respectful nod to the Steam machine and enterprise, AMD has two Linux driver stacks. There’s an all-open Radeon driver and an all-closed Catalyst driver, with the latter tending to be faster and newer. However, this too will be changed and there will be a common open source base graphics driver for AMD’s GPUs. On this open source base will be two parallel stacks, each containing modules for OpenGL graphics, motion video codecs, and OpenCL GPU computation. This is not a big leap for AMD, they have 99% of this already done.
OpenCL is problematic in that even though it is an “open” standard, AMD’s initial implementation will be specific to AMD processors because they will have a customized version, but AMD swears they will change that ASAP. GPUOpen will support OpenCL as well as Vulkan, and will also evolve into open source. However, even when that happens AMD will maintain a professional OpenGL module which will remain closed source to support legacy applications.
The “Professional/Gamer” stack will include their open source motion-video module (VCE) and closed source OpenGL module.
Next up, the Boltzmann Initiative
As part of AMD’s open source offerings the company is also releasing new tools for high-performance applications. The release, called the Boltzmann Initiative, is related to AMD’s HSA (heterogeneous system architecture). HSA is designed to allow developers to divide workloads between the CPU and GPU in an efficient way and is primarily aimed at typical desktop tasks such as gaming. The Boltzmann Initiative extends the HSA concept to high-performance workloads by adding cluster support, distributing workloads not just between the CPU and GPU within a system but between CPUs and GPUs in multiple systems connected using InfiniBand, and a headless Linux driver for using GPUs without actually driving any displays.
AMD is developing HIP, the Heterogeneous-compute Interface for Portability, as part of the Boltzmann Initiative. This is a set of C++ libraries for performing parallel computation, along with a tool for converting GPU computational code from the proprietary CUDA to standard C++ using the HIP library. This HIP C++ can then be compiled with AMD’s Heterogeneous Compute Compiler (HCC) for AMD GPUs, Nvidia’s NVCC for Nvidia GPUs, or a regular C++ compiler for the CPU. The HCC C++ compiler is built on the open source Clang/LLVM compiler framework.
AMD wants back in the HPC (high-performance computing) arena they helped initiate in 2000; it hopes that with HIP and the Boltzmann Initiative they have an opportunity to open up the HPC market and put a dent in the current CUDA and Nvidia domination. AMD plans to roll it out in the first quarter of 2016 with the HCC compiler, will of course will be open source.
What do we think?
We like all this stuff, but then we’ve always preferred open source. True that proprietary system can move a little faster, but in the long history has shown open wins.