At the Fusion Developer Summit here in Bellevue, Washington this morning, AMD Graphics CTO Eric Demers made some interesting revelations about his company’s next graphics processor architecture. While he didn’t talk about specific products, he did say this new core design will materialize inside all future AMD products with GPUs in them over the next few years.
There were diagrams aplenty (you’ll find some in the image gallery below), and I expect our own Scott Wasson will have more in-depth commentary to provide soon. Demers made some some key points very clear, though.
For one, AMD’s GPUs will break free from the shackles of fixed-function designs: the next AMD GPU architecture will apparently have full support for C, C++, and other high-level languages. Making that possible has involved some re-architecting of the main processing units inside the GPU, which will now be "scalar coprocessors" (similar to the vector supercomputers of the 1980s, Demers said). The new units will mix and match elements of multiple instruction, multiple data (MIMD); multiple instruction, single data; and simultaneous multi-threading (SMT) designs. Gone will be the very long instruction word (VLIW) architecture of past AMD GPU architectures.
Now, AMD doesn’t sound bent on taking Direct3D and OpenGL to an early grave. Demers said he thinks developers will continue to use existing APIs. I’m guessing the real appeal of full C++ support will be for GPU compute tasks, not game programming.
Another point of note is the next-gen GPU architecture’s support for x86-64 memory addressing, which will enable the unification of memory address space across the CPU and GPU. According to Demers, this change will, among other things, eliminate the "glitching" players might sometimes experience when games load textures as they go over the crest of a hill. Developers will be able to use "true virtual memory," Demers noted.
Demers’ keynote was an interesting postscript to yesterday’s big-ticket item, the announcement of Microsoft’s C++ AMP, which extends C++ with support for heterogeneous processors. I heard at least two speakers at the Fusion Developer Summit emphasize that GPUs and CPUs are in no danger of merging. However, GPUs are well on their way toward becoming generic parallel coprocessors. We’ve seen past architectures (such as Nvidia’s Fermi) make strides in that direction, and AMD’s next-gen GPUs look set to tread further down that path, as well.