AMD APU + Discrete graphics?

axehandle

Newcomer
I'm sure this question has been asked and forgive my naivete and ignorance. In a system with an APU and a discrete graphics card the integrated graphics are typically deactivated and are idle, wasted computational resources. Can these IGP/compute units not be put to work on, say, gpu accelerated physics and other FLOP heavy tasks? What other ways could those resources be put to work? Is there something about the PCI-e bus or the APIs that make this an unrealistic idea?

It seems to me that AMD is not exploiting a comparative advantage against Intel (better graphics/FLOPS performance) and Nvidia Physx (tight integration of X86/GPU and far lower latency).

(edit) Also, exploiting the computational resources of otherwise idle graphics units seems like it would be beneficial to AMD and Intel as traditional CPUs have sort of stagnated as the gains in performance have diminished in games. Increasing the usage and performance of IGP in gaming systems could see CPU upgrade cycles track a little more closely to GPU upgrade cycles, provided AMD and Intel don't get abusive and require you to upgrade your MOBO every time you get a new cpu.
 
Last edited by a moderator:
APU graphics are not necessarily disabled when a dGPU is plugged in and you can set it up such that it a similar operation as two dGPU's. With some selected SKU combinations we enable "Dual Graphics" which is basically Crossfire between the APU and dGPU and also (dependent on the compute environment) they can be seen as two individual compute devices so that one operation can be achieved on one whilst the other could primarily be tasked with rendering - I think true physics acceleration on the APU with rendering on a (big) dGPU is more likely to occur when HSA like programming becomes more prevalent.
 
What you mean is this:

DjKSHCh.jpg


It's been referenced here in the forum before, in the Haswell vs. Kaveri thread.

As for when it'll be used by developers, like Dave said it's not really a matter of API support. It's a matter of how many APUs with HSA features (+ sufficient iGPU performance) exist in gaming PCs and when that number can be worth the extra time for game developers to look into it.
IMO, not for another couple of years at least.


Moreover, this new fashion of API optimization for lower CPU overheads (started by AMD with Mantle) will probably keep some people from upgrading their current Phenom IIs, FXs, Sandybridges, Nehalems, etc. for another long time.
 
Last edited by a moderator:
With some selected SKU combinations we enable "Dual Graphics" which is basically Crossfire between the APU and dGPU and also (dependent on the compute environment) they can be seen as two individual compute devices so that one operation can be achieved on one whilst the other could primarily be tasked with rendering -
You mean like having 2 gfx cards and dedicating one to physx (do opencl and directcompute allow that ?)
 
I wonder how that official slide from AMD wasn't obvious enough...
 
ahh, yes but I was under the impression it wasnt allowed under ocl,dc
and if it is how come
1. amd havnt done it earlier
(amd having to build a demo to demonstrate it suggests either its not allowed and they had to bypass those api's or unlike physx the "dedicate a gpu" toggle must be in the game and not in the driver)
2. nv havnt enabled it for those with gpu's dedicated to physx (marketing?)
 
I wonder if Mantle allows control over each compatible GPU in the system ?

Now, if mantle were able to automatically send the GPGPU queue to a 260x and the 3dfx queue to a 290, THAT would be an amazing asset of Mantle.

And a huge selling point for AMD.
It should not even be that hard, given they control the queues and which GPU ring they belong to..

...to be truly honest, I still cannot imagine how 2 GPUs can be initialized in a driver - it guess it is a true mess...
 
Then it was two drivers though for each card not a single driver for both. If I understand his point correctly.
 
Then it was two drivers though for each card not a single driver for both.

Yep. Just that initializing a video card is not a trivial task, you have to set a ton of registries, features, handling resets, memory mapping and 'fixes'. Of course it can be done, I am just imaging how the code would look like.. especially if you have event handling and so on (dont compare the nice vodoo2 to.. today cards, any way, not only for the fact it was an accellerator).
 
pmax if you really do want to know how its done grab the opensource radeon driver
radeon_drm.h and radeon_dri.h (i believe) oh and rhd.c
 
Well they have implied that Mantle gives them much better control over Crossfire, allowing fully dedicated paths of rendering to specific GPUs.
 
Back
Top