[VRZ]Epic Games’ Tim Sweeney and AMD don’t see eye-to-eye on hUMA

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
I actually disagree with both views. I don't think making the GPU fully capable of running C++ is sufficient to solve the problem. I think this requires more than just memory unification and some instructions at the GPU level, I think it needs instruction level compatibility.

In my ideal future world a Computer has heterogeneous cores, that is some of them perform well on largely single threaded code, deal with branches well etc like todays modern CPUs and the other cores need to be used on mass with mostly calculations in order to function. Both support running of AMD64 instruction set and the operating system goes about allocating threads/tasks to the right core. The programmers role in all this is to hint about where a calculation would run best. Thus any program could start to utilise these additonal GPU cores even if technically it was never written to do so because the OS would assign activities to those cores when the high performance cores were utilised.

This matches closer to the way programs are written today and largely means that switching code from one core to the other is a matter of a bit of meta data for the thread and obviously setting up the multithreading to begin with. But having to write C++ in the middle of a python program for example so it can be passed to openCL and then run using C++ like data structures that is not the future and never well be. They will continue to see very slow adoption if they continue down this route, it will never become mainstream. Of all the solutions currently out there I have more hope for Intel's Phi to succeed than any of the others, although at the moment its just a computer on a board with a lot of cores rather than an actual core processor, but they are a lot closer to an ideal programming model.
 

zlatan

Senior member
Mar 15, 2011
580
291
136
I actually disagree with both views. I don't think making the GPU fully capable of running C++ is sufficient to solve the problem. I think this requires more than just memory unification and some instructions at the GPU level, I think it needs instruction level compatibility.
The instruction level compatibility is impossible. The GPUs need a good parallel ISA, which provides very fast mechanism to create/destroy and synchronizing threads, and a fast mechanism for thread communication. And a GPU use thousands of threads, so this is a critical part for the implementation.
A scalar ISA like x86 or ARMv7 (or the 64-bit extensions) are very bad at this, because a CPU core mostly use one thread, so it don't really need a robust GPU-like ISA implementation, but needs some other things which is not part of any parallel ISA.

The closest level to implement some compatibility is a well definded virtual ISA.
 

RussianSensation

Elite Member
Sep 5, 2003
19,458
765
126
"But considering some developers’ hesitation to cite a definite performance advantage that hUMA presents, the idea that a revolution in processing comparable to the introduction of the APU is dubious at best."

Both AMD and NV will adopt UMA in future GPU generations. If there was no performance benefit, why would they both have it on their roadmaps?

"....the firm's next generation Maxwell GPU architecture will allow the GPU to access main memory, reminiscent of AMD's unified memory architecture. Nvidia co-founder and CEO Jen-Hsun Huang said Maxwell, which will replace the present Kepler architecture, will be the firm's first GPU architecture that is able to access main memory." ~ Source

With Project Denver, NV is also focusing on leveraging the powers of CPU+GPU:
http://wccftech.com/nvidia-roadmap-confirms-20nm-maxwell-gpus-2014-kepler-refresh-arrives-1h-2013/