This week, the Super Computing 2015 global conference is taking place in Austin, Texas, where various companies are coming together and showing off what they’re doing for the server world, and building ideas and relationships for the next generation of super computers that will do everything from predicting the weather to breaking apart our DNA. One of the companies there was AMD, and they had a few GPU-related announcements that piqued my interest. Specifically, that AMD is rewriting their Linux driver for FirePro graphics cards being used in a headless environment, and that they’re making a converter for code written to target NVIDIA’s CUDA API. Hit the jump for more.
Among the many smaller announcements that AMD made at the conference, these two are significant because of how sorely they were needed in the past, and how much potential they have to be disruptive technologies if AMD delivers on them as promised. The first is a complete rewrite of the Linux driver for servers, which now implements a working fix for running a Linux server with AMD FirePro GPUs headlessly. It offers a unified address space for CPUs and GPUs (there’s that heterogeneous systems architecture coming in to play) as well, which is something that I’ve written about before. Essentially, the CPU and GPU will share a unified pool of memory, and won’t have to rely on having multiple copies of data for workloads that the two components are sharing anyway.
The headless fix is important not just for high-performance compute (HPC) applications, but for game streaming as well. AMD currently doesn’t offer a game streaming service like NVIDIA does because it wants to build one that won’t essentially lock out the computer running the game remotely (a limitation of Geforce GRID and Steam In-Home streaming, which is based off the workings of GRID). With this change, AMD’s GPUs can now compete for space inside of server farms that could benefit from using their hardware and OpenCL software, and it also means that Amazon will have a second option for hosted instances – instead of only having a Quadro card to play with, soon you might have a FirePro card as an option as well.
The other point that I found interesting is that AMD will soon offer a new HSA/OpenCL-compatible compiler that will target their GPUs. Called the Heterogeneous-compute Interface for Portability, or “HIP”, this software will allow developers to write applications and software that will target OpenCL on AMD’s cards, but with a language and syntax that is more similar to CUDA. This, AMD hopes, will make the transition easier for developers trying to get off CUDA, or hoping to target more systems with their custom software.
The other thing that HIP includes is a tool that converts code written specifically for NVIDIA GPUs for CUDA. The HIPify tools will convert the source code for the application into HIP source code, and can then export the HIP source code into a NVIDIA-compatible binary, or to an AMD-compatible binary (this is best explained by Anandtech). This gives developers two options for porting their application; they can write it in CUDA source and port to AMD, or they can write in native HIP source and send it into the NVIDIA CUDA Compiler (NVCC) or the AMD-specific compiler. This doesn’t mean that CUDA now runs on AMD’s GPUs, lets be clear – that’s a possibility that NVIDIA firmly stamped out early on with CUDA – but it does mean that it costs developers a negligible amount of money and time to port to HIP and port their apps into the NVCC, keeping their options open for a port to AMD’s hardware in the future.