Why Two 4GB GPUs Isn't Necessarily 8GB
We're trying something new here at PC Perspective. Some topics are fairly difficult to explain cleanly without accompanying images. We also like to go fairly deep into specific topics, so we're hoping that we can provide educational cartoons that explain these issues.
This pilot episode is about load-balancing and memory management in multi-GPU configurations. There seems to be a lot of confusion around what was (and was not) possible with DirectX 11 and OpenGL, and even more confusion about what DirectX 12, Mantle, and Vulkan allow developers to do. It highlights three different load-balancing algorithms, and even briefly mentions what LucidLogix was attempting to accomplish almost ten years ago.
If you like it, and want to see more, please share and support us on Patreon. We're putting this out not knowing if it's popular enough to be sustainable. The best way to see more of this is to share!
DirectX 12 Has No More Secrets
The DirectX 12 API is finalized and the last of its features are known. Before the BUILD conference, the list consisted of Conservative Rasterization, Rasterizer Ordered Viewed, Typed UAV Load, Volume Tiled Resources, and a new Tiled Resources revision for non-volumetric content. When the GeForce GTX 980 launched, NVIDIA claimed it would be compatible with DirectX 12 features. Enthusiasts were skeptical, because Microsoft did not officially finalize the spec at the time.
Last week, Microsoft announced the last feature of the graphics API: Multiadapter.
We already knew that Multiadapter existed, at least to some extent. It is the part of the specification that allows developers to address multiple graphics adapters to split tasks between them. In DirectX 11 and earlier, secondary GPUs would remain idle unless the graphics driver sprinkled some magic fair dust on it with SLI, CrossFire, or Hybrid CrossFire. The only other way to access this dormant hardware was by spinning up an OpenCL (or similar compute API) context on the side.
Subject: General Tech, Graphics Cards | January 23, 2015 - 07:11 PM | Scott Michaud
Tagged: windows 10, microsoft, dx12, DirectX 12, DirectX
Microsoft has added DirectX 12 with the latest Windows 10 Technical Preview that was released today. Until today, DXDIAG reported DirectX 11 in the Windows 10 Technical Preview. At the moment, there has not been any drivers or software released for it, and the SDK is also no-where to be found. Really, all this means is that one barrier has been lifted, leaving the burden on hardware and software partners (except to release the SDK, that's still Microsoft's responsibility).
No-one needs to know how old my motherboard is...
Note: I have already experienced some issues with Build 9926. Within a half hour of using it, I suffered an instant power-down. There was not even enough time for a bluescreen. When it came back, my Intel GPU (which worked for a few minutes after the update) refused to be activated, along with the monitor it is attached to. My point? Not for production machines.
Update: Looks like a stick of RAM (or some other hardware) blew, coincidentally, about 30 minutes after the update finished, while the computer was running, which also confused my UEFI settings. I haven't got around to troubleshooting much, but it seems like a weirdly-timed, abrupt hardware failure (BIOS is only reporting half of the RAM installed, iGPU is "enabled" but without RAM associated to it, etc.).
The interesting part, to me, is how Microsoft pushed DX12 into this release without, you know, telling anyone. It is not on any changelog that I can see, and it was not mentioned anywhere in the briefing as potentially being in an upcoming preview build. Before the keynote, I had a theory that it would be included but, after the announcement, figured that it might be pushed until GDC or BUILD (but I kept an open mind). The only evidence that it might come this month was an editorial on Forbes that referenced a conversation with Futuremark, who allegedly wanted to release an update to 3DMark (they hoped) when Microsoft released the new build. I could not find anything else, so I didn't report on it -- you would think that there would be a second source for that somewhere. It turns out that he might be right.
The new Windows 10 Technical Preview, containing DirectX 12, is available now from the preview build panel. It looks like Futuremark (and maybe others) will soon release software for it, but no hardware vendor has released a driver... yet.
Introducing Windows 10 (Again)
I did not exactly make too many unsafe predictions, but let's recap the Windows 10 Consumer announcement anyway. The briefing was a bit on the slow side, at least if you are used to E3 keynotes, but it contained a fair amount of useful information. Some of the things discussed are future-oriented, but some will arrive soon. So let's get right into it.
Price and Upgrade Options
Microsoft has not announced an official price for Windows 10, if the intent is to install it on a new PC. If you are attempting to upgrade a machine that currently runs Windows 7 or Windows 8.1, then that will be a free upgrade if done within the first year. Windows Phone 8.1 users are also eligible for a no-cost upgrade to Windows 10 if done in the first year.
Quote Terry Myerson of Microsoft, “Once a device is upgraded to Windows 10, we will be keeping it current for the supported lifetime of the device.” This is not elaborated on, but it seems like a weird statement given what we have traditionally expected from Windows. One possible explanation is that Microsoft intends for Windows to be a subscription service going forward, which would be the most obvious extension of “Windows as a Service”. On the other hand, they could be going for the per-device revenue option with Bing, Windows Store, and other initiatives being long tail. If so, I am a bit confused about what constitutes a new device for systems that are regularly upgraded, like what our readers are typically interested in. All of that will eventually be made clear, but not yet.
A New Build for Windows 10
Late in the keynote, Microsoft announced the availability of new preview builds for Windows 10. This time, users of Windows Phone 8.1 will also be able to see the work in progress. PC “Insiders” will get access to their build “in the next week” and phones will get access “in Feburary”. Ars Technica seems to believe that this is scheduled for Sunday, February 1st, which is a really weird time to release a build but their source might be right.
We don't know exactly what will be in it, though. In my predictions, I guessed that a DirectX 12 SDK might be available (or at least some demos) in the next build. That has not been mentioned, which probably would have been if it were true. I expect the next possibility (if we're not surprised in the next one-to-ten days when the build drops) is Game Developers Conference (GDC 2015), which starts on March 2nd.
The New Web Browser: Project Spartan
My guess was that Spartan would be based on DirectX 12. Joe Belfiore said that it is using a new, standards-compliant rendering engine and basically nothing more. The event focused on specific features. The first is note taking, which basically turns the web browser into a telestrator that can also accept keyboard comment blocks. The second is a reading mode that alters content into a Microsoft Word-like column. The third is “reading lists”, which is basically a “read it later” feature that does offline caching. The fourth is Adobe PDF support, which works with the other features of Spartan such as note taking and reading lists.
Which Transitions Into Cortana
The fifth feature of Spartan is Cortana integration, which will provide auto-suggestions based on the information that the assistant software has. The example they provided was auto-suggesting the website for his wife's flight. Surprisingly, when you attempt to control a Spartan, Cortana does not say “There's two of us in here now, remember?” You know, in an attempt to let you know she's service that's integrated into the browser.
Otherwise, it's an interesting demo. I might even end up using it when it comes out, but these sorts of things do not really interest me too much. We have been at the point where, for my usage, the operating system is really not in the way anymore. It feels like there is very little friction between me and getting what I want done, done. Of course, people felt that way about rotary phones until touch-tone came out, and I keep an open mind to better methods. It's just hard to get me excited about voice-activated digital assistants.
As I stated before, DirectX 12 was mentioned but a release date was not confirmed. What they did mention was a bit of relative performance. DirectX 12 supposedly uses about half of the power consumption of DirectX 11, which is particularly great for mobile applications. It can also handle scenes with many more objects. A FutureMark demo was displayed, with the DirectX 11 version alongside a DirectX 12 version. The models seem fairly simple, but the DirectX 12 version appears to running at over 100 FPS when the DirectX 11 version outright fails.
Other gaming features were mentioned. First, Windows 10 will allow shadow recording the last 30 seconds of footage from any game. You might think that NVIDIA would be upset about that, and they might be, but that is significantly less time than ShadowPlay or other recording methods. Second, Xbox One will be able to stream gameplay to any PC in your house. I expect this is the opposite direction than what people hope for, rather wishing for high-quality PC footage to be easily streamed to TVs with a simple interface. It will probably serve a purpose for some use case, though.
Well that was a pretty long event, clocking in at almost two-and-a-half hours. The end had a surprise announcement of an augmented reality (not virtual reality) headset, called the “HoloLens”, which is developed by the Kinect team. I am deliberately not elaborating on it because I was not at the event and I have not tried it. I will say that the most interesting part about it, for me, is the Skype integration, because that probably hints at Microsoft's intentions with the product.
For the rest of us, it touched on a number of interesting features but, like the Enterprise event, did not really dive in. It would have been nice to get some technical details about DirectX 12, but that obviously does not cater to the intended audience. Unless an upcoming build soft-launches a DirectX 12 preview (or Spartan) so that we can do our own discovery, we will probably need to wait until GDC and/or BUILD to find out more.
Until then, you could watch the on-demand version at Microsoft's website.
Subject: General Tech | January 20, 2015 - 09:45 PM | Scott Michaud
Tagged: windows 10, windows, spartan, microsoft, dx12, DirectX 12, DirectX, cortana
Microsoft will hold a briefing tomorrow (Wednesday, January 21st at 12pm EST/5pm UTC) about “The Next Chapter” of Windows 10. This has been described as the Consumer keynote, mirroring the original one that was supposedly intended for the enterprise. Otherwise, there are few official comments regarding the event, but there are also things that we can speculate on.
Here is what I expect to see:
A New Build for Windows 10
Maybe it will not be released on the same day as the speech, but it cannot really be too far behind. We are about two-thirds through January and December was skipped, so it must be happening soon. When 9879 was released, Microsoft said that it would be the last build of 2014 and that “We'll have something new to share with you early in 2015”. Whatever that is (or those things are) will probably be discussed at the event, which means that the build is probably not too far behind it.
When the graphics API was announced, they specifically said the following (see our recap for the second slide that was posted at 10:48am PST):
- Targeting Holiday 2015 games
- Preview release coming later this year
- Don't want to wait that long? Early access!
The preview release later in 2014 did not happen, but the early access did. As such, I am guessing that the date slipped to either the next Windows 10 build, or maybe a build or two after. Whenever it happens specifically, I am guessing that it will be mentioned at this event and available for developers soon (and not just a hand-picked group of Early Access members). Sure, it could wait until Build 2015 in April, but the original slide sounds like they were targeting the end of 2014.
Also, the DirectX 12 Twitter Account just retweeted the live stream and Phil Spencer will be there.
'Spartan' Browser (Maybe with DirectX 12 Support?)
Speaking of DirectX 12, its goal is to utilize GPU shader cores as efficiently as possible, reducing the time it holds up the CPU and balancing its load across multiple cores. This leads to power efficiency and the ability to load many more tasks on the GPU.
These are all things that a web browser vendor would love! Web standards are inherently difficult to multi-thread, because they are designed as sets of stages which build upon other stages. DirectX 12 could probably help immensely, at least with the drawing stage. Web content tends to be fairly simple, but there can be a lot of it, especially for complex Canvas animations (and especially for mobile devices).
It was also recently rumored that Trident, the rendering engine behind Internet Explorer and the not-quite-confirmed Spartan browser, was forked into two maintained versions. The expectation is that this was for compatibility reasons, where the new version can be developed to W3C (and other) standards without worrying about legacy, Internet Explorer-based compatibility cruft. If porting a DirectX 11 applications to DirectX 12 will be annoying, I can see why Microsoft chose to draw the compatibility line just behind that initiative. And honestly, how many people care about rendering, power, and multi-core performance increases for IE8-designed, and therefore desktop-based, web applications?
Continuum, Cortana, and Other Changes
Again, this is what Microsoft considers a Consumer event. As such, it would make sense for them to describe an ideal consumer device, which probably includes two-in-ones. Cortana should also be discussed as well, which is intended to bring value to the users and probably lead them to Bing services. Leaks have also suggested that they are preparing a dark theme.
Am I right? We'll see tomorrow.
Subject: Graphics Cards | October 3, 2014 - 03:18 AM | Scott Michaud
Tagged: microsoft, DirectX, DirectX 12, windows 10, threshold, windows
A Microsoft blog posting confirms: "The final version of Windows 10 will ship with DirectX 12". To me, this seems like a fairly obvious statement. The loose dates provided for both the OS and the availability of retail games suggest that the two would be launching at roughly the same time. The article also claims that DirectX 12 "Early Access" members will be able to develop with the Windows 10 Technical Preview. Apart from Unreal Engine 4 (for Epic Games subscribers), Intel will also provide source access to their Asteroids demo, shown at Siggraph 2014, to all accepted early access developers.
Our readers might find this information slightly disappointing as it could be interpreted that DirectX 12 would not be coming to Windows 7 (or even 8.x). While it does not look as hopeful as before, they never, at any point, explicitly say that it will not come to older operating systems. It still might.
Subject: General Tech, Graphics Cards | September 20, 2014 - 12:06 PM | Scott Michaud
Tagged: unreal engine 4, nvidia, microsoft, maxwell, DirectX 12, DirectX
Microsoft and NVIDIA has decided to release some information about DirectX 12 (and DirectX 11.3) alongside the launch of the Maxwell-based GeForce GTX 980 and GeForce GTX 970 graphics cards. Mostly, they announced that Microsoft teamed up with Epic Games to bring DirectX 12 to Unreal Engine 4. They currently have two demos, Elemental and Infiltrator, that are up and running with DirectX 12.
Moreover, they have provided a form for developers who are interested in "early access" to apply for it. They continually discuss it in terms of Unreal Engine 4, but they do not explicitly say that other developers cannot apply. UE4 subscribers will get access to the Elemental demo in DX12, but it does not look like Infiltrator will be available.
DirectX 12 is expected to target games for Holiday 2015.
Subject: General Tech, Graphics Cards, Processors, Mobile, Shows and Expos | August 13, 2014 - 09:55 PM | Scott Michaud
Tagged: siggraph 2014, Siggraph, microsoft, Intel, DirectX 12, directx 11, DirectX
Along with GDC Europe and Gamescom, Siggraph 2014 is going on in Vancouver, BC. At it, Intel had a DirectX 12 demo at their booth. This scene, containing 50,000 asteroids, each in its own draw call, was developed on both Direct3D 11 and Direct3D 12 code paths and could apparently be switched while the demo is running. Intel claims to have measured both power as well as frame rate.
Variable power to hit a desired frame rate, DX11 and DX12.
The test system is a Surface Pro 3 with an Intel HD 4400 GPU. Doing a bit of digging, this would make it the i5-based Surface Pro 3. Removing another shovel-load of mystery, this would be the Intel Core i5-4300U with two cores, four threads, 1.9 GHz base clock, up-to 2.9 GHz turbo clock, 3MB of cache, and (of course) based on the Haswell architecture.
While not top-of-the-line, it is also not bottom-of-the-barrel. It is a respectable CPU.
Intel's demo on this processor shows a significant power reduction in the CPU, and even a slight decrease in GPU power, for the same target frame rate. If power was not throttled, Intel's demo goes from 19 FPS all the way up to a playable 33 FPS.
Intel will discuss more during a video interview, tomorrow (Thursday) at 5pm EDT.
Maximum power in DirectX 11 mode.
For my contribution to the story, I would like to address the first comment on the MSDN article. It claims that this is just an "ideal scenario" of a scene that is bottlenecked by draw calls. The thing is: that is the point. Sure, a game developer could optimize the scene to (maybe) instance objects together, and so forth, but that is unnecessary work. Why should programmers, or worse, artists, need to spend so much of their time developing art so that it could be batch together into fewer, bigger commands? Would it not be much easier, and all-around better, if the content could be developed as it most naturally comes together?
That, of course, depends on how much performance improvement we will see from DirectX 12, compared to theoretical max efficiency. If pushing two workloads through a DX12 GPU takes about the same time as pushing one, double-sized workload, then it allows developers to, literally, perform whatever solution is most direct.
Maximum power when switching to DirectX 12 mode.
If, on the other hand, pushing two workloads is 1000x slower than pushing a single, double-sized one, but DirectX 11 was 10,000x slower, then it could be less relevant because developers will still need to do their tricks in those situations. The closer it gets, the fewer occasions that strict optimization is necessary.
If there are any DirectX 11 game developers, artists, and producers out there, we would like to hear from you. How much would a (let's say) 90% reduction in draw call latency (which is around what Mantle claims) give you, in terms of fewer required optimizations? Can you afford to solve problems "the naive way" now? Some of the time? Most of the time? Would it still be worth it to do things like object instancing and fewer, larger materials and shaders? How often?
When Magma Freezes Over...
Intel confirms that they have approached AMD about access to their Mantle API. The discussion, despite being clearly labeled as "an experiment" by an Intel spokesperson, was initiated by them -- not AMD. According to AMD's Gaming Scientist, Richard Huddy, via PCWorld, AMD's response was, "Give us a month or two" and "we'll go into the 1.0 phase sometime this year" which only has about five months left in it. When the API reaches 1.0, anyone who wants to participate (including hardware vendors) will be granted access.
AMD inside Intel Inside???
I do wonder why Intel would care, though. Intel has the fastest per-thread processors, and their GPUs are not known to be workhorses that are held back by API call bottlenecks, either. Of course, that is not to say that I cannot see any reason, however...
DX11 could rival Mantle
The big story at GDC last week was Microsoft’s reveal of DirectX 12 and the future of the dominant API for PC gaming. There was plenty of build up to the announcement with Microsoft’s DirectX team posting teasers and starting up a Twitter account of the occasion. I hosted a live blog from the event which included pictures of the slides. It was our most successful of these types of events with literally thousands of people joining in the conversation. Along with the debates over the similarities of AMD’s Mantle API and the timeline for DX12 release, there are plenty of stories to be told.
After the initial session, I wanted to setup meetings with both AMD and NVIDIA to discuss what had been shown and get some feedback on the planned direction for the GPU giants’ implementations. NVIDIA presented us with a very interesting set of data that both focused on the future with DX12, but also on the now of DirectX 11.
The reason for the topic is easy to decipher – AMD has built up the image of Mantle as the future of PC gaming and, with a full 18 months before Microsoft’s DirectX 12 being released, how developers and gamers respond will make an important impact on the market. NVIDIA doesn’t like to talk about Mantle directly, but it’s obvious that it feels the need to address the questions in a roundabout fashion. During our time with NVIDIA’s Tony Tamasi at GDC, the discussion centered as much on OpenGL and DirectX 11 as anything else.
What are APIs and why do you care?
For those that might not really understand what DirectX and OpenGL are, a bit of background first. APIs (application programming interface) are responsible for providing an abstraction layer between hardware and software applications. An API can deliver consistent programming models (though the language can vary) and do so across various hardware vendors products and even between hardware generations. They can provide access to feature sets of hardware that have a wide range in complexity, but allow users access to hardware without necessarily knowing great detail about it.
Over the years, APIs have developed and evolved but still retain backwards compatibility. Companies like NVIDIA and AMD can improve DirectX implementations to increase performance or efficiency without adversely (usually at least) affecting other games or applications. And because the games use that same API for programming, changes to how NVIDIA/AMD handle the API integration don’t require game developer intervention.
With the release of AMD Mantle, the idea of a “low level” API has been placed in the minds of gamers and developers. The term “low level” can mean many things, but in general it is associated with an API that is more direct, has a thinner set of abstraction layers, and uses less translation from code to hardware. The goal is to reduce the amount of overhead (performance hit) that APIs naturally impair for these translations. With additional performance available, the CPU cycles can be used by the program (game) or be slept to improve battery life. In certain cases, GPU throughput can increase where the API overhead is impeding the video card's progress.
Passing additional control to the game developers, away from the API or GPU driver developers, gives those coders additional power and improves the ability for some vendors to differentiate. Interestingly, not all developers want this kind of control as it requires more time, more development work, and small teams that depend on that abstraction to make coding easier will only see limited performance advantages.
The reasons for this transition to a lower level API is being driven the by widening gap of performance between CPU and GPUs. NVIDIA provided the images below.
On the left we see performance scaling in terms of GFLOPS and on the right the metric is memory bandwidth. Clearly the performance of NVIDIA's graphics chips has far outpaced (as have AMD’s) what the best Intel desktop processor have been able and that gap means that the industry needs to innovate to find ways to close it.