Больше памяти — не значит быстрее: prefill, decode и релиз Apple M5 Ultra
«Быстрее» я использовал как одно слово — для видеокарты, для контекста, для всего сразу. Apple выпустила сегодня M6 (первый 2-нанометровый чип) и M5 Ultra — новый Mac Studio с 512 ГБ единой памяти и 1,2 ТБ/с пропускной способности, до 80 ядер GPU с «нейроускорителями» в каждом. Слово «быстрее» в пресс-релизе встречается почти на каждой странице. Досадно ловить себя на том, что не могу внятно объяснить разницу между «быстрее считает» и «быстрее отвечает» — пришлось разобраться честно, с формулами, а не на уровне «у кого гигабайт больше».
Roofline: один вопрос решает, во что вы упрётесь
Ответ лежит в модели производительности, которую HPC-инженеры используют десятилетиями — roofline model. У любого железа есть потолок по вычислениям (флопс) и потолок по пропускной способности памяти (байт/с). Какой из двух потолков вы упираетесь — решает не железо само по себе, а operational intensity задачи: сколько вычислений приходится на каждый байт, прочитанный из памяти. Высокая интенсивность — упираетесь в вычисления. Низкая — в память. Prefill и decode — буквально два разных значения этой интенсивности внутри одного инференса.
Prefill: одна загрузка весов — тысячи токенов
Обработка промпта — параллельная операция: все токены проходят через модель одновременно, одним батчем. Грубая оценка: forward pass требует около 2 × N × T флопс, где N — число параметров, T — число токенов (без учёта квадратичного роста внимания на очень длинном контексте — честная оговорка ниже). Веса загружаются в память один раз и переиспользуются сразу для всех T токенов. Чем длиннее промпт, тем выше operational intensity — тем сильнее упираетесь именно в вычисления. Здесь решают тензорные ядра: специализированные блоки под fused matrix-multiply-accumulate, которые за такт умножают целую матричную плитку, а не одно число.
Decode: та же загрузка весов — один токен
Генерация следующего токена — противоположность: модель обрабатывает один новый токен за раз, но всё равно перечитывает все веса плюс KV-кэш из памяти ради этого одного токена. Operational intensity падает почти до нуля. Здесь решает не число тензорных ядер, а пропускная способность памяти — сколько байт в секунду карта протолкнёт от памяти до вычислительных блоков.
Тензорное ядро — не то же самое, что CUDA-ядро
CUDA-ядро — универсальный арифметический блок: делает что угодно, медленно и параллельно. Тензорное ядро — специализированный блок под одну операцию: fused matrix-multiply-accumulate на матричной плитке за такт. NVIDIA ввела их с Volta в 2017-м; на Blackwell — уже 5-е поколение, с нативным FP4. У Apple аналог — «нейроускоритель» внутри каждого GPU-ядра — появился только в этом поколении, впервые на Ultra-чипе. Первое поколение против пятого — разница не только в кремнии: софт под матричные операции (cuBLAS, TensorRT-LLM, континуальный батчинг в vLLM) настраивался восемь лет; под Apple MLX — около двух.
| M5 Max | M5 Ultra | RTX PRO 6000 Blackwell | |
|---|---|---|---|
| Память | до 128 ГБ | до 512 ГБ | 96 ГБ GDDR7 ECC |
| Пропускная способность | 614 ГБ/с | 1 200 ГБ/с | 1 792 ГБ/с |
| Матричные блоки | нейроускоритель × 40 ядер, 1-е поколение | нейроускоритель × 80 ядер, 1-е поколение (впервые на Ultra) | 752 тензорных ядра, 5-е поколение, нативный FP4 |
| Цена | от $2 499 | от $5 499 (256 ГБ реалистично $10-18k) | аренда, не покупка |
Цифры — из официального датащита NVIDIA и пресс-релиза Apple, не из маркетинговых слайдов «в X раз быстрее». RTX PRO 6000 я действительно арендую у Selectel — для этого разбора она не герой, а просто реальная точка сравнения, а не гипотетическая.
Что говорит инженерное сообщество, не только вендоры
В треде на Hacker News под анонсом (91 комментарий) инженеры, реально гоняющие оба типа железа, формулируют то же самое разными словами: «RTX 6000 обгонит Mac Studio почти во всём. Пропускная способность памяти — единственное, где Apple конкурентоспособна» — и отдельно: «M5 отлично подходит для инференса; но для обучения — поддержка форматов данных и реальная производительность ограничены, по сравнению с RTX 6000 Pro на вычислениях и обучении это не близко». Есть и слух (9to5mac, процитирован в нескольких ветках): Apple пропускает M6 Pro/Max/Ultra и ускоряет выпуск M7 — чипа, переработанного именно под ИИ — уже в следующем году. Один из комментаторов прямо: «Я бы пропустил M5 и M6 для LLM-задач и подождал год до M7».
Кому что реально нужно
Один пользователь, одна большая модель, decode-тяжёлая работа (генерация длинного текста, не обработка длинных промптов), приватность и энергоэффективность важнее скорости — 512 ГБ единой памяти Apple реальный аргумент, не маркетинг: сопоставимый объём памяти на дискретных картах стоит на порядок дороже. Обучение, дообучение, prefill длинных промптов, параллельная обработка нескольких запросов — решают тензорные ядра и восьмилетняя экосистема CUDA, а не гигабайты.
Оговорка себе: формула 2 × N × T для prefill — грубое приближение, не учитывает квадратичный рост внимания на очень длинном контексте (там интенсивность выше — отдельный разговор). И это не универсальный вердикт, а разбор «какое железо для какой задачи», без вендорской стороны.