Ask HN: Are EGPUs for M1/M2 MacBook's on Linux Possible?
Three things:
1) 2D acceleration with the recent Rust driver in Asahi Linux seems quite attainable, and will enable everyday/office/development use.
2) USB 4 should allow suitable bandwidth for an eGPU
3) What needs to happen to support say, an Nvidia RTX 3090 in an eGPU case/dock? I'm thinking the 'open source' Nvidia driver needs to be compiled for ARM, and everything pushed to it is code for the internal ISA of the GPU.
3D acceleration through an eGPU seems much more possible in the near-term than supporting the internal iGPU of the M1/M2.
37 comments
[ 3.0 ms ] story [ 100 ms ] threadYou could run Windows and use GPUs there, but on ARM that's a different story, there don't seem to be any Windows or macOS drivers at all, except for Linux.
So would it work hardware-wise? Yep. But no official software is being made to do it because none of the parties that could are incentivised to do so.
Otoh on Linux it should just work!
It won't, unfortunately.
https://twitter.com/marcan42/status/1538426240922963968
I suppose it makes sense considering they can design the products as a whole and only add what they actually need instead of just getting a bunch of stuff and seeing what sticks in their design (which is what happens if you have a ton of external suppliers for CPU, PCH etc.).
Maybe if they come up with some M2 Ultra Max XXL or whatever they will get an abundance of lanes that require other BAR configurations to make proper use of (which would then mostly make sense if they go Mac Pro or at least larger-than-mac-studio - but if that is going to include PCIe slots... who knows).
MacOS has built in drivers for plenty of GPUs, including AMD, Nvidia, Apple and Intel. But on the ARM64 side, AMD and Nvidia have not made any drivers for Windows or macOS, so you are out of luck on the software side.
Any GPU manufacturer could right now make a driver that works on Aarch64 for Windows, macOS and Linux, regardless of what Microsoft or Apple does. But they don't (so far, at this point, but I can't foresee the future).
To the point of being 'blessed' by the OS manufacturer: Microsoft probably won't make DCH signed drivers until their contract with Qualcomm for exclusive Windows ARM end-user hardware expires, they only sign drivers for their own internal hardware and Qualcomms internal hardware, and that's it. Apple is in a similar situation but they just won't support any internal peripherals that they don't manufacture themselves. You can, however, still make and load those drivers, it's just not a non-technical experience for the average user (and one could argue that eGPUs aren't for the mass market anyway).
Keep in mind that both Microsoft and Apple have their own 'special' versions of GPU drivers for AMD and Nvidia (and Intel) that are code from those three manufacturers but packaged and maintained by them. And then there is the ODM and public versions, where the ODM version is mostly used by laptop manufacturers, and the public version is what you find in the downloadable 'universal' packages from the GPU manufacturer website. Those can be made by those manufactures at any time, for any OS, if they want to.
The new macs literally dont allow 3rd party components. The physical case literally serves as a wall against regular PC components. The new mac minis have m.2 slots for example... but you need a custom ssd just because, because Apple is keeping the walls high.
> Any GPU manufacturer could right now make a driver that works on Aarch64 for Windows, macOS and Linux, regardless of what Microsoft or Apple does. But they don't
AMD cards run on ARM linux. https://youtu.be/crnEygp4C6g
It has nothing to do with macOS and nothing to do with GPU manufacturers, only that Apple Silicon drivers for eGPUs do not exist, and there is no reason for them to exist because M1 delivers better performance than any eGPU.
> Otoh on Linux it should just work!
There's a diesel truck I want, has the power and performance I need, but I just hate diesel. Why are they forcing me to use a fuel I hate? What are the chances I can get this diesel engine to run on linux gas? Linux gas is such a cool fuel, I can do almost anything with it and not be locked in to the diesel walled garden.
I also have this compact car that I just hate the engine, it's only 1 liter. Why do car manufacturers force their stupid flashy engines on us? I want to put a 20 liter linux engine in there, but the engine bay is too small. What are the chances I'll ever be able to squeeze my linux engine in there?
Someone should just release a GNU/XNU distribution, call it "ARMac 'Linux'" and be done with it, because 99% of the cry babies don't really care about Linux, they just think that they do. All they really want is GNU. The other 0.9% can use MacPorts to build or install and run GNOME on macOS, and tell everyone it's Linux. Unless they saw the directory structure, Penguinistas wouldn't know the difference. For the remaining 0.1% that actually do want and need the Linux kernel on Apple Silicon, only they deserve our sympathy.
If it must be Apple Silicon, then you can run as many virtual instances of macOS as you like on my GNU/XNU ARMac "Linux" (not actually Linux) release, and as many Docker Desktop for Apple Silicon as virtual instances of macOS.
But if Docker had any decency, they'd release the source code to you, so you could build it native for Apple Silicon XNU. Have you considered working for Docker? Would make it a lot easier to get the source code, or just move through the ranks and make it a Docker initiative.
Or suppose we agree while you can't actually run docker server on Apple Silicon, because the code doesn't exist, which is no one's fault, not even Apple's, but that you can still have the right to run docker server on Apple Silicon. We shall fight your oppressors for your right to run docker server on Apple Silicon because it is symbolic of our struggle against oppression.[1]
[1] https://www.youtube.com/watch?v=sFBOQzSk14c
Specs unclear, Pi Zero can do this for 35 dollars. It's the fastest you can get for cheap. But not the cheapest one of the fastest ones, that would be Graviton, but you can't get those because only Amazon manufactures them for themselves. So that leaves Ampere Altra but that's not cheap unless you need to scale. I guess you need a Kunpeng 920 then.
Anything Thunderbolt seems to be a expensive to me!
Increasingly, I'm thinking just a mobile eGPU Ubuntu node you plugin and ssh into, and just a nice remote setup...
It’d be awesome if eGPUs provided high throughput and low latency. But it really doesn’t seem like that’s the case.
Yeah, the eGPU market is a disaster and the review quality is terrible. I personally wouldn't touch eGPUs. Which is a shame because I absolutely adore the concept.
Only reason I stopped using it is because I used it less and had more use for it on Linux than anywhere else, so it's permanently installed in a Linux desktop machine now. It works passthrough to a Windows VM as well. The Intel Mac it was connected to is no longer used with more than 2 displays so the internal GPU works well enough, and an M1 has no problems with it either.
For the time where I used it, it was a perfect solution for me; lots of portable use, but when working from home more the portability aspect isn't worth much. Add to that that GPU usage on-the-go is pretty much gone for me (most GPU workloads just run on AWS for me now), and having a high-power GPU connected to a laptop just doesn't help me with anything.
If in the future I'd need more local GPU power than a mobile device (in a form factor I enjoy) can handle, maybe it'll be interesting again. Have one at home, another at an office, only move the laptop between places...
The #1 eGPU is #1 because it still works reliably and well. I have one and it's a reliable product that does what it says on the tin - provides an external cradle for a GPU.
As for lack of Mac benchmarks - Apple dropped support for eGPUs, so why would they benchmark a legacy unsupported system?
How long from user input to pixels changing.
> the latency has to be the same as the builtin GPU to function.
Objectively false.
A few years ago it was very common for Windows laptops with discrete Nvidia GPUs to have increased latency when using the discrete the GPU. The reason is that the frame buffer had to be copied from the discrete GPU to integrated to monitor.
Now maybe this doesn’t matter and you don’t care. But I’d like to know. The fact that it’s rarely done is a serious lack of rigor IMHO.
My intuition is that it varies by chassis. I’d be shocked if they’re all the exact same!
eGPUs are still significantly slower than having the GPU built in. Maybe they’re bottlenecked due to the connection, I dunno. It’s something that I thought would have gotten better in the past four years. But maybe eGPUs are even an worse deal now!
Personally, I think a better and easier option is to just get an entire other computer with the GPU(s) in it. This can either be a physical machine you have, or some GPU cloud instance. Then in situations where the Mac graphics capabilities aren't up to snuff, you can use something like remote desktop or streaming to offload that work to the other machine.
e.g.: Setup a small headless PC on your network that has a powerful GPU and Steam installed. Then run Steam Link on your Mac to play games that don't run natively on MacOS.
What makes you so sure, given that Apple was early to the eGPU party (support was announced and demonstrated at WWDC 2017), continues to support them on Intel silicon Macs¹, and continues to sell them²?
¹ https://support.apple.com/en-us/HT208544 ² https://www.apple.com/shop/product/HM8Y2VC/A/blackmagic-egpu
https://twitter.com/marcan42/status/1534825580801433600
Intel might have a leapfrog opportunity here..
I was playing Fortnite quite a bit, but at some point in 2019 they released a patch that made the game unplayable with my eGPU so I haven't played since. So was some commenters have said on this thread already, eGPUs are not well supported.