Is there anything comparable that runs Linux, doesn't necessarily look as good, but is perhaps (a lot) cheaper/fixable? Or is this really pretty optimal?
I mean this is not nvidia based right? It's all custom? So we can use it under Asahi perhaps?
I want to get something for my company to run local models, wondering what would be a good option.
I love linux and would be using it if the ARM support was better. It's just not there and most distros that support ARM do it a little poorly. I just haven't seen anything even remotely comparable to Apple Silicon and unfortunately Linux is struggling very hard to support it.
I guess, what I mean is: Why are these tiny aluminum boxes so optimal?
I just want my butt ugly repairable beast machine to do the same trick. Why is my ram not unified? I have an iGPU in my server, but it can't access the 64 GB ram (I got last year for 150 euro) directly or something? It's on the CPU right? Why did only Apple go for this architecture? So many questions...
AFAIK, apple does not release drivers open source, asahi is a reverse-engineering endeavour and does not support GPU. For nvidia, there are both proprietary and open-source linux drivers. CUDA and inference works on linux with nvidia. I would recommend checking out this video of Alex Ziskind to shop for a computer to run local LLMs: https://www.youtube.com/watch?v=mevUEQcumzU&t=224s. TL;DR besides Apple he recommends, DGX Spark, Tenstorrent Wormhole N300, AMD Radeon 7900 and NVIDIA RTX 5090.
You can't run Linux directly on these. Asahi Linux supports up to M2 only.
Linux runs very well in a VM on macOS. There are many good options for this, some free and open source (QEMU, UTM, Lima, Colima), some proprietary (VMware Fusion, Parallels).
But Linux in a VM doesn't get access to the real GPU, so model performance is limited. Those running on the CPU perform well, and those needing the GPU don't.
However, macOS on M-series macs is excellent for local models. (Maybe not as excellent as a box full of the best nVidia GPUs, but still excellent).
So if you're getting Apple hardware, like Linux, and want to run all of it locally, a fine setup for a machine to run local models, with agentic characteristics:
- macOS running one of the many local model runners. I used to use Ollama and Whisper, and now use llama.cpp instead of Ollama. Others use LM Studio, oMLX, etc. Provide HTTP endpoints to access the models.
- Linux in a VM for overall control and orchestration, with standard VM settings, and bridged networking so it appears as its own machine on your network. Also, in here provide a robust shared file server for shared state. Use this VM as your desktop and primary access to the machine, if you like Linux.
- Linux in a VM to launch ephemeral, volatile containers, with the containers using a memory-only tmpfs overlay on top of a read-only Linux filesystem in a VM disk image, with tools in this filesystem. Alternatively, a writable Linux filesystem in a VM disk image, with disk buffering set to use macOS host buffering and discard fsync requests. These settings optimise for container disk performance for data that's only ephemeral which will be deleted soon or on system shutdown. (You can combined both VMs, but need to use two VM disks to get equivalent behaviour, and be careful about VM disk configuration of the two disks.)
- Containers spawned within that second Linux VM can be spawned very quickly and run quickly, so are ideal for LLM agents that need a quick sandbox. These sandboxes generally run faster than a macOS sandbox, despite being on the same machine with VM overhead, because Linux is faster at some things. Teach the LLMs to store files and memories they want to keep in the shared file server.