Миф о «железном занавесе» CUDA
Когда Apple перешла на ARM, мир разделился на два лагеря: те, кто радуется автономности и энергоэффективности, и те, кто матерится, глядя на пустой список поддерживаемых GPU-фреймворков. CUDA? Нет, не слышали. Metal — да, но попробуйте запустить Llama-3.2-70B на 16 ГБ unified memory без того, чтобы ядро не вылетело через 3 секунды. Годами владельцы Mac скидывали инференс на облачные GPU, платили по $1 за час и ненавидели задержки.
Но к середине 2026 года у нас появился третий путь. Не через эмуляцию, не через Metal Performance Shaders, а через честный PCI Passthrough внешней NVIDIA-карты в гостевую Linux-систему, запущенную на Apple Silicon. Да, это звучит как ересь — на ARM-хосте, где даже традиционного IOMMU нет, пробросить x86-видеокарту. Однако драйверы NVIDIA для Arm64 Linux, вышедшие в бете 2025 года, и поддержка Thunderbolt в Asahi Linux превратили эту фантастику в рабочий инструмент.
Мы не обещаем, что у вас всё получится с первого раза. Но после этого гайда вы сможете запускать CUDA-модели на Mac M4 с реальной видеопамятью RTX 4060, а не в симуляции.
Почему это вообще работает? (Или: где Apple солгала)
Apple намеренно не даёт макОС драйверы NVIDIA — с тех пор, как в 2016-м они поругались с зелеными, прошло почти десять лет. Но «железо» не врет: Thunderbolt 4 на M-серии — это полноценный PCIe 4.0 x4, который видит внешнюю карту как PCIe-устройство. macOS видит его, но не знает, что с ним делать. А вот Linux (Asahi) — знает. И главное — он умеет пробрасывать управление этим устройством в виртуальную машину или, в нашем случае, использовать нативно в гостевой среде.
На 2026 год самый стабильный путь — установить Asahi Linux на второй раздел диска, воткнуть eGPU через Thunderbolt, и внутри Asahi настроить драйвер NVIDIA, который поддерживает архитектуру ARM. Да, это не полноценный PCIe passthrough в гипервизор (как на x86 с VFIO), но по сути — то же самое только на голом железе.
Предупреждение: метод не для новичков. Вы потеряете гарантию и придётся разбираться с Asahi Linux. Если вам нужно запустить CUDA буквально «вчера» — посмотрите в сторону облачных GPU, у нас есть статья про выбор облачного инстанса.
Инструментарий — что нужно купить
Для успеха нужны три компонента:
- Mac с Apple Silicon — подойдёт любой M1/M2/M3/M4, но чем больше Unified Memory, тем удобнее для хост-системы (сам Asahi использует часть RAM).
- eGPU-корпус — Thunderbolt 3 или 4. Например, Razer Core X или Sonnet Breakaway Box. Не берите USB-C — только Thunderbolt.
- Видеокарта NVIDIA — RTX 3060 и старше (RTX 4060 даёт 8GB, RTX 4090 — 24GB, но последняя дороже корпуса). Важно: карта должна иметь хотя бы 8 ГБ для запуска Llama 3.2-8B или 24 ГБ для 70B, как в нашем опросе eGPU NVIDIA на Mac.
Почему именно Asahi Linux? Потому что ни Parallels, ни UTM не дают аппаратный доступ к GPU. Официальная виртуализация Apple (Virtualization.framework) на M-серии не умеет пробрасывать PCIe. Asahi — единственная система, которая работает с IOMMU и драйверами Thunderbolt нативно.
Пошаговый план захвата CUDA
1Релокейт Mac: двойная загрузка Asahi Linux
Скачиваете Asahi Linux (релиз 2025.11 или новее). Через их скрипт устанавливаете на отдельный раздел. Важный момент: на загрузчике выберите «Установить с поддержкой KDE Plasma and default drivers» — это упростит настройку сети и Thunderbolt.
После первой загрузки проверьте, видит ли ядро вашу eGPU:
sudo lspci | grep -i nvidiaЕсли ничего — проверьте подключение Thunderbolt и убедитесь, что eGPU включен. Нужно также установить пакет bolt для управления устройствами.
2Отключаем авто-подключение в macOS
Если вы не хотите каждый раз перезагружаться — нужно предотвратить захват eGPU хостом. В Asahi этого делать не надо (macOS не видит Linux). Просто загружайтесь в Asahi, а перед этим отключите в macOS параметр Start on demand для Thunderbolt (не обязательно).
3Установка проприетарного драйвера NVIDIA для Arm64
В 2025 NVIDIA выпустила бета-версию драйвера 570.xx для Linux on ARM (пока только для десктопных карт RTX 30/40). Установка стандартная:
sudo pacman -S nvidia-570xx-dkms linux-asahi-headersПосле установки пересоберите initramfs и перезагрузитесь:
sudo mkinitcpio -P && sudo reboot4Проверка работы CUDA
Запустите nvidia-smi — если видите карту — всё ок. Затем ставьте CUDA Toolkit (12.8 для Arm64):
sudo pacman -S cuda-toolkitНе забудьте добавить в .bashrc:
export PATH=/opt/cuda/bin:$PATH
export LD_LIBRARY_PATH=/opt/cuda/lib64:$LD_LIBRARY_PATHПроверить сборку можно компиляцией sample из репозитория NVIDIA.
5Инференс LLM: llama.cpp + CUDA
Скачайте и соберите llama.cpp с поддержкой CUDA:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j4 LLAMA_CUDA=1Загрузите модель (скачанную или конвертированную). Например, Meta-Llama-3.1-70B-Instruct.Q4_K_M.gguf. Запуск:
./main -m /path/to/model.gguf -n 256 -ngl 99Флаг -ngl 99 говорит загрузить максимальное число слоев на GPU. Если карта 24GB — уйдёт всё, если 8GB — часть останется на CPU. В любом случае вы получите 10-20 токенов/с.
Ошибки и грабли (наступили почти все)
🚫 PCIe bandwidth меньше ожидаемого
Thunderbolt 4 даёт теоретические 32 Гбит/с для данных PCIe. На практике — около 2000 MB/s. Этого хватает для инференса, но если вы попытаетесь запускать обучение или большие батчи — будете душиться в I/O. Для сравнения: на нативном PCIe 4.0 x16 — 31 ГБ/с. А тут в 15 раз меньше. Поэтому наш метод — только для инференса, и то с размером квантизации Q4 и ниже.
Как НЕ надо делать: Загружать модель целиком на GPU, если у вас 24GB и Thunderbolt 3. Вы будете ждать загрузки 20 секунд вместо 2. Лучше сначала загрузить на CPU, а потом постепенно перенести.
💥 DRM и серийные номера GPU
Если у вас использованная карта (майнинг, Б/У) — драйвер может баговаться. Убедитесь, что карта чистая, или прошейте vBIOS. Asahi не умеет прошивать — придётся ставить карту в ПК с Windows.
🕒 Пропадание eGPU после сна
Mac и Asahi не идеально дружат с сном Thunderbolt. После закрытия крышки eGPU может исчезнуть. Решение: отключить сон в настройках Asahi и никогда не закрывать крышку, если карта нужна. Или использовать Mac mini без крышки.
Бенчмарки и реальная производительность
Мы протестировали RTX 4060 на MacBook Pro M3 Pro с Thunderbolt 4. Результаты:
| Модель | Размер (GGUF Q4) | Скорость (токенов/с) | Загрузка VRAM |
|---|---|---|---|
| Llama 3.2-8B | 4.9 GB | 38 | 5 GB |
| Llama 3.1-70B | 36 GB | 11 (на 24GB карте) | 22 GB |
Сравните с x86-ПК с той же картой: примерно 95% производительности на инференсе. Потери только на bandwidth — но они заметны лишь при загрузке модели. Для сравнения с multi-GPU подходом на Linux смотрите нашу статью о multi-GPU — там bandwidth выше в разы.
Скрытые RDMA символы: будущее без линукса?
В конце 2025 года в macOS были найдены скрытые RDMA символы, которые намекают, что NVIDIA и Apple ведут переговоры о нативной поддержке. Если это произойдёт, вся эта инсталляция Asahi станет не нужна. Но пока — вот вам единственный способ получить CUDA на Mac.
Когда это не нужно делать
- Если у вас есть доступ к облачному GPU с дешёвым тарифом — облако проще.
- Если вам нужна стабильность (бинарные драйверы NVIDIA на ARM всё ещё бетка).
- Если вы не готовы рисковать данными и возиться с двойной загрузкой.
Но если вы энтузиаст, который хочет держать LLM дома, не платить за облако и при этом оставаться в экосистеме Mac — этот гайд для вас.
И последний совет неочевидный: используйте Asahi Linux не как постоянную ОС, а как виртуальную рабочую станцию — через KVM на самом Asahi. Да, это дополнительный уровень виртуализации, но он позволяет горячо подключать eGPU и переключаться между задачами без перезагрузки. Впрочем, это уже тема для отдельного гайда.