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!
Subject: General Tech | August 16, 2016 - 08:10 PM | Scott Michaud
Vulkan-Tutorial.com, while not affiliated with The Khronos Group, is a good read to understand how the Vulkan API is structured. It is set up like the tutorials I followed when learning WebGL, which seems to make it quite approachable. I mean, we are still talking about the Vulkan API, which was in no way designed to be easy or simple, but introduction-level material is still good for developers of all skill level, unless they're looking for specific advice.
To emphasize what I mean by “approachable”, the tutorial even includes screenshots of Visual Studio 2015 at some points, to help Windows users set up their build environment. Like... step-by-step screenshots. This explanation is also accompanied by Linux instructions, although those use Ubuntu terminal commands.
Subject: Graphics Cards | August 2, 2016 - 07:37 AM | Scott Michaud
Tagged: windows 10, vulkan, microsoft, DirectX 12
Update (August 3rd @ 4:30pm): Turns out Khronos Group announced at SIGGRAPH that Subgroup Instructions have been recently added to SPIR-V (skip video to 21:30), and are a "top priority" for "Vulkan Next". Some (like WaveBallot) are already ARB (multi-vendor) OpenGL extensions, too.
Original post below:
DirectX 12's shading language will receive some new functionality with the new Shader Model 6.0. According to their GDC talks, it is looking like it will be structured similar to SPIR-V in how it's compiled and ingested. Code will be compiled and optimized as an LLVM-style bytecode, which the driver will accept and execute on the GPU. This could make it easy to write DX12-compatible shader code in other languages, like C++, which is a direction that Vulkan is heading, but Microsoft hasn't seemed to announce that yet.
This news shows a bit more of the nitty gritty details. It looks like they added 16-bit signed (short) and unsigned (ushort) integers, which might provide a performance improvement on certain architectures (although I'm not sure that it's new and/or GPUs exist the natively operate upon them) because they operate on half of the data as a standard, 32-bit integer. They have also added more functionality, to both the pixel and compute shaders, to operate in multiple threads, called lanes, similar to OpenCL. This should allow algorithms to work more efficiently in blocks of pixels, rather than needing to use one of a handful of fixed function calls (ex: partial derivates ddx and ddy) to see outside their thread.
When will this land? No idea, but it is conspicuously close to the Anniversary Update. It has been added to Feature Level 12.0, so its GPU support should be pretty good. Also, Vulkan exists, doing its thing. Not sure how these functions overlap with SPIR-V's feature set, but, since SPIR was original for OpenCL, it could be just sitting there for all I know.
Subject: General Tech | July 16, 2016 - 06:58 PM | Scott Michaud
Tagged: n64, dolphin, libretro, retroarch, vulkan, async shaders, asynchronous compute, amd
While the Dolphin emulator has a lot of mind share, and recently announced DirectX 12 support, they have only just recently discussed working on the open alternative, Vulkan. It looks like the LibRetro developer community will beat them with an update to RetroArch and the LibRetro API. The page for RetroArch 1.3.5 exists as of (according to Google) yesterday, but 404s, so it should be coming soon. It is still in experimental mode, but it's better than nothing.
Interestingly, they also claim that their Vulkan port of Angrylion makes use of asynchronous compute. It's unclear what it uses that for, but I'm sure it will make for interesting benchmarks.
Subject: Graphics Cards | July 13, 2016 - 09:20 PM | Scott Michaud
Tagged: vulkan, R9 Fury X, nvidia, Mantle, gtx 1070, fury x, doom, amd
We haven't yet benchmarked DOOM on Vulkan Update (immediately after posting): Ryan has just informed me that, apparently, we did benchmark Vulkan on our YouTube page (embed below). I knew we were working on it, I just didn't realize we published content yet. Original post continues below.
As far as I know, we're trying to get our testing software for frame time analysis running on the new API, but other sites have posted framerate-based results. The results show that AMD's cards benefit greatly from the new, Mantle-derived interface (versus the OpenGL one). On the other hand, while NVIDIA never really sees a decrease, more than 1% at least, it doesn't really get much of a boost, either.
Image Credit: ComputerBase.de
I tweeted out to ID's lead renderer programmer, Tiago Sousa, to ask whether they take advantage of NVIDIA-specific extensions on the OpenGL path (like command submission queues). I haven't got a response yet, so it's difficult to tell whether this speaks more toward NVIDIA's OpenGL performance, or AMD's Vulkan performance. In the end, it doesn't really matter, though. AMD's Fury X (which can be found for as low as $399 with a mail-in rebate) is beating the GTX 1070 (which is in stock for the low $400s) by a fair margin. The Fury X also beats its own OpenGL performance by up to 66% (at 1080p) with the new API.
The API should also make it easier for games to pace their frames, too, which should allow smoother animation at these higher rates. That said, we don't know for sure because we can't test that from just seeing FPS numbers. The gains are impressive from AMD, though.
Subject: General Tech | July 11, 2016 - 12:16 PM | Jeremy Hellstrom
Tagged: vulkan, doom, bethesda
*** Update *** an asute reader spotted some quick and dirty benchmarks over at Guru of 3D. It looks like the RX480 does indeed benefit from Vulkan, the GTX 1070 not so much.
While this does not mean that the new DOOM will run on Linux, today does see Vulkan support arriving for the new FPS. As we have seen with titles such as BF4 this is not going to benefit users of high end GPUs in any great way, however gamers on a budget should see improvements. Bethesda did not update their minimum specs but do anticipate older cards being able to maintain more respectable framerates; the current minimum specs are a GTX 670 or HD 7870. Expect to see some bugs as this their first shot at the Vulkan API, but do check it out if you have a lower end card or are simply curious how well it works. Handy links for drivers and more info over at Bethesda.
"At id Software, we’ve always pushed technology. With DOOM we let the game drive the technology decisions from early on. This has continued even in post-release, with new updates and more. Today we’re excited to share another big technology push: Vulkan support is now live on PC."
Here is some more Tech News from around the web:
- Open Source Solar @ Hack a Day
- Farewell to Microsoft's Sun Tzu: Thanks for all the cheese, Kevin Turner @ The Register
- Linus Torvalds goes off on one over comment syntax @ The Inquirer
- Apeiron claims NVMe fabric speed without NVMe over fabrics - but how? @ The Register
Subject: General Tech | June 4, 2016 - 09:29 PM | Scott Michaud
Tagged: Java, lwjgl, vulkan
Don't be confused by the date on the LWJGL post -- its release date was June 3rd, as mentioned later in the thread, not February 27th. It looks like they disabled edit timestamps. Regardless, Lightweight Java Game Library (LWJGL) 3.0.0 was just released, which is a library that binds Java code to APIs that are, normally, not directly accessible through that platform.
To be clear: LWJGL is not a library like, say, Qt, which simplifies common tasks into classes. Its goal is to connect you to whatever API you need, and otherwise leave you alone. Unless you're the type who wants full control over everything, or you're actually making a framework yourself, you will want to use existing frameworks, engines, and/or middleware for your projects. The advantage, of course, is that these frameworks, engines, and middleware now have access to newer APIs, and can justify deprecating old features.
This release adds Vulkan support, which will provide a high-performance (and high-efficiency) base to abstract many other graphics and GPU compute tasks on. DirectX 12 and Vulkan are still being worked on, as an industry, but its mechanism is theoretically better, especially with multiple threads (and multiple graphics devices). They basically add a graphics layer to a GPU compute-style API, basing everything on lists of commands that start and end wherever the host code desires.
While Java has been taking a massive hit in public opinion lately, it is still a good platform for some applications. Gaming seems to having a resurgence of native APIs, especially with “AAA” engines becoming available to the general public, but more frameworks isn't a bad thing.
Subject: Graphics Cards | May 24, 2016 - 09:46 PM | Sebastian Peak
Tagged: vulkan, radeon, overwatch, graphics driver, Crimson Edition 16.5.3, crimson, amd
AMD has released new drivers for Overwatch (and more) with Radeon Software Crimson Edition 16.5.3.
"Radeon Software Crimson Edition is AMD's revolutionary new graphics software that delivers redesigned functionality, supercharged graphics performance, remarkable new features, and innovation that redefines the overall user experience. Every Radeon Software release strives to deliver new features, better performance and stability improvements."
AMD lists these highlights for Radeon Software Crimson Edition 16.5.3:
- Total War: Warhammer
- Dota 2 (with Vulkan API)
New AMD Crossfire profile available for:
- Total War: Warhammer
The driver is available from AMD from the following direct links:
- AMD Radeon Software Crimson Edition 16.5.3 Driver for Windows® 10, Windows 8.1 & Windows 7 64-bit
- AMD Radeon Software Crimson Edition 16.5.3 Driver for Windows® 10, Windows 8.1 & Windows 7 32-bit
The full release notes with fixed/known issues is available at the source link here.
Podcast #399 - GTX 1080 Launch, UWP Updates, DOOM Vulkan Patch, Kaby Lake Leaks, ASUS ROG STRIX X99, and more!
Subject: General Tech | May 12, 2016 - 04:28 PM | Allyn Malventano
Tagged: podcast, video, GTX 1080, galax, founders, uwp, doom, vulkan, kaby lake, EKWB, rog strix x99
PC Perspective Podcast #399 - 05/11/2016
Join us this week as we discuss the GTX 1080 Launch, UWP Updates, DOOM Vulkan Patch, Kaby Lake Leaks, ASUS ROG STRIX X99, and more!
The URL for the podcast is: http://pcper.com/podcast - Share with your friends!
- iTunes - Subscribe to the podcast directly through the Store (audio only)
- Google Play - Subscribe to our audio podcast directly through Google Play!
- RSS - Subscribe through your regular RSS reader (audio only)
- MP3 - Direct download link to the MP3 file
This episode of the PC Perspective Podcast is sponsored by Casper!
Hosts: Ryan Shrout, Jeremy Hellstrom, Josh Walrath, and Allyn Malventano
Program length: 1:03:21
Subject: General Tech | May 11, 2016 - 06:17 PM | Scott Michaud
Tagged: vulkan, doom, bethesda
Update: May 11th @ 6pm EDT
NVIDIA has released new footage, which is both higher quality and longer. It is still running on the Vulkan API, although the graphics card has been switched out to the Titan X. The game is running at 1080p, 120-degree FOV, with all settings at their maximum. The game was locked to 60 FPS, but that makes sense -- they wanted it to look good on video.
The video is embedded above. NVIDIA is also self-hosting their original capture (plus a blog post) if you want to see it without YouTube's recompression (or you don't want to stream from YouTube for other reasons).
Bethesda also has their own, new video, which is just above this.
We return to the original news post, below.
At the NVIDIA GeForce GTX 1080 event, which aligns with DreamHack Austin, id Software showed off DOOM running on Vulkan API. It will not make launch, which is this upcoming Friday, May 13th, but the game will be patched to support it “really, really shortly after launch”. Ryan was not there, but PC Gamer took video of the presentation and posted it to their YouTube.
Video Credit: PC Gamer
We don't know how performance compares with OpenGL, but the Vulkan numbers (running on the GTX 1080) are pretty impressive. After they uncapped the engine, the listed frame rate stayed above 120 FPS except in the most intense battles, at which point it had momentary drops to about 100-120 FPS. According to PC Gamer, because I didn't hear it explicitly mentioned in the video, this is all at 1080p.
That's... good... to say the least.
This also means a game that officially supports Vulkan will land at around the same time as DirectX 12. We have a few DirectX 12 titles but, while Ashes of the Singularity is a good example, Gears of War: Ultimate Edition was plagued with performance problems, and so was Quantum Break. Tomb Raider and Hitman have DirectX 12 support, too, but it doesn't signal a commanding lead for DirectX 12. It still depends upon the engines, especially Unreal Engine, CryEngine, Frostbite, and Unity, but it's another sign that Vulkan arrived on time.
DOOM Launches on Friday the 13th.