AMD's 2016 Linux Driver Plans & GPUOpen Family of Dev Tools: Investing In Open Sourceby Ryan Smith on December 15, 2015 9:00 AM EST
Earlier this month AMD’s Radeon Technologies Group held an event to brief the press of their plans for 2016. Part of a larger shift for RTG as they work to develop their own identity and avoid the mistakes of the past, RTG has set about being more transparent and forthcoming in their roadmap plans, offering the press and ultimately the public a high-level overview of what the group plans to accomplish in 2016. The first part of this look into RTG’s roadmap was released last week, when the company unveiled their plans for their visual technologies – DisplayPort/HDMI, FreeSync, and HDR support.
Following up on that, today RTG is unveiling the next part of their roadmap. Today's release is focused around Linux and RTG’s developer relations strategy, with RTG’s laying out their plans to improve support on the former and to better empower developers on the latter. Both RTG’s Linux support and developer relations have suffered some from RTG’s much smaller market share and more limited resources compared to NVIDIA, and while I don’t think even RTG expects to right everything overnight, they do have a clear idea over where they have gone wrong and what are some of the things they can do to correct this.
Linux Driver Support: AMDGPU for Open & Closed Source
The story of RTG’s Linux driver support is a long one, and to put it kindly it has frequently not been a happy story. Both in the professional space and the consumer space RTG has struggled to put out solid drivers that are competitive with their Windows drivers, which has served to only further cement the highly favorable view of NVIDIA’s driver quality in the Linux market. Though I don’t expect RTG will agree with this, there has certainly been a very consistent element of their Linux driver being a second-class citizen in recent years.
To that end, RTG has been embarking on developing a new driver over the past year to serve their needs in both the consumer and professional spaces, and for this driver to be a true first-class driver. This driver, AMDGPU, was released in its earliest form back in April, but it’s only this month that RTG has finally begun discussing it with the larger (non-Linux) technical press. As such there’s not a great deal of new information here, but I do want to spend a moment highlighting RTG’s plans thus far.
AMDGPU is part of a larger effort for RTG to unify all of their Linux graphic driver needs behind a single driver. AMDGPU itself is an open source kernel space driver – the heart of a graphics driver in terms of Linux driver design – and is intended to be used for all RTG/AMD GPUs, consumer and professional. On the consumer side it replaces the previously awkward arrangement of RTG maintaining two different drivers, their open source driver and their proprietary driver, with the open source driver often suffering for it.
With AMDGPU, RTG will be producing both a fully open source and a mixed open/closed source driver, both using the AMDGPU kernel space driver as their core. The pure open source driver will fulfill the need for a fully open driver for distros that only ship open source or for users who specifically want/need all open source. Meanwhile RTG’s closed driver, the successor to the previous Catalyst/fglrx driver, will build off of AMDGPU but add RTG’s closed user mode driver components such as their (typically superior) OpenGL and multimedia runtimes.
The significant change here is that by having the RTG closed source driver based around the open source driver, the company is now only maintaining a single code base, is pushing as much as possible into open source, and that the open source driver is receiving these features far sooner than it was previously. This greatly improves the quality of life for open source driver users, but it’s also reciprocal for RTG: it’s a lot easier to keep up to date with Linux kernel changes with an open source kernel mode driver than a closed source driver, and quickly integrate improvements submitted by other developers.
This driver is also at the heart of RTG’s plans for the professional and HPC markets. At SC15 AMD announced their Boltzmann initiative to develop a CUDA source code shim and the Heterogeneous Compute Compiler for their GPUs, all of which will be built on top of their new Linux driver and the headless + HSA abilities it will be able to provide. And it’s also here where RTG is also looking to capitalize on the open source nature of the driver, giving HPC users and developers far greater access than what they’re accustomed to with NVIDIA’s closed-source driver and allowing them to see the code behind the driver that’s interpreting and executing their programs.
GPUOpen: RTG’s SDKs, Libraries, & Tools To Go Open Source
The second half of RTG’s briefing was focused on developer relations. Here the company has several needs and initiatives, ranging from countering NVIDIA and their GameWorks SDKs/libraries to developing tools to better utilize RTG’s hardware and the heterogeneous system architecture. At the same time the group is also looking to better leverage their sweep of the current generation consoles, and turn those wins into a distinct advantage within the PC space.
To that end, not unlike the RTG’s Linux efforts, the group is embarking on a new, more open direction for GPU SDK and library development. Being announced today is RTG’s GPUOpen initiative, which will combine RTG’s various SDKs and libraries under the single GPUOpen umbrella, and then take all of these components open source.
Starting first with the umbrella aspect of GPUOpen, with GPUOpen we’re going to see RTG travel down the same path of bundled tools and developer portals that NVIDIA has been following for the last couple of years with GameWorks. To NVIDIA’s credit they have been very successful in reaching developers via this method – both in terms of SDKs and in terms of branding – so it makes a great deal of sense for RTG to develop something similar. Consequently, GPUOpen will be bringing RTG’s various SDKs, tools, and libraries such as TressFX, LiquidVR, CodeXL, and their DirectX code samples underneath the GPUOpen branding umbrella. At the same time the RTG is developing a GPUOpen portal to make all of these resources available from a single location, and will also be using that portal to publish news and industry updates for game developers.
But more interesting than just bringing all of RTG’s developer resources under the GPUOpen brand is what RTG is going to do with those resources: set it free. While the group has dabbled with open source over the last several years, beginning with GPUOpen in 2016 they will be fully committed to it. Everything at the GPUOpen portal will be open source and licensed under the highly permissive MIT license, allowing developers to not only see the code behind RTG’s tools and libraries, but to integrate that code into open and closed source projects as they see fit.
Previously RTG had offered some bits and pieces of their code on an open source basis, but those projects were typically using more restrictive licenses than MIT. GPUOpen on the other hand will see the code behind these projects become available to developers under one of the most permissive licenses out there (short of public domain), which in turn allows developers to essentially do whatever they please while also avoiding any compatibility issues with other open source licenses (e.g. GPL).
Otherwise the fact that RTG is going to be placing so much of their code into the open source ecosystem is a big step for the group. Ultimately they believe that there is much to gain both from letting developers freely use this code, and from allowing them to submit their own improvements and additions back to RTG. In a sense this is the anti-GameWorks: whereas NVIDIA favors closed source libraries or limited sharing, RTG is placing everything out there in hope that their development efforts coupled with the ability for other developers to contribute via open source development will produce a better product.
Finally, as part of the GPUOpen portal and RTG’s open source efforts, the company will be hosting these projects on the ever-popular GitHub platform, allowing developers to fork the projects and submit changes as they see fit. The portal and the GitHub repositories for the initial projects will be launching in January. And though RTG didn’t offer much in the way of details for their future plans, they have strongly hinted that this is just the beginning for them, and that they are developing additional effects libraries and code samples that will be made available in the not-too-distant future. Ultimately with the first DirectX 12 games shipping next year and with Vulkan expected to be finalized in 2016 as well, I wouldn’t be surprised to see the GPUOpen portal become the focal-point of RTG’s developer relations efforts for low-level GPU programming, while further leveraging the similarities between console development and low-level PC developer.
Post Your CommentPlease log in or sign up to comment.
View All Comments
przemo_li - Tuesday, December 15, 2015 - linkOne correction to the article.
Catalyst already used open source kernel driver. Such licensing is demanded by licensing of Linux kernel itself. It was put to good use too, as someone from Arch Linux community was able to constantly provide support for newer kernel versions not yet supported by AMD. Sadly AMD Catalyst team never included those (or never done it in timely fashion).
What is revolutionary, is that now it will be physically single component with dedicated team able to pick up any community work. But also AMD Catalyst developers now can do stuff inside open source community.
mooninite - Tuesday, December 15, 2015 - linkNot exactly. The kernel driver provided in Catalyst, now Crimson, was not open source. It had a partially open kernel compiling infrastructure paired with a closed-source binary-only kernel module.
The exact same thing that NVIDIA provides in their binary driver.
przemo_li - Wednesday, December 16, 2015 - linkNo. It was GPL licensed. Catalyst shipped with GPL licensed kernel module. (Still is, Catalyst not yet reached a point where they can switch to AMDGPU)
bridgmanAMD - Saturday, December 19, 2015 - linkThe Linux Catalyst kernel driver is made up of a BSD-ish licensed open source "Kernel Compatibility Layer" compiled on the user system plus a closed source binary component. Definitely not GPL licensed, although the KCL code may refer to "GPL plus additional rights", which is how BSD/X11-licensed code usually gets described in the kernel.
alyarb - Tuesday, December 15, 2015 - linkClose to Metal all over again
ruthan - Tuesday, December 15, 2015 - linkSlides are nothing we will see, their GPU driver is soo bad that even Valve disable AMD GPU in their Steam machines.
mrdude - Tuesday, December 15, 2015 - linkIs this the 3rd or 4th time AMD has taken Linux drivers seriously in the past several years? I've lost count.
przemo_li - Wednesday, December 16, 2015 - linkThey never stopped taking it seriously ...
I'm using r600g for quite a few years now. AMD was fully behind it all the time. Always cooking up new features. Always hiring new devs. Always expanding things that are possible in OpenSource.
mrdude - Wednesday, December 16, 2015 - linkSo they were hiring when their Linux GPU team was gutted?
How about when they announced to open-source their newest line of GPUs, starting from Tonga, and have sat on it for about half a year now with utterly nothing in the way of improvements, including not supporting their Fiji GPUs for months after release?
I'm confused. If AMD taking Linux seriously means their newest and most costly GPUs perform on the order of nVidia's low-end/mid-tier GPUs, and even Intel's on-die graphics, then I don't want to see just how horrendously things will go once they stop taking it seriously.
mdriftmeyer - Wednesday, December 16, 2015 - linkDo some legwork and research the staff of Linux Devs. They've hired quite a few folks of late.