Два компьютера примерно за $2000: один — башня с NVIDIA RTX 5090 (32GB памяти, 1792 ГБ/с), другой — мини-ПК на AMD Ryzen AI Max+ 395 "Strix Halo" (128GB unified memory, ~256 ГБ/с). Попытка запустить 70B-модель в 4-битном квантовании (нужно ~40GB) — RTX 5090 не может, модель не влезает. А мини-ПК загружает её без проблем, но генерирует текст со скоростью медленного чтения. Весь парадокс мини-ПК в одном: они вмещают модели, которые не помещаются на гораздо более быстрые GPU, но платят скоростью.
В обычном ПК — отдельная RAM для CPU и отдельная VRAM для GPU, данные гоняются через PCIe. В unified-memory машинах CPU, iGPU и NPU делят один пул распаянной LPDDR5X. Нет отдельной VRAM, так что почти вся память отдаётся модели. Купил 128GB конфигурацию — получил около 128GB «VRAM» примерно за цену одной средней видеокарты. Apple, AMD, NVIDIA DGX Spark, Intel, Qualcomm — все делают так же.
Решающие числа: capacity (сколько GB) — решает, загрузится ли модель вообще. Memory bandwidth (сколько ГБ/с) — решает, как быстро она будет генерировать текст. У мини-ПК capacity растёт до 128GB (у Apple M3 Ultra до 512GB), а bandwidth остаётся 120–270 ГБ/с. У дискретных GPU — 900–1800 ГБ/с, но capacity упирается в 24–32GB (кроме рабочей станции за $8500). Это противоположности.
Почему bandwidth, а не compute задаёт скорость? Генерация токена требует прочитать всю модель из памяти и сделать мало арифметики. По roofline model, decode ограничен пропускной способностью. Apple MLX пишет прямо: «Генерация последующих токенов ограничена bandwidth». Формула: токенов/с ≈ bandwidth ÷ байт на токен. Для 70B в 4-bit (~40GB на токен) на Strix Halo (256 ГБ/с) — примерно 6 токенов/с, на M3 Ultra (819 ГБ/с) — около 20, на RTX 5090 — 45, но модель не помещается.
Важное исключение — Mixture-of-Experts модели. MoE Qwen3-30B-A3B активирует только 3B параметров на токен, читая ~2GB вместо 40. На том же Strix Halo владельцы меряют около 72 токенов/с. Хотите быстрого мини-ПК — берите MoE.
Подводный камень — prompt processing (prefill). Первый токен ждёт, пока модель прочитает весь входной промпт. Prefill вычислительно ёмкий, ограничен FLOPS, не bandwidth. На Strix Halo обработка 4000-токенового документа занимает ~40 секунд для плотной 70B. Для длинных контекстов это стена.
NPU — красная селёдка. Он делит ту же память, decode всё равно упирается в bandwidth, а llama.cpp и Ollama его не используют. Когда The Register попробовал NPU-оффлоад от AMD, 7B модель выдала 4-5 токенов/с вместо ожидаемых 40.
Что говорят владельцы? ServeTheHome запустил Llama 3.3 70B на 128GB Strix Halo — 3.7–3.8 токен/с. Level1Techs — 5 токен/с. Плотные 70B — однозначные числа. Программная среда требует терпения: GPU виснут, нужны танцы с ядром. ROCm может ночью уполовинить скорость prefill.
Итог: мини-ПК с unified memory — машина вместимости, а не скорости. Покупайте, если модель не лезет ни на одну доступную видеокарту и вы готовы к медленной генерации и долгому prefill. Если модель влезает на реальный GPU — GPU побеждает по всем фронтам. Подбирайте железо под модель, а не под TOPS на коробке.