Skip to main content

ATI Stream: Finally, CUDA Has Competition

Introduction

Imagine if you told everybody you were going to throw this awesome, mind-altering, uberlicious party. But the day of the party, the first people in the door discovered that the plumbing was backed up, and everybody left, which was fine because the live band had been killed by freak tornado while en route. Five months later, you try to throw the same party again. The difference is that now you have a Fisher boom box instead of a live band, and, thanks to some duct tape, the plumbing works. Meanwhile, another guy down the block has already started throwing his own party. The invitations look a lot like yours. He’s serving the same drinks. You’re throwing in a free party favor, but no one seems to care, in part because the people who might care are already bustin’ moves down the block. Several people have RSVPed for your soiree, but only two or three have showed up so far.

You’re AMD, and the name of your party is “ATI Stream.”

If you caught our recent coverage of Nvidia’s CUDA platform, then you’re up to speed on the state of GPGPU processing, or GPU computing, or whatever you want to call it these days, and you know that ATI Stream stands alongside CUDA as one of the two most prevalent GPU computing platforms available today. The idea with GPU computing is to take highly parallelized tasks typically run in the CPU and offload them to the GPU, where they can run more quickly and efficiently. Programmable shaders are exceptionally well-suited for floating point-intensive tasks. Each shader operates as its own sort of processor core, so instead of having four or eight threads crunching on a parallelized task in the CPU, you could have 64 or 320 or however many stream processors tackling the same work in the GPU. Naturally, the program has to be coded to take advantage of this architecture, and the operations need to involve a relatively heavy amount of arithmetic per memory fetch in order to see decent results.

When Stream launched last December, AMD had only enabled it to accelerate encoding into MPEG-2 and H.264 formats. The acceleration part was fine. What AMD hadn’t counted on was that it would be deluged with criticisms over its encoding quality. With the May’s Catalyst 9.5 driver update, though, we finally have bug fixes for the quality issues and a fuller acceleration pipeline that now includes MPEG-2 and H.264 decoding, as well as resolution scaling. You can see this represented in the high-level illustration shown here.

The burning question, of course, is how does Stream stack up? Was it worth the wait? We’ve got some preliminary answers and more besides, but first, let’s step back for some perspective...