Soon AMD will give all HD3000 and HD4000 owners an early Christmas present in their next Catalyst-drivers. We’ve got the details of the new ATI Stream-support that will turn your GPU into a transcoding monster.
”GPU IS THE NEW CPU”
The first time I heard this statement was at the launch of the HD1000 3 years ago in 2005. ATI had invited Mike Houston from Stanford University who explained how the GPU’s now would be able to do a lot more stuff than just the traditional rendering. This was all very new then and I ended the segment about this with these words:
“The conclusion – the X1800 really kicks the GeForce 7800GTX in most cases. Still, Mike did hope that ATI and NVIDIa would start thinking about this kind of application when they develop future chips since there still is much that can be better. But who knows – in the future maybe it will be a Radeon 3800 or a GeForce 9900GTX that assists in finding the cure for cancer. “
Ok, I didn’t get the timing completely right but you must admit I was not far off. The truth is that during the last year or so the whole field around using the GPU as a compliment to the CPU has heated up considerably. Both AMD and NVIDIA have now Folding@Home clients that allow them to use their GPU’s to fold proteins and help finding a cure for cancer and NVDIDA has bought up PhysX to allow them to use their GPU’s for physics-acceleration.
AMD of course does not want to be left out and thus today are announcing some cool new features in their upcoming Catalyst-drivers (v8.12) for HD3000 and HD4000 owners.
FINDING THE BALANCE
So why use the GPU at all for other stuff than the usual rendering jobs? It turns out that the GPU is good at some types of workloads (Data Parallel Workloads) while the CPU is good at other types of workloads (Serial and Task Parallel Workloads).
The key is to find a way to balance the workload so that the GPU can step in and take care of stuff that it is more suited to do while the CPU is left to work on what it is best on. This is where today’s announcement comes in.
AMD has built in ATI Stream support for HD3000 and HD4000 owners into Catalyst 8.12. This means that when the driver is released on the 10th of December all HD3000/HD4000 owners will directly be able to run and take advantage of any ATI-Stream enabled apps (more about those later).
OPENING IT UP
Before we go into what apps will take advantage of this, let’s talk about developer support.
As many of you know, AMD, of course, is not the only one working with putting calculations on the GPU. NVIDIA has been working just as hard, maybe even harder after their purchase of PhysX, and they have their own API, CUDA, for it. The problem with CUDA is that it is a proprietary API that only works on NVIDIA-GPU’s. This means that a developer only can target a share of the market when using CUDA.
AMD’s ATI Stream is a similar API but with a little Open-Source twist.
Brook+, the High-level language, is completely Open Source and an extension of an Open Source project. AMD took the project, extended it and published back everything to the Open-Source project. This currently talks to the ATI Stream layer which is both a low-level language and an API. Other tools, libraries and Middleware also can speak to this layer.
We consumers, of course, would prefer not to have several competing API’s that only worked for either card. In some ways it reminds of the early days of the 3D-acceleration where we had competing 3D-API’s from 3dfx (Glide) and Rendition (Rredline). The competition meant that developers had to program patches for each type of cards just to give users 3D-support. The solution at that time was a few broader standards, OpenGL and DirectX, and it looks like the solution will be similar this time around.
AMD specifically talked about the need for open standards during the presentation and gave us some info on what these standards would be.
OpenCL is a new standard that is being worked on by a group of companies including NVIDIA, AMD, Intel, IBM and Apple. OpenCL (Open Computing Language) is a language for programming heterogeneous data and task parallel computing across GPU’s and CPU’s and it was created by Apple who later submitted it to a standardization group. Basically this will allow developers to utilize the GPU over this interface regardless who made the card under, just like OpenGL and DirectX. Apple plans on adding support for it in Snow Leopard and we should expect things to happen with the standard early next year.
Microsoft, of course, also plans on expanding their DirectX-API to support GPGPU and are planning to integrate the Compute Shader into Direct3D.
It definitely looks very promising and I hope that both OpenCL and/or DirectX 11 with the computer Shader will succeed so that game developers can drop all card specific API’s and code and just code to a single interface knowing that it will work across all types of cards.
SO WHAT IS IT GOOD FOR?
While NVIDIA is concentrating on physics acceleration, ATI Stream benefits the user in other ways. In fact, on a direct question, AMD admitted that they still only are in talks with Havok to see if their GPU’s can help in Havok-using games.
The main focus for AMD right now with ATiI Stream is transcoding. AMD has noticed that this is an area where the GPU can perform a lot better than the CPU.
AMD Platform w/ ATI Avivo Video Converter : CPU: AMD Phenom™ X4 9950 2.6GHz, GPU: ATI Radeon™ HD 4850 512MB GDDR3 (625e/993m), Drivers: ATI Catalyst™ software version 8.56 (beta), RAM: 2GB, OS: Windows Vista Ultimate 32-bit
NVIDIA w/ Elemental Badaboom: CPU: AMD Phenom X4 9950 2.6GHz, GPU: XFX GeForce GTX280 1GB GDDR3 (602e/2210m), Drivers: ForceWare 178.08, RAM: 2GB, OS: Windows Vista Ultimate 32-bit
INTEL w/ QuickTimePro + MPEG-2 Pack: CPU: Intel Core2 Extreme Processor QX9650 3.0GHz, GPU: Intel G45, Drivers: n/a CPU only transcoding, RAM: 2GB, OS: Windows Vista Ultimate 32-bit
This is something AMD has talked a lot about and it certainly looks impressive. We will, of course, have to verify the numbers ourselves as soon as we get our beta of the drivers.
To give users a way to start transcoding right away, AMD is bringing back an old friend again, the ATI Avivo Video Converter. This time though it actually uses the GPU for transcoding (it used the CPU in earlier versions). This utility is aimed at the regular users and will be able to convert video in lots of different formats.
For profesionals, AMD is working with several companies to bring out plugins and/or patches to their products so that they will take advantage of the GPU via ATI Stream. AMD mentioned two program: Cyberlink PowerDirector and Arcsoft Total Media Theater, that would have support for ATI Stream early in 2009. They also said that they were in talks with lots of other companies who would add support.
In addition to the transcoding benefit, AMD also mentioned a bunch of other programs that already would be able to take advantage of the GPU:
- Adobe Acrobat®Reader: “Up to 20%* performance improvement when working with graphically rich, high resolution PDF files when compared to using the CPU only”
- Adobe Photoshop CS4® Extended: “Accelerated image and 3D model previewing (panning, zooming, rotation) and 3D manipulations to photos, for example mapping an image onto a 3D object”
- Adobe After Effects®CS4: “Allows for the rapid application of special effects to digital media”
- Adobe Flash®10: “Dynamic, graphically engaging Web content designed with these capabilities in mind”
- Microsoft Windows Vista®: “Harness stream processing to make image adjustments on the fly in Microsoft’s Picture Viewer application”
- Microsoft Expression®Encoder: “Accelerated encoding of content for Microsoft®Silverlight™, Windows Media video and audio”
- Microsoft Office® PowerPoint 2007: “Acceleration of slideshow playback for smooth animations, transitions and slide display”
- Microsoft Silverlight: “Unlocking the full potential for web based multi-media and robust user experience and interface”
As this is a new feature of the GPU, AMD admitted that it was not a huge list of supporting programs but they were confident that it would grown rapidly in the near future.
To some extent it feels like we are back in the days when 3D was introduced. While the new use of the GPU might not be as visually obvious, I cannot help thinking that this is the point where the GPU evolves from just a component that renders objects to a more useful multi-purpose component that will be useful for more than gaming geeks. With the new standards emerging, 2009 looks like the year when GPGPU finally gets its commercial breakthrough.
I am sure AMD is hoping this too. This should give them an opportunity to sell new faster cards to more than the gamers. If a regular causal or non-gamer can benefit from a good video card, then it will make it easier for AMD and NVIDIA to sell them a bit more expensive card than before, expanding the market.
It is a bit dissapointing though that AMD still will have nothing going on for physics acceleration in games. I cannot help thinking that they simply are waiting for OpenCL and/or the new DirectX to emerge. Will this give NVIDIA time to get an edge? Maybe in a few games, but if OpenCL/new DirectX does indeed become standards then it probably won’t be long before the API-issue is moot anyway.
For me, I am just excited to get a free fast transcoder for all my movies that I want to bring with me on my iPhone.
The new Catalyst 8.12 with ATI Stream Technology will be out on the 10th od December (which also happens to be my birthday!).