Will ANY GPUs work on the Raspberry Pi?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
i now have five video cards including this tiny little m.2 card and i'm trying to get one of them any of them really working on a raspberry pi ever since the compute module 4 came out with its pci express slot i've been on a mission to get every pci express device i can find working with the raspberry pi and i've had a lot of success except with graphics cards i did a whole video trying to get two low end cards working and seeing that video's popularity it looks like a lot of you are also interested in fact raspberry pi founder evan upton had this to say um but i'd like to see quake 3 running on a graphics card you know 4k quake 3 running honor running on a graphics card attached to a compute module he also mentioned some of the hurdles i ran into like limited bar space having a non-open-ended 1x slot on the pi and having to recompile the linux kernel many times to use the open source amd and nvidia drivers well since that time i've tried three more video cards including a sapphire radeon rx 550 an evga geforce gtx 750 ti and this little guy what's this puny little thing surely it can't be a graphics card well it is in fact while i was doing my testing on the pi this little unknown youtube channel linus tech tips went all easy mode and installed the thing into an intel powered pc with windows the land of magical actually working device drivers and hardware meanwhile i was just trying to get it to not freeze my pie during the boot process but even the hum list of graphics cards with just 16 megabytes of ram is just too much for the pi so far the system on a chip in the pi just isn't built to power a flexible massively expandable pc and it shows when you try running more complex cards like gpus with it the pi 4 only has one pci express gen 2 lane so it can only pump through 3.4 gigabits of data in real world use it also doesn't support all the features of the pci express standard which becomes painfully obvious with more complex cards like graphics cards i mentioned problems like a lack of bar space in my earlier video and i remember seeing this little fun fact pop up on the same youtube channel i mentioned earlier on a traditional system using previous gen ryzen or intel cpus lucky for us though that fact is actually incorrect soon after my first video pi kernel devs made a change that gives one gigabyte of bar space and it's actually expandable up to four or eight gigabytes following the instructions in adjust linked in the description that was one hurdle that was nice to have out of the way since that first video i also did more testing with various power supplies not only in external powered gpu risers like these but also with higher current power supplies on the i o board itself i used a 600 watt pc power supply then i managed to blow it up making a custom power jumper so then i used a 700 watt pc power supply and that still didn't make any difference power was definitely not the issue i was having in that earlier video but i do recommend you use at least a 5 amp 12 volt adapter for graphics cards like these i even bit the bullet and sliced into my precious pcie slot using a razor saw now i can plug 4x 8x or even 16x card straight into the i o board so i also know the 1x to 16x adapter i used isn't the problem either i already covered my experience with the g4710 and radeon 5450 so let me walk you through these three new cards starting with the geforce gtx 750 ti simon sauces sent me this card after seeing my last pie gpu video and wanted to know if it would fare any better it's a newer generation card than the 710 but it's still old enough that it shouldn't overshadow the pie well not too much when you plug it in you realize the thing is about 10 times larger than the compute module itself so first i tried installing nvidia's arm driver like i did for the 710 but i kept running into compilation issues so then i tried cross compiling the nuvo driver but it kept locking up on boot so i blacklisted the driver and tried enabling it manually while monitoring the d message output that did show some output but unfortunately the pi would always lock up when the card tried initializing also following many people's advice after that last video i tried running the card in three different powered risers instead of just plugging it into my pi via an adapter first i tried this one and it resulted in a kernel panic before the pie would even start booting i tried five different times with two power supplies before giving up then i tried this one and it also resulted in kernel panic so after three attempts i gave up on it finally i tried this one and it kernel panicked if i used the usb 3 cable it came with but if i swapped in the beefier usb 3 cable that came with the first board it actually started booting i should note that you have to be extremely careful with these risers they don't use any kind of standard for the usb connections so if you mix up this little pcie adapter you could fry your card like i did with this ethernet adapter so i ruled out power as the issue even with a beefy external power supply the nuvo driver would completely lock up the system when it tried reading memory mapped i o values i went as far as trying to get a dump of the linux kernel output directly to my mac using a usb to uart adapter like i did for the hardware raid testing i did earlier this year and i got that working but all the clues i found led to dead ends and unrelated issues maybe it could work but it looks like there are issues with the way the pi assigns memory locations that the driver just can't work with in its current state so next up was the radeon rx 550 i chose this card because youtube user djhg2000 noted it's a newer generation than the 5450 i tested before because of that it uses the newer open source amd gpu driver instead of the old and less maintained radeon driver i used the external riser again to make sure it had enough power and i recompiled the raspberry pi kernel with the amd gpu kernel module i also installed the firmware amd graphics package to make sure the card's firmware was present and when i rebooted can you guess what happened yet again total system lockup i feel like a broken record at this point i started debugging and found every time it locked up it was after the message chained ib support enabled and so first i confirmed it wasn't a bar space issue in fact the amd gpu driver has a fallback to 256 megabytes of bar space if the system doesn't have enough memory space to allocate a larger bar size so i guess nice work fighting for the little guys amd around this time github user elfardo started helping me debug the card we first tried giving even more bar space up to eight gigs and were successful doing that but it didn't prevent the driver from locking up the pie alfardo then suggested i start putting printf messages into the kernel when i compile it so i can see exactly where the problem occurs so i did that and put lines like print k kern info here all over the kernel source code for the driver and compiled and recompiled the driver to narrow down what line was causing the issue but we still ran into the problem of the pi locking up before it could flush out all the messages so i had to add a little delay to each of those statements using m delay after each of the print messages this got us to the first hurdle a call to the memset function i had to make a small change to that function and the module actually got further along this was encouraging when you kept debugging until we wound up hitting another wall somewhere around a function called amd gpu ring init at this point elfarda went out of his way and did a great job writing up a detailed guide on remote kernel debugging and i tried getting it working but was not having much luck it was the end of 2020 and i had to focus on some other priorities in life like my new baby girl so for now that card's on hold too and besides around that time i also got this little guy in the mill from asrock rack this m2 vga is one of the strangest little graphics cards i've ever seen when i first heard about it i was excited about getting it working on the pie though for a few different reasons the card only sips about 2 watts of power so i shouldn't have any issues at all powering the card it also uses the silicon motion sm 750 graphics chip which isn't a powerhouse but what it does have is an experimental driver in the linux kernel and it only has 16 megabytes yeah that's right megabytes not gigabytes of video ram so no worries at all about bar allocations even on old pi kernels what would a card like this be useful for though well silicon motion says it's useful for servers medical devices and even gaming machines it's listed on silicon motion's website as being for gaming machines but then it's got no dedicated 3d engine so i'm looking at this thing going like what are you no not pc gaming machines linus don't be silly it's meant for arcade level 2d rendering like on gaming machines at a casino and this card uses so little power it doesn't even need a heatsink that's a huge difference from the giant coolers they stick on fancy modern graphics cards that you can't even buy anyways enough about the card itself i plugged it into the pie and i was happy to see the card was visible to the pi and got bar space allocated at boot but that's where this happy story turned south i should have known after reading a pharonix article about the sad state of the sm-750 driver that getting the driver to load on the raspberry pi wouldn't be very easy it's also a little alarming that the silicon motion driver is still inside the staging driver section of the linux kernel after nearly a decade i figured i'd give it a go anyway so i recompiled the kernel with the driver copied the kernel to the pi rebooted and got a frozen cursor as with all the other cards at a certain point during the graphics card initialization the entire system freezes completely no input no output only cycling power gets things back up and running again i even tried another copy of the driver maintained outside the linux source and had no success there even after trying it with multiple kernels and then i even went so far as to email all the authors of the linux patches for the kernel and got a bunch of bounced emails as a last-ditch effort i tried reaching out on linkedin to one of the patch authors and got a response but it didn't get me any further along so i finally emailed asrock directly and they were like yeah so the card we sent is meant for servers and they're mostly intel or amd based so if you use it on a different platform we can't support that so i'm not being ungrateful and this card is great for what it is but it just seems like it's not going to be very fun trying to get it working with the raspberry pi what is fun though is comparing the size of this thing to the size of the other gpus just look at how tiny it is now after unsuccessfully debugging five cards in a row am i a little discouraged yeah but there's always hope github user core forge also has a radeon 5450 and he spent even more time debugging it than i did he followed the memory mappings in the driver to the point where he was able to get random noise then after some more debugging a blinking cursor split up among many lines of random noise and you may look at that and think that's not much but having anything and all come out is pretty good and getting something from linux's frame buffer to end up as photons coming out of a display means it can be done but the difficult question remains how much more work is it and who's going to do that work i'm hitting the limit of my own kernel and driver abilities i do want to keep pushing but i don't know if open source graphics driver developer is something i really feel like i'd excel at so i pose this question to you do you know anyone that might be able to help all the work i've done so far as well as coreforge's work has been documented on github in the pi pci express card project and there are links to that in the description if you or someone you know might be able to assist please let us know and look at those issues and heck i figure it's a long shot but do you work for amd or nvidia it would be really cool to be able to get a full external gpu working on a raspberry pi and despite what people may think there are actual use cases for it maybe not an rx xt or an rtx 3080 but heck maybe even one of those cards could find a home with a raspberry pi someday if we can figure out the driver support anyways i'll still be debugging these things till the end of time and until then i'm jeff gearling recording is on okay he also mentioned some of the hurdles i ran to and i ran to those hurdles and smashed right into him there is a piece of dust that keeps going right in front of my eyes it is so annoying it's an insurrection of drivers in the linux kernel asrock i was unsuccessful that'd be awesome if i was successful all the other oh stop texting me it looks like a lot of you are crap
Info
Channel: Jeff Geerling
Views: 373,703
Rating: undefined out of 5
Keywords: raspberry pi, gpu, graphics card, nvidia, amd, radeon, gtx, rtx, gt, 750 ti, rx 550, m2_vga, asrock rack, asus, sapphire, evga, riser, bitcoin, mining, ai, ml, cuda, processing, ethereum, crypto, miners, video card, vga, dvi, hdmi, output, power, pci, pcie, pci express, drivers, kernel, recompile, sm750, linux, development, arm, arm64, aarch64, gaming, Bitcoin, Mining, games, emulation, station, eta prime
Id: MxcafwjWw24
Channel Id: undefined
Length: 13min 6sec (786 seconds)
Published: Fri Apr 23 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.