Most enterprises haven’t noticed the years of competition in the world of graphics processors. This largely game-focused market, however, has come roaring to prominence over the past three years, mostly through corporate evangelism for the use of graphics processors to share workloads with CPUs. AMD hopes to push this use case at its first developers conference in eight years.
The big news at the AMD Fusion Developers Summit, which takes place June 13–16 in Bellevue, Wash., is the unification of memory. AMD’s newest processors are a combination of CPUs and graphics processing units (GPU) on the same chip. Using these combination processors has been somewhat tricky, however, as despite being on the same silicon, the two processors address separate memory spaces.
Earlier this year, NVIDIA rectified same problem in its CUDA development tools, allowing developers to address information to the GPU without having to keep track of an entirely separate memory structure. AMD will announce this same capability.
Phil Rogers, AMD corporate fellow and announced keynote speaker at the developer event, said his company’s approach to evangelizing developers is different from NVIDIA’s. Whereas NVIDIA is advocating the use of its GPUs as a tool for nightly batch-job processing and high-performance computing, AMD is looking at smaller use cases.
“We think batch offload is interesting, but I think it’s mainly interesting to a fairly small set of problems in computer science,” said Rogers.
“We’re looking in the other direction: How do we allow the power of GPU processing to participate in smaller workloads? If you’re using a GPU to accelerate a parallel processing task, you have to offload a large amount of work for getting the job on and off of the GPU. The areas we’re innovating in are how to make the GPU more of a peer processor with the CPU, so they can work together on relatively small batches of work. We think that is going to solve a lot of problems in the apps consumers will use.”
Another fundamental difference between AMD and NVIDIA’s approaches to developers is the basis for their environments. NVIDIA is now on the 4.0 strain of its CUDA development environment, which the company built from the ground up. AMD, on the other hand, has focused on supporting OpenCL instead of creating its own line of tools and environments.
Both approaches have merit. AMD’s open standards-based approach means that developers don’t have to learn a whole new environment to become productive. NVIDIA, on the other hand, offers an array of development tools, said Russell.
“We decided with 4.0 to bring in a standard library approach,” he said. “If [developers] want to do a sort, and they already have a sort primitive in the template library, you can use the Thrust library. You don’t have to rearrange the data or do the copies. The template library will handle the data structure, the GPU running the sort, and turn it back to the CPU and main memory.”
NVIDIA has been refining its libraries and CUDA tools according to developer feedback, and it would appear that AMD’s Fusion Developer Summit is an attempt to foster similar communications with developers for AMD.