It took me TWO YEARS to get this working! (GPU on Pi)
Вставка
- Опубліковано 31 тра 2024
- After TWO YEARS it finally works! Video output through multiple GPUs on the Raspberry Pi. Well... sorta. Check out what we have working in the video-and what's yet to be discovered.
Special thanks to EVERYONE who's worked so hard on this over the past couple years, especially those in the GitHub issues. See links below if you want to dive deeper into the Pi external GPU rabbit hole!
Support me on Patreon: / geerlingguy
Sponsor me on GitHub: github.com/sponsors/geerlingguy
Merch: redshirtjeff.com
#RaspberryPi #GPU #AMD
More info:
- Raspberry Pi PCIe Device Database: pipci.jeffgeerling.com
- Blog post with more detail: www.jeffgeerling.com/blog/202...
Graphics cards used in this video:
- ASRock Rack M2_VGA (SM750): pipci.jeffgeerling.com/cards_...
- VisionTek AMD Radeon 5450 1GB: pipci.jeffgeerling.com/cards_...
- Dell AMD Radeon HD7470 1GB: TODO
- AMD Radeon RX 6700 XT: pipci.jeffgeerling.com/cards_...
Adapters and equipment used in this video (some are affiliate links):
- PCIe x1 to x16 adapter: amzn.to/3MvRQLA
- Razor Saw blades: amzn.to/3LrgywA
- BC1 Mini ITX bench table: amzn.to/37JqEtX
- Seaberry Pi: pipci.jeffgeerling.com/boards...
- Coolerguys AC to Molex 2A power adapter: amzn.to/3KinmuW
Contents:
00:00 - Persistence pays off
01:21 - M2_VGA works!
01:57 - AMD Radeon cards
02:46 - GUIs work!
03:34 - 3D Benchmarks... kinda work!
04:13 - Memory woes
05:45 - Can it run Crysis?
07:01 - Will other ARM SoCs work better?
08:05 - What about Windows?
08:16 - And that RX 6700 XT?
08:35 - To boldly go. - Наука та технологія
That's pretty sweet. Next step is to have GPU manufacturers ship a GPU with a CM4 built into it 😁
CM4 on an RX6400?
Compatibility layer? 👀
Didnt nvidia already do something like that?
@@woutererades933 Kind of, there is development boards like the Jetson Nano and Jetson Xavier, which run ARM CPUs and have CUDA cores working.
Good luck getting your hands on one right now. They were $99 at launch and now are on eBay for $400. 🤦♂️
Thank you for contributing to open source community!
The process you're showing is part of why we have free things like Blender and Linux. People dedicate their time to making something work for the rest of us
In arms case, this is particularly exciting because this may one day lead to a desktop pc platform alternative to the red and blue giants.
Arm is cool and all, but if we are aiming for desktop pc platform alternative, then I would like RISC-V to achieve that goal than arm, since risc-v is completely open source, whereas arm is proprietary, and if the pi4 had a RISC-V chip instead of an arm one, then I am sure someone would have already made the high end GPU drivers work with the pi CPU at this point
@@STORMFIRE07 Agreed! Risc-V is exciting development.
More so, they are modern day Wizards. See these people are techno wizards. I code and mess with hardware. But this is that technopath stuff for me.
@@STORMFIRE07 (well, RISC-V says nothing about PCIe having to be standard-compliant, and you can extend RISC-V with proprietary extensions, as vendors like Esperanto and SiFive do, but it would still be neat)
Your work on the Pi-GPU are the stuff of legends Jeff.
That was one heck of a wild ride to get a GPU working. Thanks for your contribution to the Pi community!
seems like a useful tool here would be an open-source PCIe "card" that's actually a SBC on it's own, and acts to test what PCIe features are working properly for whatever CPU they're talking to. then you could more rapidly rule out any given SBC platform without having to dig into driver dev
Sounds like a pi cm4 application to me
@@the_retag ah, another computational application of the 'spidermen pointing at eachother' meme.
famitory i love ur music good to see u here
So basically a board with an FPGA programmed with a PCIe IP core wired for up to x16 to talk to the Device Under Test, some RAM to act as a scratch space, a means to reset the Device Under Test and either a soft or hard SOC to execute tests through that FPGA fast enough to satisfy the PCIe link?
Probably with the SOC able to write to the FPGA gate definition/configuration memory or just plain booting the FPGA from the SOC; meaning the development of the test hardware becomes less of a nightmare.
And then on that a boatload of tests designed to validate spec compliance, edge cases, quirks, and do fuzzing/fault-injection in otherwise normal test cycles.
Limiting scope to pass/fail validation of specific PCIe features with no need to diagnose and correct after that might make it manageable for someone who knew what they are doing?
Maybe one day, due to your pioneering exploration, we'll get to see the truly epic sight of a Pi 5(or 6, 7 etc.) model B with a triple slot RTX 3090 sticking out of the top... or more likely watch it fall over. Still be pretty fun.
In that case, you would mount the Pi to the graphics card, and not the reverse :D
Now the Pi foundation is making their own custom designs, hopefully they'll consider designing a high-end chip for ARM. If they put enough behind it, I can easily see Pi's becoming the new standard for desktop ARM.
@@amirpourghoureiyan1637 that is too cool to ever happen
@@riccardo1796 At this point with open RISC desktops, it's either them or SiFive. If they hit a wall with ARM, we might even see the Pi foundation build upon their RISC-V investment and make new Pi's with RISC-V
@@amirpourghoureiyan1637 I would love for them to go for RISC-V if they are thinking of making their own CPU for the pi5, since arm is proprietary whereas RISC-V is open source
Kudos for the hard work and sticking with it. I would have given up when it became obvious the problems were in the underlying PCIe implementations and controllers.
Persistence, patience, perseverance.
Based on what you say, Minecraft might be the first game to test, because it uses OpenGL and Java. I don't know about OpenGL, but Java is definitely supported on Arm.
Definitely! In fact, Coreforge has been testing Minecraft in various scenarios this week, and I just shipped him an upgraded 8GB CM4 so he can do some extra testing with more RAM than he had available in the past.
Testing with actual applications is helpful because we can also find some architectural flaws in the way we patch things, so in the end it gets even more stable.
You can also go back to really old versions as well. For instance, Beta 1.7.3 ran decently on 500Mhz PPC with a 128MB Radeon card.
With optifine or sodium/phosphor you can already run Minecraft Java at a playable 15-25 fps, but what's more intriguing is that Bedrock under Android performs about the same! I can't imagine that getting those Linux patches into the Android Linux kernel would be the most productive use of anyone's time, but it would be pretty legendary to see a Raspberry Pi playing with "RTX On."
Weren't there OpenGL drivers being worked on for the Pi4?
@@comicsansgreenkirby Minecraft already works on the Pi 4 but not with a dedicated GPU
Jeff, i have watched you since at least you began the gpu adventure... it doesnt seem like it's been two years, but, hey, i guess it has been.
I've been trying to keep up with yours, as well as a couple other pi-related youtube channels' stuff and what you're all up to, but it's hard - you and the others tend to move on to new projects and things faster than i can duplicate or even comprehend them sometimes!!!
I like to explore each little bit of it on my own, and can get distracted going (seemingly) 'where no man has gone before' all on my own. ; - )
-
I've found doing things yourself is the BEST way to learn things you dont know...
good work, jeff. nice stuff. keep it up
The epitome of a good hack, technically challenging and increases your understanding of low level things but mostly useless outside of the learning experience and bragging rights.
It's just the beginning, Jeff.
You guys made the first step in what could turn the RPi platform in a reliable desktop platform for everyone in the future.
Personally I'd say its already there, at least for most people - I know I only really turn my main PC on occasionally, mostly for modern gaming (and to run the backups - as its got all the big HDD) now - a Pi4/CM4 perhaps with a bit of overclock and cooling can easily handle running multiple VM's, FreeCAD (at least up to reasonably complex model), web browsing, video playback etc, and in many cases isn't any slower doing so than a modern AMD/Intel monster with giant GPU consuming 3-4x the wattage at idle that the Pi maxes out at, We fleshbags are often the bottle neck, and data access speeds can be to - but the Pi isn't a slouch there, via USB3 or the PCIe its able to go about as fast as most common drives. There are of course folks doing more computationally heavy tasks for which the arm/vidcore combo are either not able to use acceleration features to make it smooth and nice (yet) or just not up to doing the task in a timely fashion - like Jeffs many many kernel recompiles would be far better done on something else, but most folks computing needs are well in range of a Pi4.
I do agree though this work really could make it a more attractive proposition for some.
The best part is that there is someone out there named El Farto, and you said their name in your video. Simple things make my day.
Opportunity: Change your name to DonnFarto!
Finally! Loaded the video as soon as it popped up in my notifications. Kudos to you and all the community members that got together to bring this so far.
Such awesome work! The amount of patience and persistence required to get this working is amazing, well done!
I saw your comments and pictures on github a week ago or so on this topic, nice to be able to be part of your journey
You and the community are insane!! I have been following this for 2 years and I hope that it continues grow and we see more standards come out and be followed by all developers.
Great to see you finally got it working!
Great to see you here :D
I enjoyed that he said your username in the video :)
came here to find you
Great super job and we ill be standing by for the next big break thru thanks jeff
amazing, this is such an awesome project. glad to see you make progress cracking a very hard problem.
Thank you Jeff and everyone working on this project. The information is very helpful.
This is a massive achievement, congratulations!! I remember the first time you worked on getting a Graphics Card working on the Pi and you’ve made some incredible progress since then. Hope you continue to explore this!!
Congrats. I have been following your trials.
super well done bud. love your work man.
Woohoo! The madlad did it - video out over PCIe on a GPU :D
Been watching for quite a while and sometimes looked at your repos to see what was going on in that project. I am quite happy to see this progress!
It also is - at least in my opinion - a shining example for why it's a great thing to have open-source GPU drivers. :)
Nice work. Definitely will try this out myself when I get one of these boards for myself.
Thats awesome to see it working!!. I just got a shirt.. IT was dns! I totally had a dns issue the other day and needed your shirt because of it heh. Thanks for doing what you do Jeff!
I've been watching, I've been excited, I'm thrilled with you, I can't but wait for the future of this.
I first saw this video when waiting around at school on my break period. Thank you good sir for your epic efforts.
Seeing this video brings me great calm. Like that first bite of my favourite meal after having to prepare it for 2 years.
(Wonder if I'll ever get to see Half-Life 2 running on a Pi with a dedicated GPU; some madman got it running on the Pi 4's VideoCore GPU. Well, running. But that's about it)
Mind blowing!
Reminds me of long gone by years, where DVB cards where new and we had to confront ourselves with kernel driver programming.
Thank you for the great work, your videos and the contribution to the open source software community. Well done, Jeff! :)
Those were the days, I remember one guy had a Nova-S in a G4 Mac running franken-build PowerPC linux with native Dreambox EMUs like Newcamd, just to update EMMs on an NDS smartcard, in an RS232 phoenix reader!
Congrats on making progress on your trip down the rabbit hole of trying to get something to for no other purpose than to see if you could!!! It’s amazing to see how you’ve learned on this journey and I’m sure by now you are pretty comfortable with compiling custom Linux kernels.
This is an amazing milestone in a long and arduous journey. Given that the Pi is becoming more PC-viable with every successive generation, I really hope the Pi Foundation and Broadcom consider aiming for SystemReady SR compliance so that PCIE devices like all AMD GPUs just work.
I haven't yet seen the video, but already clicking on the description makes my heart jump high :)
im really exited to see how this turns out. keep it up jeff.
You finally did it! Was such an incredible journey to watch. Keep it up!
Congrats on finally getting that GPU up and running. The hard work seems to have payed off.
Jeff, so impressed with your dedication!! Keep up the outstanding work 👍
He finally did it, the absolute legend!
at present its just a sneak trough a slightly opened door.
but hey, its still a promising keystone step.
Congratulations to you and all other contributors; Impressive achievement indeed!
Hey man thanks for doing what you do. Really appreciate it.
Keep up the good work bro! And good luck with that 👌🏻
This is some fire content. I look forward to this!
y'all are total legends for finally pulling this off.
Yes! I've been checking your channel for weeks hoping for this video to pop up
Congratulations on such a huge milestone!
Fantastic effort, thanks for all you are doing.
Awesome Jeff.
Well done, all of you. This has been a long road.
So happy for you man been waiting for this for a while
This work is peak electrical engineering and the video had me giddy and cheering! Congratulations to you and all the other people who worked on this!!! This is a HUGE step for ARM integration and standardisation.
Amazing man, you've finally done it! Also the 5450 used to be my main card for AGES!
I have watched nearly every video since the first time you tried . Exciting !!!
This is amazing! Great work
Reminds me of Dracula's struggle with making his children to hatch in Van Helsing (2004), getting PCI-E bus on cheap ARM HW to comply is like reanimating something born without life.
-Thank you very much for the knowledge and work you do with the Rapberry Pi....!!!
Man, if I could press the thumbs up button twice I would! Amazing work Jeff, I am amaze by the work you do and the way you do it! You are really building something here!
DAMN! you da man! bravo for the continued research and banging your head against the wall.
Excellent job everyone working on this project.
Fantastic! It's great to see your satisfaction from the hard work.
Very entertaining witchcraft and good that many people pitched in to assist when you hit a brick wall. Keep it up! 👍
After many recompilations of the Linux kernel, Jeff has finally succeeded!
It#s really fascinating to follow you on this journey.
Excellent work. Keep pushing the limits!
As wild as it would be to get modern games running on an RPi, it's the math and AI acceleration that I want to see. Even an older GPU would yield a massive performance boost to those algorithms.
I think SBC/SoC vendors with consumer grade products do pay attention to tinkerer/maker projects like this, and hopefully they'll now see that a more standardized PCIe implementation is something more people would put to use. I wouldn't expect it to appear in the next generation (since those are probably well into the design phase, if not testing phase), but hopefully the generation after that.
What a journey! Nice perseverance!
If anything you learn a lot from these types of adventures. Congrats!
Well done !!! Keep up the great work 🙂 !
Been waiting for so long for this... definitely not disappointed!
Thank you for your sharing these awesome and exciting journeys with us.
This is really great! Thanks for sharing.
You are a great mentor to others displaying creativity and persistence. Bravo Jeff!
The man really did it! :O 💪🏻 congrats
massive W, keep pushing jeff
So from now onwards your videos are available in 4K that's awesome
Been slowly working up to it. Not every video will be 4K, but I finally upgraded all my equipment so I can at least record most things in 4K. I do like the detail it gives for up-close product shots!
My internet only does 360p, i usually watch youtube in 144p. 🤣🤣
Amazing work!!
We're struggling with write combining and cache coherency issues for the radeons on higher-end aarch64 SoCs too, like the lx2160.
Yeah; from what I've seen, there are four or five issues on the Pi... and at least one or two on _most_ ARM chips. The biggest problem is X86 device drivers assume certain features that aren't in the 'official' cross-platform PCIe spec and those quirks are hard to work around on hardware that doesn't support them.
@@JeffGeerling When I was still at linaro we use a patch for the DMA subsystem to get GPUs to work to account for the differences in memory models. That was 5 years ago, I hope
things have improved since then :)
@@JeffGeerling or the minimum spec is badly engineered . Given the chicanery I have seen regarding Type-C accessories for cell phones I suspect both a badly engineered spec and pathetic enforcement of the spec.
Hi! JEFF, I'm verry happy for all the stuff you are doing. I know that it isn't an easy job to do "THE KERNEL COMPILER'''
and i hope to see the rasbpberry py running big GPU one day.
So good luck and never give up. I continue to follow your puth even if in computer science domain, i'm just solidworks software user.
great job and congratulations!
Amazing work!
no one has gone before......
Amazing work.....THX for sharing
That’s awesome one step at a time. To use things as no one intended them to be used is the most fun
Finally!! Great work!
I dunno how monumental this is, but it is pretty monumental and very beautiful to me. Well done Jeff and team!!
well done Jeff!
interesting results. this has uncovered a few bugs and maybe it will serve to make future versions of the PI better.
Thanks for the video
that's so cool. and finally some development on the subject
kudos to your hard work
Congratulations bro
Wow! No one can ever call you a quitter, Jeff. Wish I understood about 1/2 of what you just ran down, but relieved that I don't need to. Thank you for keeping me humble, Jeff. I need that.
As it is, I expect a 6 month learning curve ahead to program all the features into my Teensy Laser MIDI controller project. Just ompleted the new RGB projector and Teensy laser synth.
Yes, I can totally relate to the costs of "going where no one has ever gone before..."
8 * 600 ppr rotary encoders w/16 neopixel RGB level rings, 8 * RGB button/rotary encoders, 36 * RGB backlit buttons, 2 * 7" Nextion HMIs, 22" multipoint touchscreen monitor, miniPC. That list soon blasted through the budget.
But for some things, settling for less nor the acceptance of failure are even options worth considering. Right? 😎
YOU FINALLY DID IT
good job my guy
I was waiting for this video for a long time because the end of 1st one was not satisfactory , Very nice to see the progress hope the future holds more
It's been a long journey, and it's not over yet!
Keep going, Jeff!
I adore the sentiment that you are mostly in it for exploration.
I do the same thing with my little Windows 98SE-powered thin client - I try to push it further than one would reasonably expect it to.
Heck, I even managed to get a hacky, ugly, yet somehow functional Home Assistant frontend working for it that has just about reached feature and UX parity between Edge and IE6.
As Cave Johnson put it: "Science isn't about 'why?', it's about 'Why not?'"
excellent work!
Congratz Jeff!
Congratulations on a 100000π subscribers!!
I’m proud of you man😁
He is a man of focus, commitment and sheer freaking will.
I've been waiting for this conclusion for awhile!
Awesome stuff!
I'm actually considering retiring a dual CPU ML350eG8 to a Compute or cluster form.
But, it's hard when it runs pfSense, NAS, game servers, VM's, PiHole and I'm not sure on Pi's ability to handle a 24tb NAS solution.
....
Maybe I'll make a video series exploring the journey someday (Hopefully, before the old server fails lol)
Fun build - wow lots of work. I used an R7 250 in an old QNAP NAS that had a PCIe port but no video output. I chose that card because it was still relatively new / fast "enough" so drivers shouldn't be an issue, cheap, and the correct size to fit in the NAS. Works like a charm! I had to fashion a back-plate that fit, but easy enough!
well done awesome work.
Wow well done!