AMD places hopes for machine learning -- and moneymaking -- in GPUOpen

A new initiative by AMD to create an open source toolchain for GPU development could make machine learning frameworks easier to develop

AMD places hopes for machine learning -- and moneymaking -- in GPUOpen

Graphics processors power more than the likes of Call of Duty: Black Ops III; they also provide the number-crunching for modern machine learning systems. But GPUs are largely proprietary hardware devices, led in the market by Nvidia, which is notorious for its poor reputation as an open source player.

Leave it to Nvidia's competitor AMD, long beleaguered by slumping sales and shrinking market share, to develop a plan with the partial goal of advancing the state of GPU-accelerated high-performance computing.

Thus, while AMD hopes to make GPU programming less of a black box with GPUOpen, the company is trying to rescue its own business as well. After all, AMD's reputation with open source users is also shaky, thanks to unfulfilled promises.

Upon the project's official launch, Nicolas Thibieroz, senior manager of worldwide gaming engineering at AMD, described GPUOpen's three main goals: Allow developers to exert more control over the GPU; use open source software to drive the development process; and collaborate with the developer community via open source. Outwardly, it sounds like the usual goodwill gestures employed by proprietary companies trying to build bridges with modern, open source-driven development communities.

But the technical side is intriguing. It builds on top of AMD's previously announced work on Heterogenous Computing, a common path to programming workloads for GPUs and CPUs alike. Many modern machine learning frameworks are designed to run on either kind of hardware, but they have to address CPUs and GPUs separately, with GPUs typically programmed with the Nvidia CUDA framework.

AMD's plan is to allow GPU and CPU applications to be written using a single C11 or C++11/14 set of libraries using a specially designed compiler (the Heterogenous Compute Compiler, or HCC). The compiler and its supporting software would be open source, as would future projects in the same vein -- such as the Lightning Compiler, a new compiler stack based on LLVM. Nvidia also uses LLVM for its own CUDA compiler, but key pieces of the Nvidia CUDA stack remain closed source. Also, AMD boasts it can cross-compile for Nvidia's stack as well as its own, thus reducing the reliance on any one stack, although it's not clear what performance penalties might arise.

However, AMD is not yet making any actual GPU hardware designs open source, likely due to the massive legal tangle involved in such a project, in much the same way Java was only open-sourced after great and laborious effort.

Also, various efforts to create open source GPU hardware have come and gone, such as the Open Graphics Project, but none of them ever delivered a product. If AMD elects to throw its effort behind such a project -- whether by itself or in alignment with other industry partners-- it would be the logical extension to the work it's describing now.