 GPU scheduling. There's really no way to avoid that this is a very boring sounding topic. But as fans of AMD's Ryzen processors know, scheduling can make a huge difference to how a computer performs. And the scheduler that we use for our graphics cards has been around since... Windows Vista? It's a total dinosaur! That is why today's topic is such a big deal. We're gonna look at the performance impact of Windows 10's shiny new hardware accelerated GPU scheduler, and discuss the... gotchas that might have kept Microsoft from implementing it for so long. But before that, gotcha! Segway time! Ting wants to help you save money by getting you to pay for only the mobile data you use. Check it out at the link below to find out more. At least a few of you are probably scratching your heads right now going, what the heck is a scheduler anyway? In short, whenever your computer does some work, it needs to know when and for how long it should crunch those numbers in order to make sure that it doesn't end up doing either too much work, potentially resulting in a system freeze, or too little resulting in low performance. For modern desktop CPUs with many processing cores, it's easy to understand why this is so important for performance. Not only do you need to make sure that the workloads are balanced and not all just piled onto a single core, you also need to be aware of things like the layouts of the cores, because there can be significant performance penalties for splitting a task up one way versus splitting it up another way. And we've seen this in the real world. Much of Windows multi-core scheduling until recently was geared towards hyper-threading and at most a dual or quad-core CPU. But then along came AMD Ryzen and wrecked all that, and performance wasn't great at first, especially with early days Threadripper. But as the scheduler improved and became more aware of how to best utilize these extra resources, performance improved as well. Back to graphics cards now. In the early days, you'd have the CPU just load the GPU up with commands without worrying about scheduling at all. I mean, you were only running one GPU-driven application at a time anyway, like a game, so it didn't really matter. Now this was fast, but it limited flexibility. Remember guys, all tabbing between multiple games or running games in a window? That wasn't really a thing, and when it came time to accelerate the desktop, like in Windows Vista's Arrow UI, this had to be dealt with. So Microsoft created the WDDM software scheduler, where the CPU could buffer the GPU's commands a frame ahead while the GPU was busy working on the current frame. This was still fast, but developers had to make a choice. They could either submit short bursts of commands to minimize latency or they could send large command groups to minimize performance overhead. There wasn't any way of completely removing either trade-off with a CPU-based scheduler like we've been using. And that doesn't consider multi-GPU setups at all. Actually, speaking of which, make sure you get subscribed because we got our hands on a really cool multi-GPU card from 2003, and you're not gonna want to miss it. Anyway, that all changes with the Windows 10 May 2020 update. Now we've got hardware accelerated GPU scheduling in Windows, which basically means that Windows tells the GPU what tasks are the highest priority on like a high level, but the GPU manages its own resource allocation between those workloads to get the best of both worlds, lower latency and higher overall throughput. So then why isn't it the default? As with all things, we need to dig in and figure that out for ourselves. So we grabbed a Ryzen 3 3100 to test a low thread count CPU, a Ryzen 9 3950X to test a high thread count CPU, a GeForce RTX 2080 Ti to test a high-end NVIDIA GPU, and a Radeon RX 5700 XT to test a high-end AMD GPU. In theory, this covers all our bases since it's ultimately gonna be the CPU that's gonna be the bottleneck here, right? Let's start with the NVIDIA graphics card. At 1080p with low settings, we're stressing the CPU more than the GPU, and in most of the games we tried, hardware accelerated GPU scheduling actually doesn't seem to work out all that well for us. We're typically looking at roughly the same or slightly faster or slightly slower performance depending on the game. That's in spite of the theoretical advantages that we should be seeing here. Now as frame rates get higher, as in Doom Eternal and CSGO, that performance gap widens significantly with as much as 13% performance lost in our minimum frame rates. So it seems that despite being CPU bound in this scenario, offloading the GPU scheduling from the CPU isn't really helping, at least not with these early drivers. Our Radeon 5700 XT did have a better go of things, particularly in combination with the Ryzen 3, where we got mostly normal frame rates pretty much across the board, with the exception of Red Dead Redemption and Doom Eternal with our Ryzen 9. This is probably because the Ryzen 9 has enough cores to handle the scheduling normally, but these games, which are uniquely both running the lower level Vulkan API, are developed with software scheduling in mind and aren't taking advantage of the extra slack. Still, we're not exactly being blown away here with the Ryzen 3 either, and it's tough to firmly recommend turning hardware GPU scheduling on for gaming anyway, based on this scenario alone. Now it's time to kick things into high gear by running our games at 4K with maxed out settings, a GPU bound scenario. Here, Nvidia sees a reasonable improvement in performance in Shadow of the Tomb Raider and in Red Dead Redemption 2, with minimum frame rates shooting up by 15 to 20% on both of our CPUs. That's not too shabby. Doom Eternal, though, is our first major stumbling block for high-res hardware GPU scheduling, leaving our Ryzen 3 in a relatively good position, but hamstringing our 16-core chip. Finally, CSGO doesn't seem to care much what handles the scheduling on Nvidia at this resolution, which may be down to its older, comparatively primitive engine. As for AMD, there's not much movement at 4K, which might be expected due to the low frame rates that we can expect out of a 5700 XT at that resolution. Both Shadow of the Tomb Raider and Red Dead Redemption 2 are essentially unchanged over the traditional scheduler, with the averages being a bit lower and higher for the quad-core and 16-core, respectively. Doom Eternal shows us a measurable, if slight, performance bump across the board, and CSGO seems to not really like hardware GPU scheduling with a multi-CCD CPU, like our 3950X, dropping a good 5% in performance, compared to when we ran it with the traditional scheduler. In productivity, both of our CPUs and both of our GPUs saw anywhere from slight to notable performance improvements, though, with the Blender BMW test getting more out of hardware GPU scheduling with AMD's OpenCL implementation versus Nvidia's CUDA. Conversely, V-Ray, which only ran on Nvidia hardware, shows a tangible improvement, which gives us some level of confidence that hardware GPU scheduling should be a boon to productivity-minded folk going forward. Overall, it looks as though our Ryzen 3 3100 averages around the same performance as with traditional GPU scheduling, with modest performance gains, and less of a loss than the 3950X, which in turn gets a bit of a rougher deal on its overall average, but gets a slightly better average gain in performance, where it did improve. If we break it down by the number of times the test ran above 99% of the traditional scheduler's performance, we're seeing more of the Ryzen 3's better gain-to-loss ratio, and overall a much better result out of the AMD card compared to the Nvidia one, giving both of our Ryzen CPUs a performance bump in two-thirds to three-quarters of the tests we ran today. Which brings us back to our earlier question. Why isn't it the default? Well, as the data shows, it's still very much in the early stages, and it isn't quite mature yet. For some hardware, there's going to be an improvement in performance, but perhaps not in every scenario, and not necessarily by a whole lot either. In others, you might straight up lose performance in more cases than you'll gain it. That's not a good look for an operating system team that gets absolutely crucified on social media every time an update goes awry. So, I see why they did it this way. But that's not to say that it has no future. As the drivers mature, AMD's, for example, is actually in beta right now, and as Microsoft receives more feedback into how it works with each workload and hardware combination, and this is crucial, as developers rethink how they should hook into the scheduler, we should first start to see no performance loss at all, and eventually a consistent performance gain from this new scheduling method. It's already looking promising and true to our video title, if you play a game that benefits from it on hardware that handles it well, you could be enjoying noticeably better performance today. Ting does mobile phone service differently. There's no contracts, no overage fees, no carrier tricks. You just pay a fair price for the talk, text, and data that you actually use each month. It's especially great if you're stuck at home using Wi-Fi instead of using your mobile data. Ting gives you complete control over your cell phone account, and you can set alerts and caps for each device on your account, so you can keep your usage in check. They offer nationwide LTE coverage by using T-Mobile, Sprint, and Verizon's networks, which means you'll have great coverage from coast to coast. Almost any phone will work with Ting, from an ancient Motorola Razr sitting in your basement to the latest iPhone 11 series, and you can check your phone's compatibility at linus.ting.com, and while you're there, get $50 in credit when you sign up. Thanks for watching, guys. If you're looking for something else to watch, maybe check out our recent sciency video on stacking radiators, where we answered once and for all just how many radiators you can run in a row before you stop getting any cooling benefit from it.