Выбор платформы для локального запуска больших языковых моделей (LLM) часто сводится к спору: мощная видеокарта NVIDIA или энергоэффективный Apple Silicon? Мы проанализировали реальные бенчмарки из репозитория GPU-Benchmarks-on-LLM-Inference, где тестировалась модель LLaMA 3 через оптимизированный движок llama.cpp. Разница в производительности между потребительскими решениями и серверным железом, а также между NVIDIA и Apple, оказывается существенной и зависит от размера модели и квантования.
01Скорость генерации: токены в секунду
Главный метрик для пользователя — скорость генерации текста (tokens/s). Чем выше число, тем быстрее вы получаете ответ. Тесты проводились на генерации 1024 токенов. Ниже приведены ключевые результаты для самых популярных конфигураций.
| Железо | Модель | Квантование | Скорость (ток/с) | VRAM |
|---|---|---|---|---|
| RTX 4090 24GB | LLaMA 3 8B | Q4_K_M | 127.74 | ~6 GB |
| RTX 4090 24GB | LLaMA 3 70B | Q4_K_M | OOM | — |
| RTX 4090 24GB * 2 | LLaMA 3 70B | Q4_K_M | 19.06 | ~42 GB |
| H100 PCIe 80GB | LLaMA 3 70B | Q4_K_M | 25.01 | ~42 GB |
| M2 Ultra 192GB | LLaMA 3 70B | Q4_K_M | 12.13 | ~42 GB |
| M2 Ultra 192GB | LLaMA 3 70B | F16 | 4.71 | ~150 GB |
Как видно, одна RTX 4090 легко справляется с 8-миллиардной моделью, выдавая почти 128 токенов в секунду. Однако для 70-миллиардной модели 24 ГБ видеопамяти не хватает (OOM — Out Of Memory). Для запуска 70B-моделей в квантовании Q4 требуется минимум 40-48 ГБ VRAM. Здесь в игру вступают мульти-GPU конфигурации или серверные решения.
02Тестирование prompt evaluation
Вторая важная метрика — скорость обработки входного промпта (prompt eval speed). Это критично для приложений с длинным контекстом, где нужно быстро «прочитать» большой объем данных перед генерацией ответа.
| Железо | Модель | Квантование | Скорость (ток/с) |
|---|---|---|---|
| RTX 4090 24GB | LLaMA 3 8B | Q4_K_M | 6898.71 |
| RTX 4090 24GB * 2 | LLaMA 3 70B | Q4_K_M | 905.38 |
| H100 PCIe 80GB | LLaMA 3 70B | Q4_K_M | 984.06 |
| M2 Ultra 192GB | LLaMA 3 70B | Q4_K_M | 117.76 |
В задаче обработки промпта NVIDIA демонстрирует колоссальное преимущество. RTX 4090 обрабатывает 8B модель почти в 7000 токенов/с. Для 70B модели одна RTX 4090 не подходит, но две карты или один H100 показывают скорость около 900-980 токенов/с. Apple M2 Ultra, несмотря на огромную шину памяти, обрабатывает тот же промпт в 117 токенов/с, что в 8-9 раз медленнее серверных GPU.
03Сборка и запуск llama.cpp
Для получения этих результатов необходимо правильно собрать llama.cpp. Команды сборки различаются для NVIDIA и Apple Silicon из-за использования разных бэкендов (CUDA и Metal соответственно).
Для NVIDIA GPU:
!make clean && LLAMA_CUBLAS=1 make -jДля Apple Silicon:
!make clean && make -jЗапуск генерации текста осуществляется через флаг -ngl 10000, который принудительно загружает все слои модели на GPU. Для Apple Silicon важно учитывать ограничение на выделение памяти: только около 70-78% унифицированной памяти доступно для GPU без падения производительности. Если модель не помещается, система начнет использовать CPU, что резко снизит скорость.
04Apple Silicon: ниша для больших моделей
Apple M-серия проигрывает NVIDIA в скорости, но выигрывает в объеме памяти. M2 Ultra с 192 ГБ унифицированной памяти позволяет запустить даже 70B модель в полном精度 (F16), хотя и с низкой скоростью (4.71 ток/с). Это уникальная возможность, недоступная на большинстве потребительских видеокарт без покупки нескольких устройств.
Однако для 8B моделей M2 Ultra (76.28 ток/с) уступает RTX 4090 (127.74 ток/с) более чем в два раза. Если вам нужна скорость — берите NVIDIA. Если нужен объем памяти для экспериментов с большими моделями на одном устройстве — Apple Silicon.
recommendedMaxWorkingSetSize в выводе программы. Он показывает, сколько памяти реально доступно GPU. На M1 Max 32GB это около 70% от общего объема. Не пытайтесь загрузить модель, превышающую этот лимит, иначе скорость упадет до уровня CPU.05Какое железо кому подойдёт
Выбор зависит от бюджета и задач. В условиях РФ с учетом санкций и сложностей с поставками, ситуация выглядит так:
- Бюджетный сегмент (до 100-150 тыс. руб.): RTX 3090/4090 б/у или новые. RTX 4090 — король для 8B моделей. Для 70B моделей потребуется сборка из двух RTX 3090/4090 (2x24GB), что даст ~19 токенов/с. Это самый доступный способ запустить 70B локально.
- Средний сегмент (200-400 тыс. руб.): RTX 6000 Ada (48GB) или A6000. Одна карта позволяет запустить 70B Q4 с комфортом (18-14 токенов/с). В РФ эти карты можно найти через параллельный импорт, но цена высока.
- Профессиональный сегмент (от 1 млн руб.): H100, A100. H100 PCIe выдает 25 токенов/с для 70B Q4. В РФ купить новые практически невозможно, но можно арендовать на облачных платформах (например, Yandex Cloud, Selectel, или зарубежные через посредников). Для инференса 70B в продакшене это оптимальный выбор.
- Mac Studio/Pro: M2 Ultra (192GB) стоит дорого, но дает уникальный объем памяти. Подходит для разработчиков, которым нужно тестировать модели, не помещающиеся в VRAM, или для работы с очень длинными контекстами. Но для чистой скорости генерации это проигрышный вариант.
Итог: для скорости берите NVIDIA RTX 4090 (для 8B) или связку из 2-4 карт / H100 (для 70B). Для объема памяти и энергоэффективности — Apple M2 Ultra, но будьте готовы к компромиссам в скорости.
Источник: источник (тест/офиц. документация) ↗
