APUs, discrete graphics and where processing can go

monsieurrigsby

Junior Member
Apr 26, 2010
6
0
0
[I actually asked this as a comment to the Kaveri review article, but noone responded. Have just got over my bitter sense of rejection ;) and so am re-asking here.]

There's something I still don't understand after reading various reviews on Kaveri (and APUs in general).

If you have a Kaveri APU and a mid/high-end discrete GPU that won't work with Dual Graphics (assuming Dual Graphics arrives), what processing can and can't use the on-APU GPU? If we're talking games (my main scenario), what can developers offload onto the onboard GPU and what can't they? What depends on the nature of the discrete card (e.g., are modern AMD ones 'HSA enabled' in some way?)? If you *do* have a Dual Graphics capable discrete GPU, does this still limit what you can *explicitly* farm off to the onboard GPU?

My layman's guess is that GPU compute stuff can still be done (say for physics calculations) but, without dual graphics, stuff to do with actual frame rendering can't. (I don't know much about GPU programming, so may be using the wrong terms...)

It's just that there seems to be an obvious question for the gaming consumer which I've never seen explicitly answered: if I have a discrete card, in what contexts is the on-APU GPU 'wasted' and when could it be used (and how much depends on what the discrete card is)? And I guess the related point is how much effort is the latter (and what software/APIs it involves), and so how likely are we to see elements of it? For example, does Mantle allow low-level access to both GPUs in a way which higher level APIs may/do not?

Am I missing something that's clearly explained somewhere?
 

KingFatty

Diamond Member
Dec 29, 2010
3,034
1
81
Another perspective is to consider completely different approaches, such as SoftTH. That enables you to render the entire scene on your powerful GPU, but output that large scene across any combination of GPUs including low-end/integrated graphics. Those weaker GPUs don't need to do any rendering. Instead, they are just outputting a pre-rendered graphics scene.

See: http://www.kegetys.fi/SoftTH/

So for your situation, you'd avoid any waste of that APU GPU because it would be outputting to however many displays, but you'd get nice performance because the main GPU does all the rendering work and carries the load on behalf of the APU GPU.
 

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
What is possible today isn't really all that fantastic. DirectX and openGL wont care about a secondary GPU that isn't in crossfire/SLI and hence it provides no benefit to the game at all. No games we have seen so far (or even capabilities talked about) have gone past this basic position except for PhysX, and that as we know is chosen in Nvidia's control panel.

However in the future there are a few possibilities.

- Games could start using openCL for big computation jobs like physics and 3D computations and this could be something that goes onto a secondary otherwise idle GPU like that found on an APU.

- One of the selling points of Mantle is that crossfire isn't implicit in the API, instead developers can program to it. Rather than rendering whole frames on separate cards and displaying them alternately the idea behind mantle is that you can split computations across the cards and get all that performance focussed on one frame. This would remove the drawbacks of crossfire (microstutter, scaling, increased latency) while making it more complex for the developers.

- Then there is a future that has the GPU being an offload for CPU calculations, some of the libraries used for making games could do some of their appropriate calculations on the GPU instead of the CPU and that could very well target the lower performance cores in an APU.

All of these approaches are more complicated than just AFR based crossfire/sli used today. All of it exists from a software perspective, even for DirectX with DirectCompute or parallel usage of openCL, but no one uses it and I suspect they probably wont for a long long time.

Its for this reason I think Kaveri is an odd product. Its targeted at low end machines that wont get a discrete card, because the moment you get one a large amount of the die of the CPU is completely wasted and you end up with a much slower CPU than had you bought something with less space assigned to the GPU.
 

NTMBK

Lifer
Nov 14, 2011
10,411
5,677
136
In theory yes, games could run OpenCL physics on the integrated GPU while rendering on the discrete GPU. I really wish that someone would get their stuff together and do this, as it would be a big help on Intel APUs as well as AMD ones.