Локальная ИИ-инфраструктура

Память модели и размещение на GPU

Сколько памяти нужно этой модели и поместится ли она на эти GPU?

Оцените модель, контекст и конфигурацию GPU до того, как что-то скачивать или покупать.

Единица размера

1 · Модель

Параметры
8,19 млрд
Слои
36
Головы
32 для запросов, 8 KV
Размерность головы
128
Максимальный контекст
40 960 токенов
KV cache на токен, 16 бит
144 KiB/token
Скрытая размерность
4 096
Словарь
151 936

Значения прочитаны из config.json на Hugging Face 30 октября 2026 г..

Эти значения получены с Hugging Face и не редактируются. Чтобы изменить их, выберите «Изменить значения».

2 · Точность

Сколько бит занимает каждый параметр.

›Опубликованные квантизации

Только для квантизованных форматов.

Задается отдельно от весов. FP8 вдвое сокращает KV cache.

3 · Рабочая нагрузка

Токенов на последовательность: промпт и сгенерированный текст вместе.

токенов

Запросы, которые обрабатываются одновременно, то есть батч.

4 · Оборудование

RTX PRO 6000 Blackwell Server Edition

NVIDIA · Blackwell

Дата-центр

Память

96 GB

GDDR7 · учтено как 96 GiB

Пропускная способность памяти

1 597 GB/s

Макс. мощность

300 to 600 W

Настраивается.

Столбцы сравнивают каждое значение с самым большим GPU в каталоге.

NVLink
Нет
Экземпляры MIG
4
Группа NVLink
Нет, только PCIe
GPU на сервер
до 8

Как GPU встраивается в серверы

Деление этого GPU

MIG

Делится на срезы (памяти: 4, вычислений: 4), до 4 экземпляров на одном GPU. Профили:

  • 1g.24gb
  • 2g.48gb
  • 4g.96gb

С каких срезов может начинаться экземпляр:Вычислено

vGPU for Compute

10 типов с framebuffer от 8 до 96 GB, до 12 vGPU на одном GPU. Нужны лицензия NVIDIA AI Enterprise и гипервизор.

Совместное использование без деления

Time-slicing работает на любом GPU, без изоляции памяти и сбоев между репликами. MPS позволяет совместно использовать GPU целиком, но не экземпляр MIG.

Числовые форматы

FP4FP8FP16BF16TF32FP32
›Характеристики и источники
Память
96 GB[1]
Тип
GDDR7[1]
Пропускная способность памяти
1 597 GB/s[1]
Макс. мощность
300 to 600 W[2]Настраивается.
NVLink
0[3]Не поддерживается.
Экземпляры MIG
4[4]
FP4
4 000 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.
FP8
2 000 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.
FP16 / BF16
1 000 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.
TF32
234 TFLOPS[1]NVIDIA не уточняет, плотное это значение или с разреженностью.

Числовые форматы: FP4, FP8, FP16, BF16, TF32, FP32

Значения для тензорных ядер пиковые, взяты из технических описаний и не отражают производительность приложений.

Источники

Загрузка источников

Всего GPU. Модель делится между ними через tensor parallel, стадии pipeline parallel и реплики, как задано в схеме развертывания ниже.

1 сервер по 8 GPU, последний с 1

Как используется GPU

Разделите каждый GPU на срезы или используйте его совместно для нескольких реплик вместо добавления GPU. Срезы и доли запускают реплики модели: объединить их в группу tensor parallel нельзя.

Одно устройство для нескольких реплик

Несколько реплик на одном устройстве, у каждой своя часть памяти.

Вычислительные экземпляры существуют только внутри экземпляра MIG.
›Схема развертывания

Как модель распределяется между GPU. От этого зависят память на каждом GPU, место под KV cache и число GPU, по схеме деления vLLM.

Стадии pipeline parallel

Делит слои на последовательные блоки, каждый на своем GPU. Между стадиями передается мало данных, поэтому этот способ подходит для GPU без быстрой связи и для серверов, соединенных сетью.

Реплики

Независимые копии модели, у каждой свой KV cache. Последовательности делятся между репликами. Модель со смесью экспертов распределяет своих экспертов по всем репликам.

Размер tensor parallel: 1, то есть число GPU, деленное на число стадий и реплик.

GPU на сервер

Tensor parallel работает внутри сервера. Остальные GPU становятся стадиями pipeline parallel.

Размер decode context parallel

Делит KV cache каждой последовательности по токенам между GPU tensor parallel. Новых GPU не требует, но замедляет decode.

Только для моделей со смесью экспертов.

Допущения среды выполнения›накладные расходы 3 GiB на GPU, доступно 90 %, запас 10 %

Память под контекст CUDA, активации и графы, в единицах, выбранных на странице. Это эвристика.

GiB

Доля памяти GPU, которую может использовать движок инференса. В vLLM по умолчанию 92%.

%

Доля доступной памяти, которая должна остаться свободной, чтобы модель помещалась с запасом.

%

В этой модели нет слоев со скользящим окном.

Помещается с запасом

Нужно 22,76 GiB на GPU. Свободными остаются 63,64 GiB из 86,4 GiB доступных, больше заданного вами запаса 10 %.

Нужная память на GPU

22,76 GiB

из доступных 86,4 GiB

Оставшаяся память на GPU

63,64 GiB

Свободно 73,66 % доступной памяти

Исходный размер весов

15,26 GiB

Параметры × номинальные биты

Общая расчетная память

22,76 GiB

Общая память GPU

96 GiB

Память одного GPU

Память на каждом GPU

Память GPU 96 GiB

  • Веса в памяти15,26 GiB67,04 %
  • KV cache4,5 GiB19,77 %
  • Накладные расходы среды выполнения3 GiB13,18 %

Бюджет памяти

Бюджет памяти
ЧастьПамять
Исходный размер весовПараметры × номинальные биты15,26 GiB
Веса в памяти15,26 GiB
Накладные расходы среды выполнения3 GiB
Модель с накладными расходами среды выполнения18,26 GiB
KV cache4,5 GiB
Всего22,76 GiB

Место под KV cache

Движок мог бы держать KV cache на 496 206 токенов в памяти, которая остается после весов и накладных расходов. Этого хватит на 60,57 последовательности по 8 192 токена.

vLLM выводит это значение при запуске как емкость KV cache. Реальная емкость немного ниже: KV cache хранится блоками.

Число GPU

  • Минимум по памяти

    1

    TP 1

    26,34 % доступной памяти, свободно 63,64 GiB на GPU

    Наименьшее число GPU, память которых вмещает модель при любом делении. Такая схема может не поддерживаться vLLM.

  • Наименьшее допустимое деление

    1

    TP 1

    26,34 % доступной памяти, свободно 63,64 GiB на GPU

    Наименьшее число GPU в схеме, которую принимает vLLM: tensor parallel внутри сервера, стадии pipeline parallel за его пределами.

  • Рекомендуется

    1

    TP 1

    26,34 % доступной памяти, свободно 63,64 GiB на GPU

    Допустимое деление, которое к тому же сохраняет ваш запас.

Каждый GPU должен вместить свою долю, поэтому память нескольких GPU не образует единый пул. Больше восьми GPU обычно означают несколько серверов.

Память на GPU в зависимости от числа GPU

Каждый столбец показывает одно число GPU со схемой, которую для него предпочитают рекомендации vLLM. Линия показывает доступную память. Выберите столбец, чтобы применить это число.

  • Доступно 86,4 GiB
  • Граница запаса
  • Веса в памяти
  • KV cache
  • Накладные расходы среды выполнения
  • Звезда: рекомендуется
  • Ромб: наименьшее допустимое деление
  • Круг: минимум по памяти
  • С обводкой: используется
  • Бледный, пунктир: vLLM не запустится с такой схемой
›Показать таблицей
Память на GPU в зависимости от числа GPU
GPUСхемаНа GPUПомещается
1TP 122,76 GiBПомещается с запасомминимум по памяти, наименьшее допустимое деление, рекомендуется, используется
2TP 212,88 GiBПомещается с запасом
3TP 3vLLM не запустится с такой схемой9,77 GiBПомещается с запасом
4TP 47,94 GiBПомещается с запасом
5TP 5vLLM не запустится с такой схемой7,18 GiBПомещается с запасом
6TP 3 × PP 2vLLM не запустится с такой схемой6,39 GiBПомещается с запасом
7TP 7vLLM не запустится с такой схемой6,3 GiBПомещается с запасом
8TP 85,47 GiBПомещается с запасом
9TP 1 × PP 96,1 GiBПомещается с запасом
10TP 2 × PP 55,27 GiBПомещается с запасом
11TP 1 × PP 115,61 GiBПомещается с запасом
12TP 4 × PP 34,74 GiBПомещается с запасом
13TP 1 × PP 135,13 GiBПомещается с запасом
14TP 2 × PP 74,79 GiBПомещается с запасом
15TP 1 × PP 155,13 GiBПомещается с запасом
16TP 8 × PP 24,23 GiBПомещается с запасом

Что помещается при других контекстах и числе одновременных запросов

Каждая ячейка показывает, сколько памяти нужно одному GPU при таком контексте и числе последовательностей, на заданных вами GPU и схеме. Выберите ячейку, чтобы применить ее.

Последовательности ↓Контекст, в токенах →

Что помещается при других контекстах и числе одновременных запросов
2K4K8K16K32K40Kмаксимум модели
1
4
16
64
128
256
512
1024
  • Галочка: помещается с запасом
  • Треугольник: помещается, но без заданного запаса
  • Крест: не помещается
  • С обводкой: используется

Способы изменить конфигурацию

Запас на рост

Эта конфигурация помещается с запасом. Вот насколько ее можно нагрузить.

  • Контекст можно увеличить до 40 960 токенов при 4 последовательностях

    Тогда: помещается с запасом, 47,17 % доступной памяти

  • Помещается до 52 одновременных последовательностей при 8 192 токена

    Тогда: помещается с запасом, 88,84 % доступной памяти

Развернуть эту конфигурацию

Эти команды написаны для конфигурации, которую вы рассчитали выше, и для выбора, который вы делаете здесь, и меняются вместе с ними. Ничего не меняется за вас: выбор, который перестал работать, сохраняется и помечается, а рядом указаны способы исправления.

Сервер

Способ запуска

Движок

Сервер, который загружает модель.

GPU

Индексы GPU на машине в том виде, как их показывает nvidia-smi, через запятую. Конфигурации нужно 1 GPU.

Как идентифицировать GPU

Индекс зависит от порядка, в котором драйвер находит GPU. UUID привязан к карте.

Эндпоинт

Порт, на котором отвечает эндпоинт. 8000 (по умолчанию)

Принимать подключения на

По умолчанию эндпоинт остается доступным только на этой машине.

Эндпоинт отвечает только на запросы с ключом. Ключ создается на вашей машине и никогда не записывается в команду или ссылку.

Дополнительные параметры

Где хранятся скачанные веса. Если каталог уже существует, повторная загрузка не нужна.

По умолчанию это релиз, для которого написаны команды. latest следует за самым новым.

Что будет запущено

По документацииКонфигурация YSTVGT

vLLM · Docker · 1 GPU, RTX PRO 6000 Blackwell

Стоит обратить внимание

  • Вы рассчитали KV cache fp16 для весов bf16. KV cache в 16 бит занимает одинаковое место в любом из типов, а vLLM хранит его в собственном типе модели, если не указано иное, поэтому команды не навязывают fp16.

16 шагов в 5 этапах. Открывайте по одному или все сразу.

1Проверка оборудования

Посмотрите, что предлагает машина или кластер, прежде чем что-либо менять.
  1. Шаг 1

    Проверка драйвера

    Убедитесь, что драйвер NVIDIA установлен и достаточно новый для программ ниже.

    nvidia-smi

    Что вы увидите

    • Таблица с версией драйвера и версией CUDA не ниже 13.0, которая нужна образу.
    Справка и источники

    Если не работает

    • Если версия CUDA ниже, чем нужно программам, обновите драйвер и проверьте снова.

    Откуда берутся значения

    • Выбранный вами GPU: RTX PRO 6000 Blackwell.
  2. Шаг 2

    Проверка GPU

    Убедитесь, что машина показывает GPU с индексом 0.

    nvidia-smi -L

    Что вы увидите

    • По одной строке на каждый GPU, в каждой указано RTX PRO 6000 Blackwell так, как его называет машина.
    Справка и источники

    Если не работает

    • Если выбранного вами GPU нет в списке, его нет в этой машине или драйвер его не видит.
    • Если названия не совпадают с ожидаемыми, индексы не такие, как вы думаете. Идентифицируйте GPU по UUID, который не зависит от порядка.

    Откуда берутся значения

    • Калькулятор использует 1 GPU.
    • Выбранный вами GPU: RTX PRO 6000 Blackwell.
  3. Шаг 3

    Проверка свободной памяти

    Калькулятор ожидает 22,76 GiB на каждом GPU из 86,40 GiB, которые может использовать движок. Проверьте, что память GPU с индексом 0 свободна.

    nvidia-smi --query-gpu=index,name,memory.total,memory.used,memory.free --format=csv -i 0

    Что вы увидите

    • Почти вся память GPU свободна, не менее 22,76 GiB.

    Что учесть

    • Эти GPU уже могут использоваться другими задачами. Если их память занята, остановите эти задачи или выберите другие GPU, прежде чем начинать.
    Справка и источники

    Откуда берутся значения

    • Калькулятор: нужно 22,76 GiB из 86,40 GiB доступных на каждом GPU.

2Подготовка

Получите доступ к модели, установите то, что нужно серверу, и скачайте сам сервер. Здесь же создается разделенный GPU.

Установка инструментов

  1. Шаг 4

    Проверка Docker

    Убедитесь, что Docker Engine установлен.

    docker --version

    Что вы увидите

    • Версия Docker.
    Справка и источники
  2. Шаг 5

    Установка NVIDIA Container Toolkit

    Нужны права администратора

    Он позволяет контейнерам использовать GPU. Эти команды для Ubuntu и Debian, а для других дистрибутивов см. страницу по ссылке ниже.

    Выполняется после шага 1

    sudo apt-get update && sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2
    curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
        sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    sudo apt-get update
    export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.20.1-1
    sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

    Что вы увидите

    • Пакеты устанавливаются без ошибок.
    Справка и источники
  3. Шаг 6

    Подключение Docker к GPU

    Нужны права администратора

    Зарегистрируйте среду выполнения NVIDIA в Docker и перезапустите его.

    sudo nvidia-ctk runtime configure --runtime=docker
    sudo systemctl restart docker

    Что вы увидите

    • Без ошибок, и Docker снова запускается.

    Что учесть

    • Перезапуск Docker останавливает работающие контейнеры.
    Справка и источники
  4. Шаг 7

    Проверка, что контейнер видит GPU

    Запустите nvidia-smi в контейнере, которому выданы GPU с индексом 0. Ожидаемый результат: только этот GPU.

    docker run --rm --runtime=nvidia --gpus '"device=0"' \
      ubuntu nvidia-smi

    Что вы увидите

    • Таблица с одним GPU, который вы выбрали.
    Справка и источники

    Если не работает

    • Если Docker не запускается с GPU, toolkit не настроен или таких индексов на этой машине нет.
    • Если названия не совпадают с ожидаемыми, индексы не такие, как вы думаете. Идентифицируйте GPU по UUID, который не зависит от порядка.

    Откуда берутся значения

    • --gpus '"device=0"'

      По умолчанию Первые GPU, считая с 0.

Загрузка сервера

  1. Шаг 8

    Загрузка образа

    Скачайте vllm/vllm-openai:v0.32.0 до первого запуска, чтобы при запуске оставалось только загрузить модель.

    docker pull vllm/vllm-openai:v0.32.0

    Что вы увидите

    • Загрузка завершается, и последняя строка называет образ.

    Что учесть

    • Образ занимает несколько гигабайт.
    Справка и источники

3Запуск сервера

Запустите его с рассчитанной вами конфигурацией.
  1. Шаг 9

    Запуск сервера

    Запустите vllm-qwen3-8b с рассчитанной вами конфигурацией: модель Qwen/Qwen3-8B, параллелизм, контекст и выделенная память. При первом запуске скачивается модель, это занимает несколько минут.

    Выполняется после шага 3

    # config YSTVGT
    docker run -d --name vllm-qwen3-8b \
      --runtime nvidia --gpus '"device=0"' \
      --ipc=host \
      -v "$HOME/.cache/huggingface":/root/.cache/huggingface \
      -p 127.0.0.1:8000:8000 \
      vllm/vllm-openai:v0.32.0 \
      --model Qwen/Qwen3-8B \
      --max-model-len 8192 --max-num-seqs 4 \
      --gpu-memory-utilization 0.90

    Что вы увидите

    • Идентификатор контейнера.

    Что учесть

    • При первом запуске скачивается модель и подготавливаются ядра, это занимает несколько минут. До этого сервер не готов.
    Справка и источники

    Если не работает

    • Если запуск останавливается с сообщением о нехватке памяти, конфигурации нужно больше, чем вмещает GPU. Уменьшите контекст или число последовательностей, отдайте движку большую долю GPU или используйте больше GPU. Насколько больше, показывает калькулятор.
    • Если vLLM сообщает, что контекст длиннее, чем может вместить KV cache, уменьшите контекст или число последовательностей.
    • Если vLLM сообщает, что головы внимания не делятся на размер tensor parallel, выберите размер, на который они делятся.
    • Если порт занят, выберите другой в своих настройках.
    • Если Docker не запускается с GPU, toolkit не настроен или таких индексов на этой машине нет.

    Откуда берутся значения

    • -d

      По умолчанию Выбранный вами способ запуска.

    • --name vllm-qwen3-8b

      Из калькулятора Репозиторий выбранной вами модели.

    • --runtime nvidia

      По умолчанию Выбранный вами способ запуска.

    • --gpus '"device=0"'

      По умолчанию Первые GPU, считая с 0.

    • --ipc=host

      По умолчанию Выбранный вами способ запуска.

    • -v "$HOME/.cache/huggingface":/root/.cache/huggingface

      По умолчанию Где хранятся скачанные веса.

    • -p 127.0.0.1:8000:8000

      По умолчанию Порт, на котором отвечает эндпоинт.

    • --model Qwen/Qwen3-8B

      Из калькулятора Репозиторий выбранной вами модели.

    • --max-model-len 8192

      Из калькулятора Заданная вами длина контекста, токенов: 8 192.

    • --max-num-seqs 4

      Вычислено Всего 4 последовательности на 1 реплику.

    • --gpu-memory-utilization 0.90

      Вычислено Заданная вами доля доступной памяти, 90%, делится между 1 репликой на устройстве, с округлением вниз, чтобы доли в сумме никогда не превышали устройство.

    • Репозиторий выбранной вами модели.
    • Заданная вами длина контекста, токенов: 8 192.
    • Заданная вами доля доступной памяти, 90%, делится между 1 репликой на устройстве, с округлением вниз, чтобы доли в сумме никогда не превышали устройство.

4Проверка работоспособности

Дождитесь ответа, задайте вопрос и сравните память с калькулятором.

Проверка эндпоинта

  1. Шаг 10

    Ожидание готовности

    Сервер начинает отвечать на /health, когда модель загружена.

    timeout 900 bash -c 'until curl -fs http://127.0.0.1:8000/health >/dev/null; do sleep 5; done' && echo ready

    Что вы увидите

    • Слово ready, но не сразу: загрузка модели занимает минуту и больше.
    Справка и источники

    Если не работает

    • Если сервер не становится готовым, прочитайте последние строки журнала: модель еще загружается или сервер остановился с ошибкой.
    • Если запуск останавливается с сообщением о нехватке памяти, конфигурации нужно больше, чем вмещает GPU. Уменьшите контекст или число последовательностей, отдайте движку большую долю GPU или используйте больше GPU. Насколько больше, показывает калькулятор.
  2. Шаг 11

    Проверка, что модель обслуживается

    Спросите у сервера, какие модели он обслуживает.

    curl -sS http://127.0.0.1:8000/v1/models

    Что вы увидите

    • Список, в котором есть Qwen/Qwen3-8B.
    Справка и источники

    Если не работает

    • Если ответ 401, ключ в этой оболочке не тот, с которым запускался сервер.
  3. Шаг 12

    Запрос к модели

    Один запрос через эндпоинт, который будут использовать ваши приложения.

    curl -sS http://127.0.0.1:8000/v1/chat/completions \
      -H 'Content-Type: application/json' \
      -d '{"model": "Qwen/Qwen3-8B", "messages": [{"role": "user", "content": "Say hello in five words."}], "max_tokens": 32}'

    Что вы увидите

    • Ответ в формате JSON с сообщением от модели.
    Справка и источники

    Если не работает

    • Если ответ 401, ключ в этой оболочке не тот, с которым запускался сервер.
    • Если сервер не становится готовым, прочитайте последние строки журнала: модель еще загружается или сервер остановился с ошибкой.

Состояние машины

  1. Шаг 13

    Просмотр GPU

    Посмотрите занятую память и нагрузку на GPU с индексом 0, пока сервер работает.

    nvidia-smi --query-gpu=index,name,memory.used,memory.total,utilization.gpu --format=csv -i 0

    Что вы увидите

    • Занятая память близка к той, что выдана движку.
    Справка и источники
  2. Шаг 14

    Просмотр сервера

    Убедитесь, что vllm-qwen3-8b работает, и посмотрите его последние сообщения.

    Выполняется после шага 12

    docker ps --filter name=vllm-qwen3-8b --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
    docker logs --tail 20 vllm-qwen3-8b

    Что вы увидите

    • Сервер работает, и в последних строках его журнала нет ошибок.
    Справка и источники

Сравнение с калькулятором

  1. Шаг 15

    Сравнение с калькулятором

    Калькулятор ожидал 22,76 GiB на каждом GPU, при этом 90% GPU отдается движку. Собственный журнал сервера показывает, сколько ушло на веса и сколько осталось под KV cache.

    Выполняется после шага 12

    docker logs vllm-qwen3-8b 2>&1 | grep -E 'Model loading took|Available KV cache memory|GPU KV cache size'

    Что вы увидите

    • Строки с объемом памяти, который заняли веса, памятью, оставшейся под KV cache, и числом токенов, которое она вмещает.
    Справка и источники

    Откуда берутся значения

    • Калькулятор: нужно 22,76 GiB из 86,40 GiB доступных на каждом GPU.

5Очистка

Остановите сервер и удалите то, что создали эти шаги.
  1. Шаг 16

    Остановка

    Может что-то остановить или удалить

    Остановите vllm-qwen3-8b и освободите GPU.

    Выполняется после шага 9

    docker stop vllm-qwen3-8b && docker rm vllm-qwen3-8b

    Что вы увидите

    • Вывода нет, и GPU свободны.

    Что учесть

    • Эндпоинт перестает отвечать.
    Справка и источники

Расчет

  • Ваши данные
  • Официальная спецификация
  • Расчетный результат
  • Оценка
  • Эвристика
  • Допущение
›Веса
  1. Исходный размер весов

    Расчетный результат

    Исходный размер весов = параметры × номинальных бит на параметр ÷ 8

    = Ваши данные: 8,19 млрд параметров × Официальная спецификация: 16 bit/param ÷ 8

    = 15,26 GiB

  2. Веса в памяти

    Расчетный результат

    Веса в памяти = параметры × эффективных бит на параметр ÷ 8

    = Ваши данные: 8,19 млрд параметров × Официальная спецификация: 16 bit/param ÷ 8

    = 15,26 GiB

›KV cache
  1. KV cache на токен

    Расчетный результат

    KV cache на токен = 2 × слои с KV cache × головы KV × размерность головы × бит KV cache на значение ÷ 8

    = 2 × Ваши данные: 36 × Ваши данные: 8 × Ваши данные: 128 × Ваши данные: 16 bit ÷ 8

    = 144 KiB/token

  2. KV cache на последовательность

    Расчетный результат

    KV cache на последовательность = KV cache на токен × длина контекста

    = Расчетный результат: 144 KiB/token × Ваши данные: 8 192 токена

    = 1,13 GiB

  3. KV cache

    Расчетный результат

    KV cache = KV cache на последовательность × одновременные последовательности

    = Расчетный результат: 1,13 GiB × Ваши данные: 4

    = 4,5 GiB

›Память на GPU и в сумме
  1. Нужная память на GPU

    Оценка

    Нужная память на GPU = Веса в памяти + KV cache + Накладные расходы среды выполнения

    = Расчетный результат: 15,26 GiB + Расчетный результат: 4,5 GiB + Эвристика: 3 GiB

    = 22,76 GiB

  2. Модель с накладными расходами среды выполнения

    Оценка

    Модель с накладными расходами среды выполнения = Веса в памяти + Накладные расходы среды выполнения

    = Расчетный результат: 15,26 GiB + Эвристика: 3 GiB

    = 18,26 GiB

›Помещается ли на GPU
  1. Доступная память на GPU

    Оценка

    Доступная память на GPU = Память GPU × доля доступной памяти ÷ 100

    = Официальная спецификация: 96 GiB × Допущение: 90 % ÷ 100

    = 86,4 GiB

  2. Комфортный предел на GPU

    Оценка

    Комфортный предел на GPU = Доступная память на GPU × (100 − требуемый запас) ÷ 100

    = Оценка: 86,4 GiB × (100 − Допущение: 10 %) ÷ 100

    = 77,76 GiB

  3. Оставшаяся память на GPU

    Оценка

    Оставшаяся память на GPU = Доступная память на GPU − Нужная память на GPU

    = Оценка: 86,4 GiB − Оценка: 22,76 GiB

    = 63,64 GiB

  4. Загрузка доступной памяти

    Оценка

    Загрузка доступной памяти = Нужная память на GPU ÷ Доступная память на GPU × 100

    = Оценка: 22,76 GiB ÷ Оценка: 86,4 GiB × 100

    = 26,34 %

›Место под KV cache
  1. Память, оставшаяся под KV cache, на GPU

    Оценка

    Память, оставшаяся под KV cache, на GPU = max(0, Доступная память на GPU − Веса в памяти − Накладные расходы среды выполнения)

    = max(0, Оценка: 86,4 GiB − Расчетный результат: 15,26 GiB − Эвристика: 3 GiB)

    = 68,14 GiB

  2. Емкость KV cache

    Оценка

    Емкость KV cache = floor(Память, оставшаяся под KV cache, на GPU ÷ KV cache на токен)

    = floor(Оценка: 68,14 GiB ÷ Расчетный результат: 144 KiB/token)

    = 496 206 токенов

  3. Сколько последовательностей такого контекста помещается

    Оценка

    Сколько последовательностей такого контекста помещается = Емкость KV cache ÷ длина контекста

    = Оценка: 496 206 токенов ÷ Ваши данные: 8 192 токена

    = 60,57 ×

›При 1 GPU минимум по памяти, наименьшее допустимое деление, рекомендуется
  1. Нужная память на GPU

    Оценка

    Нужная память на GPU = Веса в памяти + KV cache + Накладные расходы среды выполнения

    = Расчетный результат: 15,26 GiB + Расчетный результат: 4,5 GiB + Эвристика: 3 GiB

    = 22,76 GiB

  2. Доступная память на GPU

    Оценка

    Доступная память на GPU = Память GPU × доля доступной памяти ÷ 100

    = Официальная спецификация: 96 GiB × Допущение: 90 % ÷ 100

    = 86,4 GiB

  3. Комфортный предел на GPU

    Оценка

    Комфортный предел на GPU = Доступная память на GPU × (100 − требуемый запас) ÷ 100

    = Оценка: 86,4 GiB × (100 − Допущение: 10 %) ÷ 100

    = 77,76 GiB

  4. Оставшаяся память на GPU

    Оценка

    Оставшаяся память на GPU = Доступная память на GPU − Нужная память на GPU

    = Оценка: 86,4 GiB − Оценка: 22,76 GiB

    = 63,64 GiB

  5. Загрузка доступной памяти

    Оценка

    Загрузка доступной памяти = Нужная память на GPU ÷ Доступная память на GPU × 100

    = Оценка: 22,76 GiB ÷ Оценка: 86,4 GiB × 100

    = 26,34 %

Допущения

  • Допущение: KV cache хранится блоками (в vLLM по 16 токенов), поэтому реальная емкость немного ниже показанного числа.
  • Эвристика: Накладные расходы среды выполнения составляют 3 GiB на GPU: контекст CUDA, активации и графы. Это эвристика: vLLM измерил 2.57 GiB для модели 8B, значение зависит от движка и настроек. Изменить
  • Допущение: Модели отдается только 90 % памяти GPU. Остальное резервируют движки инференса: в vLLM по умолчанию используется 92% (документация версии 0.32). Изменить
  • Допущение: Модель помещается комфортно, если свободной остается не менее 10 % доступной памяти. Изменить
  • Допущение: NVIDIA указывает память GPU в GB, а физически установлено столько же GiB: у H100 80 GB есть 80 GiB, а nvidia-smi показывает 79.6. Несколько процентов, которые забирают ECC и драйвер, покрываются долей доступной памяти.
  • Допущение: Точность KV cache задается отдельно от точности весов. Квантизация весов не уменьшает ни KV cache, ни накладные расходы. Изменить
  • Допущение: Предполагается, что каждая последовательность одновременно использует весь контекст: это худший случай. Реальные запросы обычно короче. Изменить
  • Допущение: Предполагается, что несколько GPU делят модель через tensor parallel, как в vLLM: веса и головы KV делятся, а накладные расходы среды выполнения несет каждый GPU.
Что еще запустится на этом оборудованииОткроет список моделей для этой конфигурации GPU

Помещается с запасом22,76 GiB / 86,4 GiBнужно / доступно

Почему это важно

Число на карточке модели относится только к весам. Работающая модель хранит еще KV cache, который растет вместе с контекстом и числом одновременных запросов, плюс накладные расходы среды выполнения, и каждый GPU должен вместить свою долю: память нескольких GPU не образует единый пул. Самая частая ошибка при оценке размера: считать только по весам.

Как читать результат

«Помещается с запасом» значит, что на каждом GPU остается свободным заданный вами запас. «Помещается в теории» значит, что модель укладывается в доступную память, но запас меньше заданного. «Не помещается» значит, что на каком-то GPU память закончится. Бюджет памяти показывает каждую часть для всех GPU и для одного. Число GPU считается по рекомендациям vLLM: tensor parallel внутри сервера, стадии pipeline parallel за его пределами. Схема развертывания позволяет разделить GPU иначе и посмотреть, что вмещает каждый вариант.

Локальный ИИ и суверенитет

Запуск модели на оборудовании, которое вы контролируете, служит лишь одним из факторов при решении о суверенитете. Сам по себе он не делает развертывание суверенным и не обеспечивает соответствие GDPR или EU AI Act.

Эти инструменты появились в рамках воркшопа ИИ без облака.

← Все инструменты