With the Games Developer Conference right around the corner we’ve started to see more gaming and technology announcements cropping up, but a new report on DirectX 12 is certain to raise the eyebrows of any PC gamer. It’s been reported that DirectX 12 — Microsoft’s upcoming, low-latency, close(r)-to-metal API that replaces DirectX 11 — will be capable of running across AMD and Nvidia GPUs at the same time.
A “source with knowledge of the matter” told Tom’s Hardware that DirectX 12 will support asynchronous workloads across multiple GPUs, and that one extension of this support is that a task could theoretically be split between two different video cards from different manufacturers.
For many users, this kind of claim is the stuff of legend. One of the factors that distinguishes the AMD – Nvidia competition from the AMD – Intel battle is that Teams Red and Green regularly switch positions. It’s not unusual for one vendor to have the absolute performance crown while the other has a strong price/performance position at the $200 mark, or for one company to lead for several years until leapfrogged by the other.
The other advantage of combining GPU technologies is that it could allow for multi-GPU performance on Intel-Nvidia systems or even systems with an AMD CPU / APU and an Nvidia GPU. We took this question to several developers we know to find out if the initial report was accurate or not. Based on what we heard, it’s true — DirectX 12 will allow developers to combine GPUs from different vendors and render to all of them simultaneously.
The future of multi-GPU support
We’re using Mantle as a jumping-off point for this conversation based on its high-level similarity to DirectX 12. The two APIs may be different at a programming level, but they’re both built to accomplish many of the same tasks. One feature of both is that developers can control GPU workloads with much more precision than they could with DX11.
There are several benefits to this. For the past ten years, multi-GPU configurations from both AMD and Nvidia have been handicapped by the need to duplicate all texture and geometry data across both video cards. If you have two GPUs with 4GB of RAM each, you don’t have 8GB of VRAM — you have 2x4GB.
One of the implications of DirectX 12’s new multi-GPU capabilities is that the current method of rendering via Alternate Frame Rendering, where one GPU handles the odd frames and the other handles even frames may be superseded in some cases by superior methods. We examined the performance impact of Split Frame Rendering in Civilization: Beyond Earth last year, and found that SFR offered vastly improved frame times compared to traditional AFR.
We expect DirectX 12 to offer the same capabilities as Mantle at a high level, but unlike Mantle, it’s explicitly designed to support multiple GPUs from Intel, AMD, and Nvidia. Let’s take a simple example — an Intel CPU with integrated graphics and an AMD or Nvidia GPU. Each GPU is exposed to the 3D application, which means the workload can theoretically be run across both GPUs simultaneously. It’s not clear which GPU would drive the monitor or how output would be handled, but companies like LucidLogix (which actually tried its hand at providing a hardware solution for multi-vendor GPU support once upon a time) later made its name with a virtualized monitor driver that served this purpose.
The developers we spoke to indicated that AMD and Nvidia wouldn’t necessarily need to support the feature in-driver — there are certain kinds of rendering tasks that could be split between graphics cards by the API itself. That’s encouraging news, since features that require significant driver support tend to be less popular, but it’s not the only potential issue. The advantage of DX12 is that it gives the developer more control over how multi-GPU support is implemented, but that also means that the driver handles less of the work. Support for these features will be up to developers, and that’s assuming that AMD and Nvidia don’t take steps to discourage such cross-compatibility in driver. Historically Nvidia has been less friendly to multi-vendor GPU configurations than AMD, but DirectX 12 could be a hit reset on the feature.
In an ideal world, this kind of capability could be used to improve gaming performance on nearly all devices. The vast majority of Intel and AMD CPUs now includes GPUs onboard — the ability to tap those cores for specialized processing or just a further performance boost would be a welcome capability. DirectX 12 is expected to cut power consumption and boost performance in at least some cases, though which GPUs will offer “full” DX12 supportisn’t entirely clear yet. DX12’s multiple-vendor rendering mode wouldn’t allow for other features, like PhysX, to automatically operate in such configurations. Nvidia has historically cracked down on this kind of hybrid support, and the company would have to change its policies to allow it to operate.
No comments:
Post a Comment