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

Пропускная способность памяти и пределы скорости

Какова максимальная скорость decode этой модели на этом GPU?

Узнайте, почему скорость decode у LLM ограничена пропускной способностью памяти, а не вычислениями, сравните GPU для одной и той же конфигурации и сопоставьте измерение с пределом.

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

1 · Модель

Параметры
8,19 млрд
Слои
36
Головы
32 для запросов, 8 KV
Размерность головы
128
Максимальный контекст
40 960 токенов
KV cache на токен, 16 бит
147,46 KB/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.

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

Измерение

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

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

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

GB

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

%

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

%

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

Теоретический предел, а не ожидаемая скорость

Минимальное время шага decode

13,28 ms

21,21 GB читается на каждом GPU при 1,6 TB/s.

Предел скорости одной последовательности

75,28 tok/s

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

Всего: 4 последовательности

301,13 tok/s

Токенов в секунду суммарно.

Время чтения весов

10,26 ms

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

Пороговый батч

313

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

Что читает один GPU за шаг

  • Чтение весов16,38 GB77,22 %
  • Чтение KV cache4,83 GB22,78 %

Время шага при росте батча

Каждая дополнительная последовательность добавляет свой KV cache к байтам, которые читает шаг, а веса читаются один раз для всех. Те же пределы при контексте 8 192 токена.

  • 1 последовательность

    11,01 ms

  • 2 последовательности

    11,77 ms

  • 4 последовательности

    13,28 ms

  • 8 последовательностей

    16,31 ms

  • 16 последовательностей

    22,36 ms

  • 32 последовательности

    34,46 ms

  • 64 последовательности

    58,67 ms

  • 128 последовательностей

    107,08 ms

  • 256 последовательностей

    203,89 ms

Та же конфигурация на других GPU

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

  • GB200 NVL72

    377 tok/s

  • GB300 NVL72

    377 tok/s

  • B200 HGX

    363 tok/s

  • B300 HGX

    363 tok/s

  • GH200 144 GB HBM3e

    231 tok/s

  • H200 SXM

    226 tok/s

  • H200 NVL

    226 tok/s

  • GH200 96 GB HBM3

    189 tok/s

  • H100 NVL

    186 tok/s

  • H100 SXM

    158 tok/s

  • A100 80GB SXM4

    96 tok/s

  • H100 PCIe

    94 tok/s

  • RTX PRO 6000 Blackwell Server EditionВыбран

    75 tok/s

  • Примечание: Производитель указывает пиковую производительность этого GPU, не уточняя, включает ли она разреженность. Используется половина значения, как для GPU того же поколения, у которых это указано.

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

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

Сервер

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

Движок

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

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

    = 16,38 GB

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

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

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

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

    = 16,38 GB

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

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

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

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

    = 147,46 KB/token

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

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

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

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

    = 1,21 GB

  3. KV cache

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

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

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

    = 4,83 GB

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

    Оценка

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

    = Расчетный результат: 16,38 GB + Расчетный результат: 4,83 GB + Эвристика: 3,22 GB

    = 24,43 GB

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

    Оценка

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

    = Расчетный результат: 16,38 GB + Эвристика: 3,22 GB

    = 19,6 GB

›Один шаг decode и его пределы
  1. Веса, читаемые на GPU за один шаг

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

    Веса, читаемые на GPU за один шаг = Веса в памяти

    = Расчетный результат: 16,38 GB

    = 16,38 GB

  2. Байт, читаемых на GPU за один шаг

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

    Байт, читаемых на GPU за один шаг = Веса, читаемые на GPU за один шаг + KV cache

    = Расчетный результат: 16,38 GB + Расчетный результат: 4,83 GB

    = 21,21 GB

  3. Время однократного чтения весов

    Теоретический предел

    Время однократного чтения весов = Веса в памяти ÷ Пропускная способность памяти GPU

    = Расчетный результат: 16,38 GB ÷ Официальная спецификация: 1,6 TB/s

    = 10,26 ms

  4. Минимальное время одного шага

    Теоретический предел

    Минимальное время одного шага = Байт, читаемых на GPU за один шаг ÷ Пропускная способность памяти GPU

    = Расчетный результат: 21,21 GB ÷ Официальная спецификация: 1,6 TB/s

    = 13,28 ms

  5. Предел скорости одной последовательности

    Теоретический предел

    Предел скорости одной последовательности = 1 ÷ Минимальное время одного шага

    = 1 ÷ Теоретический предел: 13,28 ms

    = 75,28 tok/s

  6. Предел скорости всех последовательностей

    Теоретический предел

    Предел скорости всех последовательностей = одновременные последовательности ÷ Минимальное время одного шага

    = Ваши данные: 4 ÷ Теоретический предел: 13,28 ms

    = 301,13 tok/s

›Пороговые точки
  1. Батч, с которого главными становятся вычисления

    Теоретический предел

    Батч, с которого главными становятся вычисления = (Пиковая вычислительная мощность, плотная × 1 000 000 000 000 ÷ Пропускная способность памяти GPU) × эффективных бит на параметр ÷ 8 ÷ 2

    = (Оценка: 500 TFLOPS × 1 000 000 000 000 ÷ Официальная спецификация: 1,6 TB/s) × Официальная спецификация: 16 bit/param ÷ 8 ÷ 2

    = 313,09

Допущения

  • Допущение: KV cache хранится блоками (в vLLM по 16 токенов), поэтому реальная емкость немного ниже показанного числа.
  • Эвристика: Накладные расходы среды выполнения составляют 3,22 GB на 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.
  • Теоретический предел: Это пределы, а не прогнозы. Реальные движки добавляют время на ядра, планирование и сеть: опубликованные измерения vLLM оказались медленнее расчета по той же формуле на 30-270%, а измерения воркшопа на одном GPU на 10-15%.
  • Допущение: Спекулятивное декодирование не учитывается. Оно может выдавать несколько токенов за шаг и превзойти предел для одной последовательности.
  • Допущение: Каждый вес вне экспертов считается прочитанным на каждом шаге. Поиск эмбеддингов читает лишь несколько строк входной таблицы, поэтому настоящий минимум у малых моделей на несколько процентов ниже.
  • Теоретический предел: Батч, при котором вычисления шага занимают столько же времени, сколько чтение памяти, по плотному пику формата, в котором считаются веса. Задержка начинает расти раньше. Для смеси экспертов каждому эксперту нужно столько токенов, предназначенных именно ему.

Продолжить

Модель и настройки переносятся.

13,28 ms75,28 tok/sПредел скорости одной последовательности

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

Каждый шаг decode один раз читает нужные ему веса и KV cache каждой работающей последовательности, поэтому шаг не может быть короче, чем эти байты, поделенные на пропускную способность памяти. Так именно пропускная способность задает скорость ответа модели, задолго до того, как вмешиваются вычисления GPU. Пределы здесь определяет физика. Реальные движки медленнее, и измерение показывает, насколько.

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

Минимальное время шага равно числу байт, которые один GPU читает за шаг, поделенному на его пропускную способность памяти, и из него следуют пределы скорости. Это пределы, а не прогнозы: опубликованные измерения vLLM оказались медленнее на 30-270%. Введите собственное измеренное время на токен, чтобы увидеть, насколько вы близки к пределу. Пороговый батч показывает точку, с которой роль начинают играть вычисления. Для смеси экспертов число байт растет с батчем, потому что затрагивается больше экспертов.

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

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

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

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