This month AMD is preparing to make its FireStream stream computing boards and software development kit (SDK) generally available to customers. AMD is in a competition with NVIDIA, and eventually Intel, to deliver GPU computing — what AMD calls stream computing — to the emerging GPGPU market.
GPGPU, which stands for general-purpose computing on graphics processing units, is increasingly being used to accelerate scientific and stream computing applications of all kinds. Codes that perform seismic modeling, protein folding simulations, weather research, medical imaging, and CFD can be sped up by one or two orders of magnitude by replacing CPUs with the latest programmable GPU technology.
AMD actually previewed the FireStream product at SC07 in November. Since then the company has been busy getting feedback from early adopters and refining the SDK. With the FireStream about to go into commercial production, I got an opportunity to speak with Patricia Harrell, director of the Stream Computing group at AMD, about the nature of the new offering. Harrell jumped into her role last year, at a time when the GPGPU buzz was beginning to get a lot of attention from HPC users, especially in the research community. “In that length of time, I’ve seen this market evolve from people casually interested in it, and wanting to kick the tires, to real bids for big HPC servers,” she said.
After initially falling behind NVIDIA, which introduced its Tesla/CUDA GPU computing products in 2007, AMD is now making up for lost time with FireStream. Like the NVIDIA offering, FireStream represents AMD’s first product that addresses the HPC market. Also like NVIDIA, AMD is providing an integrated hardware/software platform to give customers an easy path into GPU computing.
According to Harrell, the early stream/GPU computing adopters are government labs and universities deploying stream technology for scientific research. The earliest commercial users are from the oil & gas and financial services sectors, where there’s big money at stake around application performance. Harrell says they already have a number of trial engagements in both markets. OEM/system integrators, including HP, Mercury Computing Systems and Quantum3D, are also interested in the AMD technology.
The initial hardware platform is the FireStream 9170 board, which includes 2 GB of onboard GDDR3 memory and a single ATI Radeon 3870 GPU. According to AMD, it’s the first GPU in the marketplace to support double precision floating point. The chip achieves 500 peak gigaflops of single precision or 102 peak gigaflops of double precision performance. By incorporating 320 stream processors (shaders, if you’re talking graphics processing), the chip is able to process a lot of data operations in parallel. Since the GPU is implemented on a 55nm process technology, the whole board consumes less than 100 watts, which yields an impressive 5 gigaflops/watt of single precision performance (1 gigaflop/watt for double precision). AMD is pricing the board at $1,999.
At least on the face of it, this is a more impressive piece of hardware than the corresponding NVIDIA single-GPU board that’s currently available. The Tesla C870, which delivers 500 single precision gigaflops and contains 1.5 GB of GDDR3, draws 170 watts. When NVIDIA moves from the 90nm node on their Tesla products to 65nm, energy efficiencies should even up with the AMD offering. Speaking of which: Tesla is overdue for a technology refresh. NVIDIA originally scheduled an upgrade for early this year, when it intended to incorporate double precision floating point with its next-generation GPU ASIC. No word now on when the company plans to do the upgrade.
The ability to offer double precision floating point and constrain power consumption are big deals in the GPU computing space. Double precision, even at relatively low peak performance, gives the GPU a more complete story in the technical computing space. Engineering simulation codes, in particular, are heavy users of 64-bit FP. The power drawn by these big GPUs has always been a challenge and anything that gets these devices in the same power envelope as a high-end x86 CPU, which apparently AMD has accomplished with the FireStream, is a good thing. This is especially true for oversubscribed datacenters that are already at or above their power and cooling limits. Adding to that load with accelerator boards can be problematic.
Unlike NVIDIA, which has different products for different hardware platforms, AMD is aiming its single product across servers, workstations and desktop PCs — anything with PCIe 2.0 x16 slots in it. High-end server applications (1-4 FireStream boards) include scientific research, oil and gas, financial analytics, computational chemistry, weather research, search, signal processing, engineering, security and encryption. For the workstation platform (1-2 boards), users may take advantage of both the graphics and computing capabilities of FireStream and use it for high-end digital content creation, broadcast, medical imaging, engineering and remote visualization. For desktop use (1 board), the same hardware can do video editing, video game physics and video conferencing.
To bring GPU computing to developers, AMD has provided its own FireStream SDK. Probably the biggest piece of the kit is the Brook+ development language, an AMD-enhanced version of the Brook programming language from Stanford University. Like its NVIDIA CUDA counterpart (which also got its start from Brook), Brook+ provides a C language environment with added functionality for data-parallel operations on a GPU. In order to encourage community adoption, AMD has open-sourced the Brook+ compiler front-end.
The second component of the SDK is an implementation AMD Core Math Library (ACML) that is targeted to GPUs. It includes math functions for things such as the Basic Linear Algebra Subroutines (BLAS) and Fast Fourier Transforms (FFTs). The first version that will be delivered with the Stream SDK 1.0 later this month will be only partially implemented, and then upgraded over time.
The third component of the SDK is the Compute Abstraction Layer (CAL). CAL represents a lower level interface to the GPU and represents an evolution of AMD’s Close to the Metal (CTM) technology, which the company introduced in 2006 along with their new stream computing strategy. As it turned out, CTM was a little too close to the metal and could not migrate easily to future generations of hardware. CAL is an intermediate abstraction of the GPU that enables forward compatibility as GPU architectures evolve. It’s mainly aimed at third-party tool developers or application programmers who need to do low level code tuning to optimize performance. For those needing the ultimate in hardware control, AMD is also making the processor ISA available.
The general approach with the SDK is to open it up as much as possible so that customers, partners, and other interested users can contribute to the FireStream ecosystem. “The intent is to provide open interfaces in this stack from top to bottom,” said Harrell. “We want to drive as many people as possible into developing on this technology.”
For users who don’t want to bother with the SDK at all, there’s always the RapidMind option — an application development platform that transparently supports ATI GPUs, NVIDIA GPUs, the IBM Cell BE processor, and x86 CPUs. Although AMD is not a reseller, the two companies have worked together to make sure the FireStream target is supported in the RapidMind platform.
Although AMD is playing catch-up with NVIDIA right now, getting the FireStream boards and SDK in the hands of real live customers should go a long way in closing the gap. The initial FireStream hardware is impressive. If the SDK matches up well with CUDA, we should see a beneficial rivalry develop in the GPGPU market.