Open Source your GPU!

AMD is hoping that open stance on tools, effects and SDKs will help them gain acceptance with developers.

As part of the AMD’s recent RTG (Radeon Technologies Group) Summit in Sonoma, the company released information about a new initiative to help drive development and evolution in the world of gaming called GPUOpen.  As the name implies, the idea is to use an open source mentality to drivers, libraries, SDKs and more to improve the relationship between AMD’s hardware and the gaming development ecosystem.

When the current generation of consoles was first announced, AMD was riding a wave of positive PR that it hadn’t felt in many years. Because AMD Radeon hardware was at the root of the PlayStation 4 and the Xbox One, game developers would become much more adept at programming for AMD’s GCN architecture and that would waterfall down to PC gamers. At least, that was the plan. In practice though I think you’d be hard pressed to find any analyst to put their name on a statement claiming that proclamation from AMD actually transpired. It just hasn’t happened – but that does not mean that it still can’t if all the pieces fall into place.

The issue that AMD, NVIDIA, and game developers have to work around is a divided development ecosystem. While on the console side programmers tend to have very close to the metal access on CPU and GPU hardware, that hasn’t been the case with PCs until very recently. AMD was the first to make moves in this area with the Mantle API but now we have DirectX 12, a competing low level API, that will have much wider reach than Mantle or Vulkan (what Mantle has become).

AMD also believes, as do many developers, that a “black box” development environment for tools and effects packages is having a negative effect on the PC gaming ecosystem. The black box mentality means that developers don’t have access to the source code of some packages and thus cannot tweak performance and features to their liking.

AMD’s GPUOpen is its solution to the problem: offering unprecedented access to the GPU through APIs and SDKs, starting and cultivating an open source software suite that includes effects, tools, libraries and SDKS, and inviting participation from other hardware and software vendors to add and modify all parts of this package.

Starting in January AMD will enable access to the GPUOpen software stack on GitHub with the following set of tools and effects to get things jumpstarted. There isn’t anything in this table that is new but there is plenty that is interesting and useful to game developers. TressFX has been successfully implemented and the various Fire-based SDKs look impressive in the demonstrations that I’ve seen. LiquidVR is definitely going to be a big part of the movement to virtual reality with many high-level developers telling me that its implementation of low latency rendering pathways has advantages over the GeForce products.

Another part of the GPUOpen initiative was announced at the Super Computing conference last month, the Boltzmann Initiative. As Jeremy points out in his news post, AMD “announced several new projects including the Heterogeneous Compute Compiler (HCC) and Heterogeneous-compute Interface for Portability (HIP) for CUDA based apps which can automatically convert CUDA code into C++.  They also announced a headless Linux driver and HSA runtime infrastructure interface for managing clusters which utilizes their InfiniBand fabric interconnect to interface system memory directly to GPU memory as well as adding P2P GPU support and numerous other enhancements.”

Finally, AMD has changes planned for the Linux driver as well, dubbed AMDGPU. This revitalized take on Linux software promises broader in the box distro support, accelerated implementation of new products and features (though no promises to match Windows’ cadence), and will include community built innovations and improvements. The AMDGPU package will be unified in both the closed and open source mode drivers, keeping support and feature set for all Linux users.

Though I don’t spend nearly as much time in the Linux environment as I should these days, I know we have many readers that do and they should be excited for this directional shift.

 

I’m going to be very honest with my readers here – this GPUOpen initiative is something that AMD has been promising us for years and was jokingly called “Open Works” by Richard Huddy during an interview with PC Perspective back in June of 2014. I have, and continue to, love the idea that AMD is presenting. A community-driven software stack that includes robust tools and effects that work in multiple APIs that is compatible on all hardware (consoles, AMD, NVIDIA) and that all game developers can utilize and improve upon is the holy grail of an open and shared ecosystem. But can it actually exist?

Much of that depends on the market leader in the GPU space, NVIDIA. GeForce cards currently make up ~80% of the market and it is very difficult for AMD to make its case to game developers that they should spend time on GPUOpen code and tools, while also putting work back into the open community, when NVIDIA isn’t supporting or optimizing its code base for it. Add to that fact that NVIDIA is more than willing to give developers access to GameWorks, a collection of tools, effects and SDKs that is still currently ahead of AMD’s option in functionality, even though much of it is that dreaded “black box”, and you have a steep climb for GPUOpen to ascend.

As I stated in my first editorial from the Radeon Technologies Group (RTG) Summit, I have more faith in the claims AMD is making about the future solely because of the leadership at the helm. Raja Koduri is man I trust and one that I think is smart enough to close out a losing battle if there were truly no hope of success. He hasn’t, and he told me personally he thinks that GPUOpen will catch on with key developers and the sharing of resources will truly push its tool collection beyond what GameWorks can offer.

And in that end that’s what will matter – not openness, not fairness. Game developers and publishers are businesses, albeit ones that see their craft often as art rather than engineering, and getting good product into customers' hands in a timely and budget-friendly manner is what matters most. Can GPUOpen not only gain ground on NVIDIA’s alternatives but help raise the market share of Radeon hardware in the PC gaming ecosystem in 2016? We’ll know soon.