Continued from page 2
CB: Back to the parable of the elephant… there are numerous distinct paths in an OpenGL driver, and often each has a distinct performance profile, so talking about “driver performance” as if it were a single entity can be misleading. In addition to the many paths, there are two different types of performance: a) “CPU-bound”, and b) “GPU-bound”. To understand the “CPU-bound” case, remember that the driver consists of instructions that execute on the CPU, so here we’re interested in how many instructions does the driver need to tell the GPU to do its stuff. You can measure CPU-bound performance if you tell the driver to draw something trivial (like a tiny flat triangle) over and over using immediate mode (glBegin/glEnd) because you’ll be exercising the entire driver stack repeatedly, without giving the GPU much to do. The “GPU-bound” case is the reverse, where we send a trivial amount of work for the driver, like drawing one triangle, but that triangle is very large, so the GPU has to exert itself mightily to be ready for the next task.
The reason I spell this out is that, as we saw above with the Portal 2 benchmarks, the GPU-bound case is largely a solved problem for AMD graphics hardware on the Mac. In the vast majority of the cases we are now setting the GPU up to run optimally. Where we still have significant room for improvement is in the CPU-bound case. To fix this we need to work with Apple to tighten up the handshaking between the Apple and AMD layers of the driver stack. It is this underlying complexity which explains why some CAD apps run fast on the Mac, and others need further optimization: if a Pro app is largely GPU-bound it should run as fast as possible, but if the Pro app is CPU-bound then it may lag.
AFR: This may explain why, say, Nemetschek’s latest Vectorworks 2012 is supposedly much faster at viewport and screen regeneration since it now taps the GPU for some of this work. I look forward to learning more about this by talking to specific pro CAD/3D app developers. Let’s switch gears a bit. Given the rise of iOS and the popularity of the iPad in particular do you feel that AMD/ATi can serve Apple in its graphics in this hardware area in the future?
CB: You listened to their quarterly report, didn’t you?
AFR: (laughter…) Yes!
AFR: You test lots of professional apps at AMD in addition to numerous games. These days in the graphics world, what market is pushing the performance envelop more, games or pro applications? And if both, how so? Please explain….
CB: You mentioned the magic word: “test”! Before I answer your question, let me say something about testing… testing is everything! Someone I worked with once said: “If it’s not tested, it’s broken.” We run a lab with both manual testing as well as automated tests running around the clock. The test farm has around 30 Macs representing just about every model that ever shipped with AMD graphics hardware. Each year we run around 44,000 test runs, where each test run takes 4-6 hours to complete depending on the CPU and GPU. Last year we ran 7,179,840 game time demos. Currently we try to review all this data manually… I’m really rooting for the rise of the machines. They’ll want to have good Mac OpenGL drivers too…
AFR: So what do you test more of than?
The honest answer to your question is that we test games much more than we test Pro apps, and in general game developers are the earliest adopters of our new features. We have contacts in the Apple Pro Apps group, and at Adobe, Autodesk, VMWare, Luxology, Nemetschek and lots of other Pro app developers, but we hear from the folks at Valve, Blizzard, Transgaming, Feral, and Aspyr more. My theory is that this is simply due to the longer product cycles of professional apps versus games. Maybe this will change as developers start to use the new features exposed by OpenCL 1.1 and OpenGL 3.2 in Lion.
AFR: Well, I for one hope you are right and look forward to seeing how OpenGL 3.2 more widely adopted in pro apps on the Mac. This was another engaging and technically fun conversation. Thanks again for talking to us.
CB: You are welcome and thank you for the opportunity.
To learn more about AMD and its ATI graphics division visit them online here. To read our 2007 interview with Christ Bentley (which includes an excellent explanation of how Apple pushes the limits of OpenGL development as well as graphics differences between Mac OS X and Windows) go here.