- Imagine a world where if you wanted to occasionally
run small business errands in your car,
manufacturers could force you
to buy their work grade vehicles.
You'd be pretty pissed off, right?
Well, that's essentially what Nvidia did.
GeForce users who wanted to pass their GPUs through
to a Virtual Machine were suddenly greeted
with the infamous Code 43 error
when they tried to install drivers.
And they've had to spend the last seven years
dealing with janky workarounds, until today.
Nvidia seems to have finally decided
that it is time to make amends.
So let's learn a bit more and see if maybe,
just maybe, Nvidia is turning over a new leaf.
What I'll never turn over is my segues
to sponsors like Honey.
Honey is the free to use shopping tool that helps search
for some of the best promo codes
at lots of your favorite sites.
Get it today.
Join honey.com/ltt.
(upbeat music)
Code 43 has been a huge deal in certain circles
for a long time,
in no small part because of how ridiculous it is,
because there's no technical reason why
like most PCI Express devices,
a GeForce card can't function just fine
when passed through to a Virtual Machine,
like in our 2 Gamers, 1 CPU project.
And there's definitely no reason why a Quadro
which uses the exact same silicon
and often the same board layout would do it any better.
And yet if the GeForce driver detected
that it was running in a virtual environment,
it would effectively say to you,
what Linus Torvalds famously said to Nvidia.
- So, Nvidia, you.
- To understand why any of this matters though
we need to go back to the beginning.
Virtualization has been common on desktop computers
since as far back as the nineties,
when Connectix Virtual PC allowed Mac users
to use Windows on their PowerPC based machines.
Now back then everything had to be emulated,
so performance kind of sucked.
But as technology improved
and especially as hardware-assisted virtualization support
became common, more and more of the host machines resources
became available with very little overhead
to a guest operating system on a Virtual Machine or VM.
That includes the ability to assign a device
entirely to the guest using a feature called passthrough.
Major players like VMware and Microsoft with Hyper-V
have supported these features since very early on.
And while hardware support for passthrough began in 2007
with AMD's K10 family of CPU's,
in 2008 with Intel's Wolfdale, Chipset
and BIOS support from motherboard manufacturers
was sporadic on both sides.
And it wasn't until AMD's 900 series chipsets in 2012,
and Intel's Haswell Refresh in 2014,
that consumer hardware started really handling it.
Well, AMD branded this feature AMD-Vi
and Intel went with VT-d,
but the technology is more commonly called
input-output memory management unit or IOMMU.
And it is incredibly important for Virtual Machines.
Not only does IOMMU allow pretty much any PCI device
to be passed through to a VM,
it can be used to sandbox faulty or even malicious hardware
without worrying about compromising the rest of the system.
This makes it useful,
not only from a functionality standpoint,
but also for security.
Oh, and performance too.
While devices like network adapters and drive controllers
could be emulated,
passing through a dedicated card,
could save that emulation overhead
and allow a Virtual Machine to have IO performance
that was nearly on par with a bare metal one.
Over time, however, this last point
has become less and less relevant.
Thanks to the broad adoption of paravirtualization.
The ability for very fast virtual devices
to communicate directly with the host
without the need to emulate
or pass a full device through.
One network card for example, can service multiple VMs
with very little overhead.
However, one somewhat important piece of hardware still
has no viable pair of virtualization support.
The GPU.
And one group that heavily relied
on GPU passthrough back then, was the Linux community.
It let them daily drive Linux
and game in a virtual Windows environment
with like bare metal performance.
Perfect.
That is until Nvidia's 337.88 driver release
in May, 2014, just days before Intel announced
the pass through friendly Haswell Refresh.
This was one of Nvidia's first major middle fingers
to the Linux community, and it wouldn't be the last.
But get subscribed because Nvidia has been doing
a lot of things lately to try to make up for it
and we've got some videos planned to talk about them.
The question though is why did they do this?
Because whenever a newbie
inevitably stumbled across Code 43,
their outrage was swift and it was consistent,
because not only did it just hand a win to AMD
who decided not to laugh down Radeon,
it was just totally ridiculous.
I mean, it's not like passing a GPU through to a VM,
unlock some super secret performance enhancement
that would directly eat into Nvidia's Quadro sales,
but apparently they thought differently,
or at least thought the collateral damage
was low enough not to matter.
Lttstore.com by the way.
Now at the time, that bet probably looked pretty good
because back when this policy was enacted
Ryzen was but a twinkle in Lisa Su's eye
and AMD was staring down bankruptcy.
Quad-Core was as high as it went on the desktop
and it would stay that way till 2017,
so from Nvidia's perspective, realistically,
what gamer was gonna sacrifice precious course
for this kind of use case when they had so few?
Anyone passing through must be a professional user.
But then everything changed.
The overwhelming majority of new systems these days
now have six cores or more
and there are a growing number of people
looking to legitimately take advantage
of all that extra horsepower
that goes woefully under utilized,
and even the most multi-threaded games.
Take someone like our camera guy, David.
He wants his Android NAS to give him high-speed storage
for personal video projects, act as a Plex media server,
and serve as a capture PC for his streaming rig
with Nvidia NVENC doing the encoding,
using passthrough of course.
Or take someone like Anthony
who has somehow managed to game on Linux everyday at home
since Proton came out, and yet still runs into games
that straight up run only on Windows.
But hold on a minute Linus, you might say,
"Those are projects that you guys did before this change.
"So what's the difference?"
Okay, there were work arounds to Code 43.
Some of them are even pretty simple
but Nvidia's meddling caused no end of headaches for novices
who were just as likely to abandon the idea entirely
as to find a solution which sucks
because it opens up a lot of possibilities
and the hardware's freaking capable of it.
Now though, it's as simple as passing through your GPU
and installing the driver as normal,
just like you would do on AMD.
So let's say you're a Linux user like Anthony.
You can split your CPU and RAM up and then use an AMD GPU
for its superior Linux experience,
while using an Nvidia GPU for, in my opinion still,
superior Windows gaming experience, completely hack free.
Got Xbox Game Pass, I'm gonna play Microsoft store games?
You can do that.
Wanna play Epic Games Store or EA Origin exclusives?
You can do that too.
Want real-time ray tracing and DLSS?
Go for it.
And this is really cool.
With Looking Glass,
you don't even need to change the inputs on your display
although it should be noted
that at high resolutions and refresh rates,
you can run into PCI-Express bottlenecks.
For our part though our Ryzen 5000 Series
running PCI-Express Gen 4 managed 1440P, 144 Hertz
despite only running eight lanes to each of our GPU's.
If you're okay switching inputs
to play your Windows exclusives though,
you don't need to worry about any of that
because it's all native.
There are some drawbacks to this approach however.
While you do get the full capabilities of the GPU
including features like shadowplay and Nvidia Broadcast,
you might still run into problems
with anti-cheat software.
Engines like BattlEye and Easy Anti-Cheat
are able to detect when a user
is running in a Virtual Machine.
And the situation with cheating using Virtual Machines
has unfortunately become bad enough
that they've begun kicking players who are running them
as a preventative measure.
This is because anti-cheat running inside a VM
has no idea what the host operating system is doing.
And that host OS just happens to be able
to manipulate the Virtual Machines memory
in ways that are undetectable by anti-cheat
hence the ban on VMs.
They do say that users running in a VM
will be banned outright,
but there are reports of exactly that happening.
So just be careful if you decide to try playing Fortnite
or Rainbow Six Siege.
Are there ways around these limitations?
Probably, but I'll leave that up to you
to research on your own.
For now, the bottom line is that Nvidia is making changes
to how they handle Linux and virtualization,
and many people myself included
could not be happier about it.
I don't agree with everything they do,
but damn it, you gotta give credit where credit is due.
Just like I give credit to our sponsors.
Manscaped offers all-in-one men's grooming tools
that have you covered from head to toe.
Their perfect package 3.0 kit is designed
to make grooming below the waist easier than ever
with their Lawn Mower 3.0, plus some other goodies.
It includes both their Crop Preserver
and Crop Reviver sprays to keep things fresh down under
and a portion of every purchase
goes toward the Testicular Cancer Society
to spread awareness for men's health
and early cancer detection.
So don't wait.
Get 20% off Manscaped with promo code TECH
and join the fight against testicular cancer
at the link below.
Thanks for watching guys.
If you're looking for something a bit more data-heavy
maybe check out our recent video
on Nvidia's Resizable BAR implementation.
That video is all about them benchmarks.
♪ Because I'm all about the benchmarks ♪
♪ About the benchmarks ♪