Apple to Power AI Features with M2 Ultra Servers
macrumors.com
macrumors.com
if anyone from Apple is in these threads please sign me up for the beta although i think the first round pretty much knocked me & my family out
still kind of crazy to think Iran and it's entire oil reserves that power idk how many households produce the same amount of revenue as 175k people
Similarly, African raw materials form the core of many computers and yet Africa is still poor - because the raw material itself isn't that useful.
A container is a combination of a restricted filesystem (e.g. chroot), separate namespaces (e.g. pids, network, ipc), and resource limits (e.g. cgroups for max RAM and CPU usage). It is a big undertaking to modify a kernel to provide these capabilities.
A few operating systems have these APIs (or something similar). The ones that I know about off the top of my head are: Solaris Zones, FreeBSD Jails, Linux containers, and Windows Server containers in Process Isolation mode.
The macOS kernel simply doesn't provide these APIs and I doubt that Apple is really interested in putting in the substantial effort to develop them.
For inferencing workloads they also don't need to control max RAM or CPU usage as they can just dedicate the entire machine to handling requests.
And for sandboxing, Apple's sandboxing infrastructure is actually the best of any OS (but mostly private unfortunately).
Plus a lot of devs use mac is it not a large enough addressable market for apple to care about the servers
For devs, I think that most devs are okay with the current practice of running a virtualized Linux (or other) guest via Docker and deploying to Linux (or other) servers. macOS does support virtualization. The difference between virtualization and containerization is that a virtualized guest uses its own kernel whereas a containerized guest shares the host kernel.
I'll also point you to two comments in this old HN thread which seem to have good information about Apple's use of server operating systems:
The possibility of Jails in XNU: https://news.ycombinator.com/item?id=31384534
Apple's use of Linux in the Services division: https://news.ycombinator.com/item?id=31383746
• their ObjC WebObjects-based web backends (such as the iTunes Music Store backend — which might still be ObjC-based to this day? Anyone know?) ran on NetBSD servers
• the firmware in Airport routers was NetBSD
I wouldn't be surprised if there’s an Apple Silicon build of NetBSD, created for internal use at Apple. (Though I also wouldn't be surprised, if they've tried to "converge efforts" since then, and have somehow stuck a Darwin userland on top of a NetBSD kernel.)
I would be genuinely surprised, though, if the infra folk at Apple trust the XNU kernel's network stack enough at this point to want to use plain XNU/Darwin for their servers!
---
As an aside, I've always been fascinated by Apple's approach to backend/server technologies, compared to other bigcorps. Despite not being a "UNIX shop" per se, Apple seems to have acquired some engineers somewhere along the way who have a deep understanding of the "UNIX way" to build stuff, and who carry what might even be called "legacy ideas" about system architecture.
You can get a peek into this approach, by prying into the insides of the old Server.app. Sort of like how XCode.app has a BSD buildroot inside it, with the base OS shipping with stub binaries that call inside it when it's available; Server.app does the same, but with an extended BSD userland containing regular old BSD daemons.
Besides being a wrapper for this BSD-userland payload, Server.app itself was just a configuration wizard and state-converger for a set of plain-old config files, living in a virtual /etc dir (regenerated from canonial plist files), that enabled and drove these venerable daemons to do their thing. The "Websites" feature was just Apache, and the "Wiki", "Calendar/Contacts", etc features were just symlink-managed PHP-FCGI plugins for that Apache instance. The DNS was just BIND. The VPN feature was mostly racoond[1]. It's exactly what you'd expect from e.g. cPanel on Linux, with no sense of anything "Apple-y" going on.
[1] https://www.netbsd.org/docs/network/ipsec/rasvpn.html
This UNIX-y approach also seemingly extends to Apple's use of networking protocols. Even while Apple was giving users a proprietary SMB-alike protocol (AFP) to use for local-network file sharing, their internal approach was different: macOS, to this day, ships with a pre-configured "auto-home" mobile user profile feature, that expects to talk not to an AFP server, or even an SMB server, but rather to an NFS(!!) server. (You could even set this up for yourself, in the Server.app days, given sufficient understanding of Apple's OpenDirectory + how it integrates with BSD Kerberos.)
Accordingly they know where in the "old stuff" are really good ideas.
Unless they overshot production and have stock of unsold M2s they're willing to sell at 90% discount.
I expect it's about control and Apple's philosophy that they have to do everything themselves.
Your comment doesn't make much sense to me.
If you're releasing a bunch of new ML-powered features that are setup to run on-device, you have to have a cutoff for what generation of device is required. Apple has indicated with recent OpenELM model releases that they're targeting different levels of device capability. But you can only go so far.
For older devices, you can offload those tasks to the cloud, but then you have to maintain 2 different software stacks and there are potential compatibility issues.
If you have a bunch of M2Us in the cloud though, you have the exact same hardware that you're developing on-device for. If you package up the core software components as frameworks, you can run on device or in the cloud, and it MAYBE simplifies keeping the results and output in sync between the two.
Otherwise, it makes no sense from a pure performance perspective vs. just deploying racks of H100s...
I wonder if that means Apple will bring ECC to Apple Silicon.
- CoreNet, a training toolchain developed by their ML teams: https://github.com/apple/corenet. It's built on PyTorch, but uses MLX
- MLX, Apples internal array processing framework which is C/C++/Swift (https://pypi.org/project/mlx/).
- CoreML tools, their python package for accessing the lower-level CoreML APIs (https://github.com/apple/coremltools)
E.g. when Apple Silicon was released there were people in various FOSS projects who worked with Apple assistance for porting. Here's an example that comes to mind:
"In collaboration with the Metal engineering team at Apple, we are excited to announce support for GPU-accelerated PyTorch training on Mac."
https://pytorch.org/blog/introducing-accelerated-pytorch-tra...
Get's all the moving parts into place for when they have a competing solution to Nvidia / Google Tensor.
The M2 Ultra supports up to 196GB of RAM in the products Apple offers it in.
The Ultra may support 192gb but that also comes at an insane cost, if AI is going to become mainstream and Apple want to do this on device, the base models are going to need more Ram, processing power on these systems is not the bottleneck, the RAM is.
The “stopgap” is using the existing M2 Ultra for this, versus a chip specifically designed for AI server duty.
I don’t think the person you responded to is talking about on-device processing. Apple definitely wants to do as much of this on-device as they can of course, that’s just kind of tangential to this discussion on which server chips they are using.
I'm talking about more normal machines, all have 8gb including 2 out of the 3 MacBook Pro models, meaning you have to drop two grand for a MacBook Pro with 16gb memory and even that is low for AI.
They are using M2 Ultra on the servers because that has enough power / memory, the issue is there baseline machines don't and only have 8gb, hence needing to offload to a server and it's going to be a stop gap until they put more ram in the standard machines.
I feel Snow Leopard was peak OS X. Clean, lean, no bullshit. It seemed magical how well everything worked.
To be fair though, current versions are probably 'better' overall, I'm just annoyed with all the new stuff and crappy apps haha
Would love it if someone were to build a desktop that uses 10.4/10.5/10.6 as its design basis and then adds that missing polish.