Nvidia GPUs have been running fine on Arm for a while now—I just upgraded the System76 Thelio Astra to an RTX 4080 Super and am testing it now.
But Nvidia seems to have a partnership with Ampere, which probably leads to their drivers getting priority support, and likely a few special edge cases in code to work around a couple PCIe quirks on the Altra CPUs. Nvidia also builds their own Arm CPUs—a lot of them—so Arm support is definitely a priority for them.
Unfortunately, that support doesn't extend to the Raspberry Pi. And a company that's in many ways the polar opposite, Intel, also has GPU drivers that don't work on the Pi. At least, not until very recently.
Intel i915 and Xe driver updates for Pi 5
The Intel A-series cards use Linux's i915 driver, and B-series uses the newer Xe driver. Both drivers have a couple quirks that prevent them from loading on the Pi, but we've worked around those in this patch against the 6.12 LTS kernel.
For the A750, using that patch and a newer compiled version of Mesa than what ships with the Pi, you can get a full desktop environment and... some 3D acceleration. But it's quite glitchy, probably due to some memory corruption:
For the B580, I haven't gotten to a desktop environment yet, but I at least got a blinking cursor! That's something, right?
All the progress and testing is being documented in the following GitHub issues:
And since I know someone will ask: Resizable BAR support should work on the Pi 5, but right now the Intel drivers don't seem to work with it. We're actively debugging that problem in this issue: Resizable BAR support on Pi 5.
Nvidia driver updates for Pi 5
For Nvidia, every card I test still runs into the same set of errors:
[ 6.079514] NVRM: nvAssertOkFailedNoLog: Assertion failed: Failure: Generic Error [NV_ERR_GENERIC] (0x0000FFFF) returned from status @ kernel_gsp_tu102.c:482
[ 6.079619] NVRM: RmInitAdapter: Cannot initialize GSP firmware RM
[ 6.080914] NVRM: GPU 0000:01:00.0: RmInitAdapter failed! (0x62:0xffff:1863)
[ 6.081257] NVRM: GPU 0000:01:00.0: rm_init_adapter failed, device minor number 0
I started a discussion in the Nvidia Open GPU Kernel Modules repo: Raspberry Pi support (arm64)?.
To my surprise, Andy Ritger responded Nvidia now has an internal bug report (#5053788).
So... we'll see. I'm hopeful this is a simple bug that just needs a few tweaks to work on the Pi.
Conclusion
I posted a short video with some demos of the Intel cards on my 2nd YouTube channel, and you can watch it below:
Make sure to follow the various issues on the Raspberry Pi PCI Express database to see progress on different graphics cards.
Comments
Want to know what grinds my gears? Raspberry Pi OS is automatically adding Nvidia and Intel graphics drivers on my Raspberry Pi OS Lite install on a Raspberry Pi 3 and Pi Zero 2 W. WHY??? Lite is supposed to run headless. If you need these drivers, you should be able to install them with apt. Stop putting useless trash into the Lite version of the OS.
That is a bit odd—especially since we have AMD drivers mostly functional, while Nvidia won't even initialize a card, and Intel is a bit buggy still.
But even then, I can understand installing the kernel modules (that's only like 500 KB), but installing the firmware packages is a bit much!
Hi, really enjoy your content. I was happy when I saw there was some progress on the Nvidia GPUs, but sad when I read the post. =(
I recently came across another post about running Nvidia GPUs on Rasberrys: https://alican-kiraz1.medium.com/run-llm-on-pi5-connecting-an-nvidia-gp…
Not sure if you have seen it, or if it is legit. But I would love to hear your thoughts on it, or if you would be up to trying it even. =)
The success in that post seems to be prematurely celebrated. It's interesting that it says:
Yet it only shows the output of
lshw
, which shows:This means the card doesn't have a driver loaded. I have a feeling if the author runs
nvidia-smi
, it will also report, as every Nvidia GPU I've tested so far does:So no, it does not look like that author has found a way to get any Nvidia graphics cards to work on the Pi at this time. See an earlier response to this post over on the Pi PCIe discussions.
Thank you for breaking it down for me. Still on the extreme n00b level of everything but trying to pick things up =) so thank you again. =)
Another question, I am looking to run an LLM on a GPU similar to what you have done. Is it possible to run 2x GPUs in order to fit a LLM in the VRAM?