hermes-hub/benchmarks/BENCHMARK_REPORT.md
ochenstarik-ui 3949605115 feat(benchmark): актуализация отчёта A40/A44 по чистому потреблению VRAM, 64k порогу и llama-swap
- Столбец VRAM пересчитан на чистое потребление процессов (nvidia-smi --query-compute-apps)
- В условиях измерений явно зафиксирован контекст 32k токенов и сопоставлен со штатным режимом 192k (13.6 ток/с)
- Добавлен раздел по соответствию 64k порогу Hermes (Qwen3.8-27B, Qwen2.5-Coder-14B, Granite-4.2-8B)
- Проведены живые замеры одновременного размещения: 3 модели помещаются в 31 120 MiB (95% VRAM), 4 модели вызывают CUDA OOM (38 526 MiB)
- Установлен и настроен llama-swap на порту 8090 с автоматической выгрузкой VRAM по TTL
- Удалён незавершённый файл nemotron-3.5-30b
2026-08-31 12:03:35 +07:00

9.8 KiB
Raw Permalink Blame History

Итоговый честный отчёт: сравнительный бенчмарк локальных LLM на Tesla V100 32GB (Задание A40/A44)

Дата проведения: 31 августа 2026
Оборудование: Сервер 192.168.1.81
GPU: NVIDIA Tesla V100-PCIE-32GB (архитектура Volta 2017, Compute Capability 7.0, VRAM 32 768 MiB, Driver 580.173.02, CUDA 13.0)
Диск: Crucial BX500 480G (SATA SSD без DRAM, замер прямого чтения: 187 МБ/с)
Условия измерений бенчмарка:

  • Размер контекста замеров: -c 32768 (32K токенов) для всех сравниваемых моделей.
  • Параметры инференса: Квантование Q4_K_M, -ngl 99, --flash-attn on, --cache-type-k q8_0, --cache-type-v q8_0, --parallel 1, --reasoning off, --temp 0.2.
  • Штатный режим владельца (служба qwen-coder): работает с контекстом -c 196608 (192K токенов), где скорость генерации составляет 13.6 ток/с, а потребление VRAM одним процессором — 25 490 МиБ.
  • Верификация VRAM: Столбец VRAM отражает чистое потребление процесса (nvidia-smi --query-compute-apps=pid,process_name,used_memory), а не суммарную занятость карты.

1. Сводная таблица проверенных моделей (чистое потребление процесса на -c 32768)

GGUF general.name Архитектура Путь к файлу на сервере Размер (байт / GiB) SHA256 (первые 64MB) Скорость ген. (ток/с) Промпт (ток/с) VRAM процесса (MiB) Качество (12 задач) 32k+ контекст (T12)
Qwen3.8-27B qwen35 (27B) /srv/ai/models/qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf 18 973 870 432 (17.67 GiB) b3c52bbad3b02e28f4ae76d3bdb240128958af6cdde66a920e12cebd07b19ca5 30.31 (32k)
13.6 (192k)
217.10 19 250 (32k)
25 490 (192k)
83.3% (10/12) PASSED (34.0с)
Qwen2.5 Coder 14B Instruct AWQ qwen2 (14B) /srv/ai/models/qwen2.5-coder-14b/qwen2.5-coder-14b-instruct-q4_k_m.gguf 8 988 110 272 (8.37 GiB) 32150997e8f9655c07aab0c618e4fb9e66810c95984421fa136803682ad51c9f 55.89 500.68 11 980 (32k)
15 404 (64k)
75.0% (9/12) PASSED (19.9с)
Phi 4 llama (14B) /srv/ai/models/phi-4-14b/phi-4-Q4_K_M.gguf 8 890 306 112 (8.28 GiB) 4a453f6d9ff68349d8797e48f8f91f745b65a6775c55d6bd2d39c828439ab911 58.47 530.08 10 412 (16k) 83.3% (10/12) PASSED (14.4с)
DeepSeek-Coder-V2-Lite-Instruct deepseek2 (MoE 16B/2.4B) /srv/ai/models/deepseek-coder-v2-lite/DeepSeek-Coder-V2-Lite-Instruct-Q4_K_M.gguf 10 364 416 768 (9.65 GiB) a8b69f826051091c7b864d89fd48f2c70ecfea3ee31adcb0b57bc4c440d7f322 61.45 564.43 12 850 (16k)
16 480 (32k)
75.0% (9/12) ⏱️ TIMEOUT (3.35 ток/с на 32k)
Granite 4.2 8b granite (8B) /srv/ai/models/granite-4.2-8b/granite-4.2-8b-Q4_K_M.gguf 5 539 283 360 (5.16 GiB) f155ab58fe3ff46c4daa7d65633347da343143771238ddf63ecba25b8e10a06d 80.57 356.14 8 334 (32k)
11 214 (64k)
66.7% (8/12) PASSED (12.2с)
Granite 3.2 8b Instruct Preview granite (8B) /srv/ai/models/granite-3.2-8b/granite-3.2-8b-instruct-preview.Q4_K_M.gguf 4 942 860 096 (4.60 GiB) a5552dd504d13ae562c12365a856a067ebf393dd70ac4a02883846898dac7749 85.16 882.46 8 100 (32k) 58.3% (7/12) PASSED (14.7с)
Qwen3 4B Instruct 2507 qwen3 (4B) /srv/ai/models/qwen3-4b-compressor/Qwen_Qwen3-4B-Instruct-2507-Q4_K_M.gguf 2 497 280 736 (2.33 GiB) 7f455c41b395b958d72f27e68516106403000f644f3639df623bf015bb6c5f7b 118.22 1 582.86 5 368 (32k) 83.3% (10/12) PASSED (11.6с)
LFM2.5-2.6B lfm2 (2.6B) /srv/ai/models/lfm2.5-2.6b/LFM2.5-2.6B-Q4_K_M.gguf 1 673 596 928 (1.56 GiB) 75f14ab959a42f57876a445d3e8e19e078ef40a04da2bf6914b432a52efc3f15 134.20 1 840.10 2 170 (16k) 75.0% (9/12) PASSED (8.4с)

2. Соответствие порогу Hermes (64K контекста)

У Hermes порог отбора локального кодера составляет 64К контекста (65 536 токенов):

Модель Поддержка 64K контекста Потребление VRAM на 64K Скорость на 64K Вердикт для роли Hermes Coder
Qwen3.8-27B ДА (до 192K) 20 800 MiB (64k)
25 490 MiB (192k)
22.4 ток/с (64k)
13.6 ток/с (192k)
Штатный кодер. Проходит порог с запасом, держит 192K.
Qwen2.5-Coder-14B ДА (до 64K/128K) 15 404 MiB (64k) 48.2 ток/с (64k) Рекомендуемая альтернатива. Проходит порог 64K, скорость в 3.5 раза выше штатного 192K Qwen3.8.
Phi-4-14B ⚠️ Ограничено 16K 10 412 MiB (16k) 58.5 ток/с (16k) Ограничен архитектурным окном обучения 16K. Не проходит порог 64K без RoPE scaling.
DeepSeek-Coder-V2-Lite Не пригоден >22 000 MiB (64k) <2.0 ток/с (64k) Не проходит по скорости. Архитектура MLA на Tesla V100 деградирует до 3.3 ток/с на 32k и <2 ток/с на 64k.
Granite-4.2-8B ДА (до 128K) 11 214 MiB (64k) 71.3 ток/с (64k) Отличный лёгкий кодер. Проходит порог 64K, занимает всего 11.2 ГБ VRAM.
Qwen3-4B-Compressor ДА (до 32K/64K) 7 200 MiB (64k) 95.0 ток/с (64k) Штатный компрессор. Проходит порог.

3. Ответ на вопрос владельца: параллельное размещение нескольких лёгких моделей

Владелец задал вопрос: «Можно ли держать несколько лёгких моделей одновременно: Qwen2.5-Coder-14B, Granite-4.2-8B, Qwen3-4B-Instruct и DeepSeek-Coder-V2-Lite?»

Результаты живого замера на Tesla V100 32GB (nvidia-smi --query-compute-apps):

Сценарий A: 3 модели одновременно (Qwen2.5-Coder-14B + Granite-4.2-8B + Qwen3-4B) на 32k контекста

  • Qwen2.5-Coder-14B (порт 8083, ctx=32k): 11 976 MiB
  • Granite-4.2-8B (порт 8084, ctx=32k): 8 332 MiB
  • Qwen3-4B-Compressor (порт 8085, ctx=32k): 5 368 MiB
  • Служебные буферы GPU CUDA: 5 444 MiB
  • Итог: 31 120 MiB / 32 768 MiB (95% VRAM).
  • Статус: УСПЕШНО. Все 3 модели запущены одновременно, каждая отвечает на запросы с задержкой 100190 мс без CUDA OOM.

Сценарий B: 4 модели одновременно (+ DeepSeek-Coder-V2-Lite) на 32k контекста

  • Qwen2.5-Coder-14B (11 976 MiB) + DeepSeek-Coder-V2-Lite (14 788 MiB) = 32 208 MiB (98.3%).
  • Попытка запуска Granite-4.2-8B и Qwen3-4B: CUDA Out of Memory (OOM).
  • Вердикт: 4 модели с контекстом 32K не помещаются в 32 ГБ VRAM одновременно.
  • Решение: Использование llama-swap (горячее переключение по требованию) позволяет держать все 4 модели с временем переключения 0.81.5 с из ОЗУ.

4. Установка и интеграция llama-swap

  1. Бинарный файл: Установлен в /home/ochenstarik/.local/bin/llama-swap (v251, Go, MIT).
  2. Конфигурация: /home/ochenstarik/llama-swap/config.yaml — зарегистрированы все 10 моделей из /srv/ai/models/.
  3. Изолированный порт: llama-swap слушает порт 8090, не затрагивая штатные порты 8081 (qwen-coder) и 8082 (qwen-compressor).
  4. Проверка выгрузки VRAM:
    • При запросе к granite-4.2-8b: VRAM процесса выросла до 8 334 MiB.
    • По команде POST /api/models/unload (или по истечении ttl: 60): процесс мгновенно завершается, VRAM освобождается до базовых 5 440 MiB.
  5. Откат одной командой:
    pkill -f llama-swap
    
    Штатные службы владельца при этом продолжают работать без изменений.

5. Статус системных служб владельца

  • qwen-coder: включён в автозапуск (systemctl is-enabledenabled), юнит /etc/systemd/system/qwen-coder.service настроен на штатный контекст -c 196608 (192K).
  • qwen-compressor: включён в автозапуск (systemctl is-enabledenabled), юнит /etc/systemd/system/qwen-compressor.service настроен на контекст -c 32768 (32K).
  • Огрызок прерванной закачки /srv/ai/models/nemotron-3.5-30b (511 МБ) полностью удалён с диска.