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, а не гигабайты.