cdrkf
Judicious
gamerk316 :
I think this is the crux of AMD's whole strategy though- as you say you need to feed instructions to the most suitable execution resource. There are plenty of things that are currently handled by CPU cores that would run better on the GPU, and potentially vice versa.
If HSA endures and reaches it's goal- then the particular engine doing a task will become transparent to the OS, and the allocation of resources will become automatic. At that point, the assembly of the 'whole' becomes more important than any individual component which would give AMD an advantage (the total theoretical throughput of their APU's is really high, the problem is utilising it properly in software with the current tools).
No, there aren't, and that's the logical failure here. A GPU core is ALWAYS going to be slower then a CPU core, simply due to design. The ONLY reason a GPU is faster is because they have upwards of 1000 cores, and in highly parallel work where all those resources are used, ends up outperforming 4 core CPUs.
From a CPU's perspective, it is simply executing a stream of instructions. The CPU is more or less blind to how those instructions are organized, and thus can't make assumptions about if the instructions in question are better run on an iGPU or not. That type of data handling is ALWAYS going to be done user level, either by the developer or the compiler.
And in both cases, you have to consider the varying performance differences between the CPU/GPU when deciding whether to offload work or not. The Dolphin Emulator, for instance, has options to use both OpenMP and OpenCL for texture decoding, and typically, on my system (2600k and 770 GTX), both slow the emulator. With a weaker CPU though? Maybe those will result in a speedup. So even making hardcoded assumptions will cause problems. Just look at the idTech5 engine and listen to how people react when their performance options are automatically chosen for them in a sub-optimal manner.
Hence why HSA is a pipe dream: You need the devs to support it. And if Intel isn't on board, then its not going to be universally adopted. If AMD's strategy is built around HSA being widely adopted, then they've already failed. Devs do not go out of their way to support processing for the minority. In specialized software? Sure, since there's a market there. But in the real world? No.
Its this same reasoning why I called BD's design a failure two years ahead of time, because irrespective of anything else, low performance cores that mandated significant CPU threading of typically non-threadable tasks to make up its per-core performance deficit was NOT going to happen. Same concept here.
With the exception that HSA isn't an AMD only strategy. The majority of Intel CPU's now include an IGP, and HSA has pretty much all the ARM players involved so I think it's very much possible that it will gain a foothold. What I can see happening though is, like other technologies AMD has implemented, they're probably not going to be the ultimate winners of the technology (e.g. AMD's x86-64 instruction set, which is benefiting Intel nicely now).
The thing that HSA needs is time- this is the way all the players are moving (even if they're not calling it that). I agree that the magic self optimising execution system is probably not going to happen, but if everything starts becoming HSA compliant (or something similar even if under another banner) then the software developers will probably start moving that way. Not everything is going to be adjusted for it- as there is a large proportion of software that simply wont benefit. If a little app will run fine on a single thread on a 1ghz arm A7 core there's really no need. However it's the heavy duty software that's going to implement this stuff (so games, cad, rendering, video editing and so on) as those applications are where there is something meaningful to gain.