WEBVTT

00:00:00.240 --> 00:00:07.359
imagine a world where if you wanted to occasionally run small business errands

00:00:04.600 --> 00:00:12.679
in your car manufacturers could force you to buy their workg grade Vehicles

00:00:09.599 --> 00:00:14.960
you'd be pretty pissed off right well

00:00:12.679 --> 00:00:19.800
that's essentially what NVIDIA did GeForce users who wanted to pass their

00:00:17.320 --> 00:00:23.519
gpus through to a virtual machine were suddenly greeted with the infamous code

00:00:21.800 --> 00:00:28.439
43 error when they tried to install drivers and they've had to spend the

00:00:25.279 --> 00:00:31.720
last 7 years dealing with janky

00:00:28.439 --> 00:00:34.079
workarounds until to today NVIDIA seems

00:00:31.720 --> 00:00:40.920
to have finally decided that it is time to make amends so let's learn a bit more

00:00:37.120 --> 00:00:44.239
and see if maybe just maybe NVIDIA is

00:00:40.920 --> 00:00:44.239
turning over a new

00:00:50.840 --> 00:00:56.239
Leaf code 43 has been a huge deal in

00:00:54.000 --> 00:01:00.160
certain circles for a long time in no small part because of how ridiculous it

00:00:58.320 --> 00:01:06.680
is because there's no Tech techncal reason why like most PCI Express devices

00:01:03.879 --> 00:01:11.520
a GeForce card can't function just fine when passed through to a virtual machine

00:01:08.680 --> 00:01:17.119
like in our two Gamers one CPU project and there's definitely no reason why a

00:01:13.920 --> 00:01:19.080
Quadro which uses the exact same silicon

00:01:17.119 --> 00:01:23.640
and often the same board layout would do it any better and yet if the GeForce

00:01:22.000 --> 00:01:27.840
driver detected that it was running in a virtual environment it would effectively

00:01:25.439 --> 00:01:33.799
say to you what lenus tals famously said to NVIDIA so NVIDIA

00:01:31.600 --> 00:01:37.720
you to understand why any of this matters though we need to go back to the

00:01:35.439 --> 00:01:42.720
beginning virtualization has been common on desktop computers since as far back

00:01:39.799 --> 00:01:48.280
as the 9s when connectic virtual PC allowed Mac users to use Windows on

00:01:45.439 --> 00:01:52.479
their power PC based machines now back then everything had to be emulated so

00:01:50.399 --> 00:01:56.840
performance kind of sucked but as technology improved and especially as

00:01:54.840 --> 00:02:01.360
Hardware assisted virtualization support became common more and more of the host

00:01:59.159 --> 00:02:06.240
machines res resources became available with very little overhead to a guest

00:02:03.560 --> 00:02:12.000
operating system on a virtual machine or VM that includes the ability to assign a

00:02:09.360 --> 00:02:16.680
device entirely to the guest using a feature called pass through major

00:02:14.280 --> 00:02:21.280
players like VMware and Microsoft with hyperv have supported these features

00:02:18.599 --> 00:02:26.560
since very early on and while Hardware support for past through began in 2007

00:02:23.640 --> 00:02:31.280
with AMD's K10 family of CPUs in 2008 with Intel's wolfdale chipset and bio

00:02:29.440 --> 00:02:37.160
support from motherboard manufacturers was sporadic on both sides and it wasn't

00:02:34.200 --> 00:02:41.560
until AMD's 900 Series chipsets in 2012 and Intel's has well refresh in 2014

00:02:39.800 --> 00:02:47.920
that consumer Hardware started really handling it well AMD branded this

00:02:44.360 --> 00:02:49.920
feature AMD VII and Intel went with vtd

00:02:47.920 --> 00:02:53.040
but the technolog is more commonly called input output memory management

00:02:51.920 --> 00:02:58.519
unit ormu and it is incredibly important for

00:02:55.959 --> 00:03:03.560
virtual machines not only does IU allow pretty much any pce C device to be

00:03:00.959 --> 00:03:07.959
passed through to a VM it can be used to sandbox faulty or even malicious

00:03:06.480 --> 00:03:11.400
Hardware without worrying about compromising the rest of the system this

00:03:10.040 --> 00:03:17.040
makes it useful not only from a functionality standpoint but also for

00:03:13.440 --> 00:03:19.560
security oh and performance too while

00:03:17.040 --> 00:03:24.760
devices like network adapters and drive controllers could be emulated passing

00:03:22.360 --> 00:03:29.120
through a dedicated card could save that emulation overhead and allow a virtual

00:03:27.040 --> 00:03:35.040
machine to have IO performance that was nearly on car with a bare metal one Over

00:03:32.560 --> 00:03:39.599
time however this last Point has become less and less relevant thanks to the

00:03:36.920 --> 00:03:44.080
broad adoption of paravirtualization the ability for very fast virtual devices to

00:03:42.080 --> 00:03:48.599
communicate directly with the host without the need to emulate or pass a

00:03:46.120 --> 00:03:54.319
full device through one network card for example can service multiple VMS with

00:03:51.439 --> 00:03:59.239
very little overhead however one somewhat important piece of Hardware

00:03:56.159 --> 00:04:00.280
still has no viable par virtualization

00:03:59.239 --> 00:04:05.799
support the GPU and one group that heavily

00:04:03.120 --> 00:04:11.040
relied on GPU pass through back then was the Linux Community it let them daily

00:04:08.480 --> 00:04:16.959
drive Linux and game in a virtual Windows environment with like bare metal

00:04:13.799 --> 00:04:20.239
performance perfect that is until

00:04:16.959 --> 00:04:23.160
NVIDIA's 337 point88 driver release in

00:04:20.239 --> 00:04:26.199
May 2014 Just days before Intel announced the pass through friendly

00:04:24.560 --> 00:04:30.400
Haswell refresh this was one of NVIDIA's first

00:04:28.880 --> 00:04:34.560
major middle finger to the Linux community and it wouldn't be the last

00:04:32.759 --> 00:04:38.000
but get subscribed because NVIDIA's been doing a lot of things lately to try to

00:04:36.280 --> 00:04:43.080
make up for it and we've got some videos planned to talk about them the question

00:04:40.160 --> 00:04:48.320
though is why did they do this because whenever a newbie inevitably stumbled

00:04:45.199 --> 00:04:50.479
across code 43 their outrage was Swift

00:04:48.320 --> 00:04:55.400
and it was consistent because not only did it just hand a win to AMD who

00:04:52.960 --> 00:05:00.280
decided not to lock down radon it was just totally ridiculous I mean it's not

00:04:57.880 --> 00:05:05.039
like passing a GPU through to a VM unlock some super secret performance

00:05:03.240 --> 00:05:10.560
enhancement that would directly eat into NVIDIA's Quadro sales but apparently

00:05:08.280 --> 00:05:15.240
they thought differently or at least thought the collateral damage was low

00:05:12.160 --> 00:05:17.680
enough not to matter LTT Store.com by

00:05:15.240 --> 00:05:21.800
the way now at the time that bet probably looked pretty good because back

00:05:19.520 --> 00:05:26.720
when this policy was enacted ryzen was but a twinkle in Lisa Sue's eye and AMD

00:05:24.440 --> 00:05:31.160
was staring down bankruptcy quad core was as high as it went on the desktop

00:05:28.600 --> 00:05:35.639
and it would stay that way till 2017 so From NVIDIA's perspective realistically

00:05:33.759 --> 00:05:39.880
what gamer was going to sacrifice precious cores for this kind of use case

00:05:37.759 --> 00:05:45.319
when they had so few anyone passing through must be a professional user but

00:05:42.759 --> 00:05:50.479
then everything changed the overwhelming majority of new systems these days now

00:05:47.520 --> 00:05:54.240
have six cores or more and there are a growing number of people looking to

00:05:52.160 --> 00:05:57.960
legitimately take advantage of all that extra horsepower that goes woefully

00:05:56.520 --> 00:06:02.400
underutilized in even the most multi-threaded games takes someone like

00:06:00.000 --> 00:06:06.919
our camera guy David he wants his unraid NZ to give him high-speed storage for

00:06:04.560 --> 00:06:11.840
personal video projects act as a Plex Media Server and serve as a capture PC

00:06:09.759 --> 00:06:15.840
for his streaming rig with NVIDIA and bank doing the encoding using pass

00:06:13.800 --> 00:06:20.039
through of course or take someone like Anthony who has somehow managed to game

00:06:17.880 --> 00:06:26.479
on Linux every day at home since proton came out and yet still runs into games

00:06:23.240 --> 00:06:29.120
that straight up run only on Windows but

00:06:26.479 --> 00:06:33.440
hold on a minute lonus you might say those are projects that you guys did

00:06:31.039 --> 00:06:39.000
before this change so what's the difference okay there were workarounds

00:06:36.680 --> 00:06:43.599
to code 43 some of them were even pretty simple but NVIDIA's meddling caused no

00:06:41.800 --> 00:06:47.880
end of headaches for novices who were just as likely to abandon the idea

00:06:45.440 --> 00:06:51.639
entirely as to find a solution which sucks because it opens up a lot of

00:06:50.240 --> 00:06:56.440
possibilities and the hardware is freaking capable of it now though it's

00:06:54.440 --> 00:07:00.759
as simple as passing through your GPU and installing the driver as normal just

00:06:58.759 --> 00:07:05.240
like you would do on a D so let's say you're a Linux user like Anthony you can

00:07:03.000 --> 00:07:10.639
split your CPU and RAM up and then use an AMD GPU for its Superior Linux

00:07:08.120 --> 00:07:16.440
experience while using an NVIDIA GPU for an my opinion still Superior Windows

00:07:13.680 --> 00:07:20.520
gaming experience completely hack free got Xbox game pass and want to play

00:07:18.160 --> 00:07:25.160
Microsoft Store games you can do that want to play epic game store or EA

00:07:22.520 --> 00:07:30.160
Origin exclusives you can do that too want realtime Ray tracing and dlss go

00:07:27.560 --> 00:07:33.919
for it and this is really really cool with Looking Glass you don't even need

00:07:31.879 --> 00:07:37.800
to change the inputs on your display although it should be noted that at high

00:07:35.639 --> 00:07:42.160
resolutions and refresh rates you can run into PCI Express bottlenecks for our

00:07:40.319 --> 00:07:47.759
part though our ryzen 5000 series running PCI Express Gen 4 managed

00:07:44.879 --> 00:07:51.680
1440p 144 Herz despite only running eight Lanes to each of our gpus if

00:07:50.280 --> 00:07:57.319
you're okay Switching inputs to play your Windows exclusives though you don't need to worry about any of that because

00:07:54.680 --> 00:08:01.800
it's all Native there are some drawbacks to this approach however while you do

00:07:59.560 --> 00:08:05.800
get the full capabilities of the GPU including features like Shadow play and

00:08:03.639 --> 00:08:10.199
NVIDIA broadcast you might still run into problems with anti-che software

00:08:08.000 --> 00:08:14.440
engines like battle eye and easy anti-che are able to detect when a user

00:08:12.199 --> 00:08:18.800
is running in a virtual machine and the situation with cheating using virtual

00:08:16.639 --> 00:08:21.599
machines has unfortunately become bad enough that they've begun kicking

00:08:20.159 --> 00:08:27.560
players who are running them as a preventative measure this is because

00:08:24.039 --> 00:08:29.520
anti-che running inside a VM has no idea

00:08:27.560 --> 00:08:33.479
what the host operating system is doing doing and that host OS just happens to

00:08:31.919 --> 00:08:37.599
be able to manipulate the virtual machine's memory in ways that are

00:08:34.919 --> 00:08:42.560
undetectable by anti-che hence the ban on VMS they do say that users running in

00:08:40.159 --> 00:08:46.680
a VM won't be banned outright but there are reports of exactly that happening so

00:08:45.120 --> 00:08:51.160
just be careful if you decide to try playing fortnite or Rainbow Six Siege

00:08:49.440 --> 00:08:55.800
are there ways around these limitations probably but I'll leave that

00:08:54.080 --> 00:09:00.240
up to you to research on your own for now the bottom line is that NVIDIA is

00:08:58.040 --> 00:09:05.120
making changes to how they handle Linux and virtualization and many people

00:09:02.800 --> 00:09:08.880
myself included could not be happier about it I don't agree with everything

00:09:06.839 --> 00:09:14.120
they do but damn it you got to give credit where credit is due just like I

00:09:11.440 --> 00:09:19.079
give credit to our sponsors manscaped offers all-in-one Men's Grooming tools

00:09:16.200 --> 00:09:23.200
that have you covered from head to uh toe their perfect package 3.0 kit is

00:09:21.880 --> 00:09:28.959
designed to make grooming below the waist easier than ever with their lawnmower 3.0 plus some other goodies it

00:09:27.160 --> 00:09:33.399
includes both their crop preserver and crop revor sprays to keep things fresh

00:09:31.320 --> 00:09:36.560
down under and a portion of every purchase goes toward the testicular

00:09:34.959 --> 00:09:41.160
cancer society to spread awareness for men's health and early cancer detection

00:09:38.800 --> 00:09:45.000
so don't wait get 20% off manscaped with promo code Tech and join the fight

00:09:43.000 --> 00:09:48.640
against testicular cancer at the link below thanks for watching guys if you're

00:09:47.079 --> 00:09:53.079
looking for something a bit more data heavy maybe check out our recent video

00:09:50.440 --> 00:09:57.920
on NVIDIA's resizable bar implementation that video is all about them benchmarks

00:09:56.120 --> 00:10:01.240
because I'm all about them benchmarks without the benchmarks
