- GPU scheduling, there's really no way to avoid
that this is a very boring sounding topic,
but as fans of AMD 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've kept Microsoft
from implementing it for so long.
But before that, gotcha, segue 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.
(electronic music)
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 course,
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 Aero UI, this had to be dealt with.
So Microsoft created the WDDM software scheduler,
where the CPU could buffer the GPUs 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.
But 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 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 10 ADP 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 low 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 CS:GO,
that performance got widened 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
the 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 Mac stout 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-rise hardware GPU scheduling,
leaving our Ryzen 3 in a relatively good position,
but hamstringing our 16-core chip.
Finally, CS:GO doesn't seem to care much
what handles the scheduling on Nvidia, this resolution,
which may be down to it's 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 the same measurable,
if slight performance bump across the board,
and CS:GO 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 schedulers 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 gonna 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, AMDs 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 WiFi,
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 phones compatibility
@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 sciencey video
on stacking radiators, where we answered once and for all
just how many radiators you can run in a row
before you stopped getting any cooling benefit from it.