Microsoft Corp. has confirmed that its upcoming DirectX 12 application programming interface (API) will support some sort of cross-vendor multi-GPU technology that will allow graphics processing units from different developers to work together at the same time. Unfortunately, the software developer revealed no specifics about the tech, therefore, it does not mean that one could actually benefit by using a Radeon and a GeForce in the same system.
A Microsoft technical support staff member said that DirectX 12 will support “multi-GPU configurations between Nvidia and AMD”, according to a screenshot published over at LinusTechTips, a community known for various interesting findings. The Microsoft representative did not reveal requirements necessary to make an AMD Radeon and an Nvidia GeForce run in tandem, besides, she also did not indicate actual benefits of such setup.
Various types of multi-GPU technologies are used to accomplish various tasks. Gamers utilize more than one graphics card in AMD CrossFire or Nvidia SLI configurations to get higher framerates in modern video games. Professionals use multiple graphics adapters to attach many displays to one PC. Engineers can use different types of add-in-boards (AIBs) for rendering (AMD FirePro or Nvidia Quadro) and simulation (Nvidia Tesla or Intel Xeon Phi). Artists and designers can use several GPUs for final rendering in ultra-high resolutions using ray-tracing or similar methods. While in some cases (e.g., driving multiple displays, rendering + simulation, etc.) it is possible to use AIBs from different developers, in many other cases (gaming, ray-tracing, etc.) it is impossible due to various limitations. Independent hardware vendors (IHV) also do not exactly like heterogeneous multi-GPU configurations, which is why it is impossible to use AMD Radeon for rendering and Nvidia GeForce for physics computing in games that use PhysX engine from Nvidia.
At present it is unclear which multi-GPU configurations were referred to by the Microsoft representative.
While it is obvious that DirectX 12 will support contemporary cross-IHV multi-GPU configurations, a previous report suggested that the upcoming API will also allow to use graphics processors from different vendors in cases not possible today, e.g., for rendering video games. There are multiple reasons why it is impossible to use GPUs from different vendors for real-time rendering today, including tricky rendering methods, API limitations, application limitations, differences in GPU architectures, driver limitations and so on. Microsoft’s DirectX 12 potentially removes API-related limitations in certain cases and introduces a number of new techniques that allow to use resources of two graphics cards at the same time.
Since DX12 is a low-level/high-throughput API, it should have a close-to-metal access to GPU resources and in many cases this should provide a number of interesting technological opportunities. Among other things, the new API should allow usage of cross-IHV multi-GPU configurations in applications that were made with DX12 and heterogeneous multi-GPU setups in mind. For example, it should be possible to use graphics chips from different vendors for ray-tracing, compute-intensive tasks and similar workloads. Since architectures of GeForce and Radeon graphics pipelines are vastly different, using two graphics cards from different vendors for real-time latency-sensitive rendering of modern video games that use contemporary 3D engines should be extremely complicated. All multi-GPU technologies used for real-time rendering require two GPUs to be synchronized not only in terms of feature-set, but also in terms of performance, memory latencies and so on.
Given all the difficulties with synchronization of cross-IHV multi-GPU setups for latency-sensitive real-time rendering, it is unlikely that such a technology could take off. However, it should be kept in mind that DirectX 12 is designed not only for personal computers, but also for Xbox One. Microsoft has been experimenting with cloud-assisted AI and physics computations for Xbox One (both are latency-insensitive). Therefore, at least theoretically, there is a technology that lets developers (or even programs) to perform different tasks using different hardware resources without need for real-time synchronization.
Perhaps, DX12 will let apps use “secondary” GPUs for certain tasks without significant synchronization-related issues. The only question is whether AMD and Nvidia would be glad about heterogeneous multi-GPU configurations in general and will not block them in their drivers.
AMD and Nvidia declined to comment on the news-story.
Discuss on our Facebook page, HERE.
KitGuru Says: Considering the fact that cross-IHV multi-GPU configurations in DirectX 12 is something completely unclear at the moment, take everything reported about this with a huge grain of salt. At least in theory, heterogeneous multi-GPU technologies for video games are possible, only these are not CrossFire or SLI configurations we know today. In short, do not expect your old Radeon HD 7970 to significantly boost performance of your shiny new GeForce GTX 980 once DirectX 12 is here.