Энергопотребление фермы LLM: расчет и оптимизация для 7 GPU | AiManual
AiManual Logo Ai / Manual.
25 Янв 2026 Гайд

Семь GPU ревут: считаем, сколько съедает LLM-ферма и как вернуть деньги

Практический гайд по расчету энергозатрат LLM-фермы с 7 GPU. Idle power, пиковая нагрузка до 2500W, оптимизация и реальный ROI.

Когда счет за электричество дороже аренды H100

Вы собрали монстра. Семь GPU трещат по швам, разрывая Llama 3.1-405B на части. Скорость инференса радует, но потом приходит счет. И цифра в нем заставляет задуматься: может, проще было арендовать облако?

Я тоже прошел через это. Моя ферма из 7 RTX 4090 потребляла до 2500 ватт под нагрузкой. В месяц это выливалось в сумму, за которую можно было купить еще одну карту. За год. Безумие.

Но есть хорошая новость: энергопотребление LLM-фермы - не магия, а физика. И ее можно обмануть.

Самый большой миф: "GPU простаивают - не потребляют". Ложь. 7 RTX 4090 в idle съедают 270W. Это как постоянно включенный мощный компьютер. 24/7.

Сначала математика: сколько на самом деле стоит ваш инференс

Без цифр все разговоры об оптимизации - болтовня. Давайте считать.

1 Замеряем реальное потребление

Вам нужны три цифры:

  • Idle power (система включена, LLM не работает)
  • Средняя нагрузка (типичный инференс)
  • Пиковая нагрузка (все GPU на 100%)

Для моей системы с 7 RTX 4090, Threadripper 7960X, 256GB RAM цифры такие:

Режим Потребление (W) Примечание
Полный idle 270-300W Только система, карты в P8 state
Инференс Qwen2.5-32B 1400-1800W 4 карты загружены на ~70%
Полная нагрузка (FurMark) 2450-2550W Все 7 карт на 100%, лимит по БП

Как замерить:

# Мониторим потребление GPU в реальном времени
watch -n 2 "nvidia-smi --query-gpu=power.draw --format=csv,noheader | awk '{sum+=\$1} END {print sum \" W\"}'"

# Или сразу все метрики
nvidia-smi -q -d POWER | grep -E "Power Draw|Power Limit"

Не доверяйте только nvidia-smi. Он показывает потребление GPU, но не всей системы. Кулеры, материнка, процессор, диски - все это добавляет 100-300W. Лучший способ - ваттметр в розетку.

2 Считаем деньги

Теперь переводим ватты в рубли. Допустим:

  • Тариф: 8 руб/кВт·ч (актуально на 2026 для Москвы)
  • Ферма работает 12 часов в день с нагрузкой
  • 12 часов в idle

Расчет за месяц (720 часов):

# Простой расчет на Python
hours_per_month = 720
tariff = 8  # руб/кВт·ч

# Среднее потребление
idle_power = 285  # W
load_power = 1600  # W

# 12 часов нагрузки + 12 часов idle = сутки
daily_energy = (12 * load_power + 12 * idle_power) / 1000  # кВт·ч
monthly_energy = daily_energy * 30
monthly_cost = monthly_energy * tariff

print(f"Ежедневно: {daily_energy:.1f} кВт·ч")
print(f"Ежемесячно: {monthly_energy:.1f} кВт·ч")
print(f"Стоимость: {monthly_cost:.0f} руб")

Выходит около 6800 рублей в месяц. За год - 81 600 рублей. Это стоимость еще одной RTX 4090. Каждый год.

Вот почему американцы так заморачиваются с 120V - там тарифы еще выше. Если вы в США, обязательно прочитайте мой гайд "120V - не приговор" - там вся математика для ограниченных сетей.

Оптимизация: не жертвуя скоростью

Самый тупой способ экономии - выключать ферму. Но мы не для этого ее собирали. Нужны умные методы.

3 Настройка состояний питания (P-States)

Современные GPU NVIDIA (Ada Lovelace, Blackwell) умеют уходить в глубокий сон. Но по умолчанию они этого не делают.

Проблема: когда LLM не работает, карты остаются в состоянии P0 (максимальные частоты). Зачем? Никто не знает. Надо это исправить.

# Принудительно переводим все GPU в P8 (минимальное потребление)
sudo nvidia-smi -pm 1  # Включаем управление питанием
sudo nvidia-smi -pl 200  # Устанавливаем лимит 200W (для 4090)

# Автоматический переход в низкие состояния
sudo nvidia-persistenced --persistence-mode

# Проверяем текущее состояние
nvidia-smi -q -d PERFORMANCE | grep "Performance State"

После этих настроек idle потребление упадет с 270W до 180-200W. Экономия: 70W × 12 часов × 30 дней = 25.2 кВт·ч в месяц. Это 200 рублей. Мелочь, но приятно.

Внимание: некоторые фреймворки (особенно старые версии llama.cpp) могут криво работать с P8. GPU не успевает "проснуться" и инференс падает. Тестируйте.

4 Undervolting: магия 90% мощности за 70% энергии

Здесь физика на нашей стороне. Потребление GPU растет квадратично относительно напряжения. Чуть снизили напряжение - сильно снизили нагрев и потребление.

Для RTX 4090 золотая середина:

  • Стандарт: 1.05V, 450W, 2520 MHz
  • Оптимально: 0.95V, 320W, 2400 MHz

Теряем 5% производительности, экономим 30% энергии. Для LLM, где важнее объем VRAM, а не чистая FLOPS, это идеально.

# Используем nvidia-settings (требует X сервер)
nvidia-settings -a "[gpu:0]/GPUGraphicsClockOffset[3]=-200"
nvidia-settings -a "[gpu:0]/GPUMemoryTransferRateOffset[3]=1000"
nvidia-settings -a "[gpu:0]/GPUOverVoltageOffset=0"

# Или сразу для всех карт
for i in {0..6}; do
  nvidia-settings -a "[gpu:$i]/GPUGraphicsClockOffset[3]=-200"
done

Но ручное управление - это каменный век. В 2026 году используем автоматику.

5 Автоматическое масштабирование: включаем GPU только когда нужно

У вас 7 GPU. Сколько реально нужно для вашей модели?

  • Llama 3.1-405B: все 7 (или даже мало)
  • Qwen2.5-32B: хватит 2-3
  • Мелкие модели (до 7B): 1 GPU

Почему держать все карты включенными? Давайте отключать лишние.

# Пример скрипта динамического управления GPU
import subprocess
import psutil
import time

class GPUManger:
    def __init__(self):
        self.total_gpus = 7
        
    def get_required_gpus(self, model_size: str) -> int:
        """Определяем сколько GPU нужно для модели"""
        requirements = {
            "llama-405b": 7,
            "qwen-32b": 3,
            "mistral-8b": 1,
            "phi-3": 1
        }
        return requirements.get(model_size, 1)
    
    def disable_gpu(self, gpu_id: int):
        """Выключаем GPU (через драйвер)"""
        # Это сложно, но можно через unbind драйвера
        with open(f"/sys/bus/pci/devices/0000:01:00.{gpu_id}/remove", 'w') as f:
            f.write('1')
        
    def enable_gpu(self, gpu_id: int):
        """Включаем GPU обратно"""
        subprocess.run(["echo", "1", ">", "/sys/bus/pci/rescan"], shell=True)

# На практике используйте готовые решения

В реальности проще использовать vLLM с возможностью указать конкретные GPU:

# Запускаем только на GPU 0,1,2
CUDA_VISIBLE_DEVICES=0,1,2 python -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Llama-3.1-70B \
  --tensor-parallel-size 3

# Когда нужна большая модель - используем все
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6 python -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Llama-3.1-405B \
  --tensor-parallel-size 7

Инфраструктурные хаки: от охлаждения до тарифов

Охлаждение - это тоже энергия

Ваши вентиляторы и СЖО потребляют 100-300W. При 2500W общей нагрузки это 10-12%. Не мало.

Что делать:

  1. Настройте кривые вентиляторов. GPU при 60°C не нужны 100% обороты. 40-50% хватит.
  2. Используйте водяное охлаждение с пассивным радиатором. Нет вентиляторов - нет потребления.
  3. Зимой грейте помещение фермой. Банально, но работает. Выбрасывали тепло на улицу? Прекратите.

Умные тарифы

В 2026 году почти все регионы России имеют многотарифную систему. Ночью (с 23:00 до 07:00) электричество в 2-3 раза дешевле.

Что можно делать ночью:

  • Обучение моделей (долгий процесс)
  • Пакетный инференс (обработка датасетов)
  • Тестирование и бенчмарки

Простое решение - systemd timer:

# /etc/systemd/system/nightly-inference.timer
[Unit]
Description=Run LLM inference at night

[Timer]
OnCalendar=*-*-* 23:00:00
Persistent=true

[Install]
WantedBy=timers.target

# /etc/systemd/system/nightly-inference.service
[Unit]
Description=Nightly LLM Inference

[Service]
Type=oneshot
ExecStart=/opt/llm/run_nightly_batch.sh
Environment="CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6"

Мониторинг и автоматизация

Без мониторинга все оптимизации бесполезны. Вы не узнаете, работает ли что-то.

Мой стек на 2026:

  1. Prometheus + Node Exporter - базовые метрики системы
  2. DCGM Exporter - метрики NVIDIA GPU (потребление, утилизация, температура)
  3. Grafana - дашборды и алерты
  4. Простые скрипты на Python для автоматического управления
Метрика Целевое значение Что делать если вышли
Idle power > 200W 150-180W Проверить P-states, убить лишние процессы
Температура GPU > 75°C 60-70°C Увеличить обороты или снизить power limit
КПД (токен/ватт) Максимальный Оптимизировать batch size, проверить квантование

Типичные ошибки (как сжечь деньги)

Ошибка 1: Держать ферму включенной 24/7 "на всякий случай". Якобы запуск занимает время. На самом деле современные системы с NVMe загружаются за 30 секунд. Выключайте на ночь.

Ошибка 2: Использовать максимальный power limit. Зачем GPU 4090 450W, если 320W хватает для стабильного инференса? Снижайте лимит.

Ошибка 3: Не мониторить КПД. Скорость - это хорошо, но токен/ватт - лучше. Иногда проще подождать на 30% дольше, но сэкономить 50% энергии.

ROI: когда ферма окупится

Давайте честно. Сборка фермы из 7 RTX 4090 в 2026 году стоит около 2.5-3 млн рублей. Энергопотребление - 80-100к руб/год.

Сравним с облаком (цены на январь 2026):

  • A100 80GB (облако): $3-4/час
  • H100 (облако): $5-7/час
  • 7×RTX 4090 (локально): ~$0.5/час (только электричество)

Математика простая: если вы используете ферму больше 4-5 часов в день, локальный вариант выгоднее уже через 1.5-2 года. Если меньше - возможно, облако дешевле.

Но есть нюанс: облако - это только инференс. Локальная ферма - это еще обучение, эксперименты, полный контроль. И никаких лимитов на использование.

Мой совет: считайте не только электричество. Считайте:

  1. Амортизацию железа (3-5 лет)
  2. Затраты на охлаждение и помещение
  3. Стоимость вашего времени на администрирование
  4. Гибкость (можете ли вы запустить эксперимент в 3 ночи без согласований)

Что в итоге

Ферма из 7 GPU - это не домашний ПК. Это маленькая электростанция. И относиться к ней нужно соответственно.

Самый главный совет: начинайте с мониторинга. Не пытайтесь оптимизировать то, что не можете измерить. Поставьте Grafana, настройте дашборд с потреблением, и через неделю вы увидите, куда утекают деньги.

Второе: автоматизируйте. Скрипт, который выключает лишние GPU ночью, окупится за месяц. Автоматическое масштабирование частот - за два.

И помните: самая дорогая энергия - та, что тратится впустую. Ваши GPU должны либо работать, либо спать. Третьего не дано.

Если собираете ферму с нуля, обязательно прочитайте мой гайд про бюджетную 4-GPU сборку - там много нюансов по энергоэффективному железу. И про тонкую настройку энергопотребления при тестировании.

А если уже столкнулись с проблемами стабильности на многокарточных системах, вот разбор реального кейса с 8× RTX 3090: "Сборка multi-GPU сервера для LLM".

Удачи. И да пребудет с вами низкий idle power.