• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

Microsoft Simplifies Multi-GPU Support for DirectX 12 Developers

  • Thread starter Thread starter HeX
  • Start date Start date

HeX

HeX

Soldato
Joined
20 Jun 2004
Posts
12,023
Location
Huddersfield, UK
Microsoft has announced that it is making it easier for DirectX 12 developers to use multiple GPUs on a system without having to use as much coding as they do now. The new abstraction layer will simplify the process of pooling video cards on a single system, offering a basic level of support that will bypass the use of Explicit Multi Adaptor (EMA).

DirectX 12 gives developers the option of using more than one GPU on a single system, even if those cards are different models and offer different performance. However, Microsoft has never really pushed this ability beyond a concept, and at the moment if developers want to pool GPUs they have to do all the heavy lifting and code everything.

That’s a lot of work, so as a result only a few titles have actually taken advantage of Explicit Multi Adaptor (EMA) the support feature that allows multi GPU pooling. EMA is noted for being difficult to use, simply because incorrect implementation often leads to poorer performance and not enhanced power.

Microsoft has finally decided to offer a pathway for easier coding to achieve more than one card working on a system. Removing some of the difficulties, developers can now use minimal coding to achieve multi-GPU systems.

It is worth noting that Microsoft says this is “basic multi-GPU support,” so developers will still have to use EMA if they want to integrate multiple cards to DirectX 12 and get the full potential.

The new abstraction layer is not available yet, Microsoft says it is doing some final touches before rolling out to the public soon.

Source

Those crossfire RX480's might just start looking like a better option (eventually... possibly... probably not...)

On a basic level this should give all developers an easy base level multi-GPU support option.
 
Last edited:
I'm guessing MS will end up doing quite a bit of this for various DX12 features putting back in a lot of accessibility via higher level abstraction that was stripped away on the drive for "low level access" that hardly anyone actually asked for despite the hype.
 
They already provided 'Implicit multi-adapter' which was supposed to allow developers to use the same techniques as used with DX11. http://www.anandtech.com/show/9740/directx-12-geforce-plus-radeon-mgpu-preview/2.
This sounds like something newer and simpler for both developers and driver teams than what was required through DX11. A 'default' Explicit multi-adapter implementation based on whatever they consider best practice. TBH sounds like MS actually doing their job and developing a versatile API. I imagine this really stems from the gradual unification of PC and console gaming, and the prospect of consoles/PC potentially going mGPU en masse in the future, making it worth their investment.

I do wonder whether AMD/Nv will look to enhance this 'default' multi-adapter operation through their drivers. I hope with this standardised/more predictable way to interact with their hardware that it might not evolve into the same per game mess we have currently.
 
Last edited:
To me this sounds like "basic level mgpu support" which probably means you get a slight bit of scaling when adding a 2nd GPU, rather than a flat nothing, which also makes me think AMD probably knows about this and is potentially just labelling their current Crossfire support as "Premium Crossfire Support" lol.
 
I'll await to see if this actually happens and works. I have my doubts anything will come of it to be honest.
 
This could mean a lot of things, really.

Getting something to run well at all in DX12 is going to be a challenge, so I do wonder how successful this basic abstraction for multi-GPU support will be. Even if scaling is decent, what will the frametimes be like?

It's promising that they're working on this, but I'm unsure at what level they can actually *effectively* achieve this given the whole nature of a low level API.
 
I assume this makes it easier for developers to farm out basic tasks i.e. render the UI on one adapter and the game on another without the developer having to do much work.
 
I'm guessing MS will end up doing quite a bit of this for various DX12 features putting back in a lot of accessibility via higher level abstraction that was stripped away on the drive for "low level access" that hardly anyone actually asked for despite the hype.

This tbqh.

Even if you want to implement one aspect of your engine with D3D12 that doesn't necessarily mean you want the ballache of re-inventing the wheel everywhere else in a brand-new ecosystem.
 
Last edited:
I'm guessing MS will end up doing quite a bit of this for various DX12 features putting back in a lot of accessibility via higher level abstraction that was stripped away on the drive for "low level access" that hardly anyone actually asked for despite the hype.

They already have if you mean all of the new DX12 hardware features. it is called directx 11.3.
 
I'm not saying that having low level access is bad btw - but that actually many developers really don't want to deal with it on a day to day basis and/or want to be able to dip into lower level stuff as needed not having to work with it all the time.

There are a few engine developers for whom low level access is a god send.
 
The one thing that will help the most is just having some kind of basic code examples and a pre built rendering engine as an example etc.

They already do a lot of what DX12 requires when coding for consoles so it is nowhere near as big a leap as people think. The major differences occur around mGPU and the new hardware features etc.
 
Yeah but no one gets excited about DX11 point anything :P
It's a shame because DX11.3 is pretty incredible. The CPU load balancing in many modern titles is just *worlds* better than what early DX11 titles were doing, which weren't much better than terrible single thread-limited days of DX9.
 
Back
Top Bottom