Files
gpu-fan-ctrl/README.md
T

70 lines
2.8 KiB
Markdown
Raw Normal View History

# GPU Fan Controller — Delta QFR1212GHE
Автоматическое управление вентилятором на Tesla V100-PCIE-32GB (1 или 2 карты) по температуре GPU.
2026-11-07 15:19:34 +03:00
Вентилятор обдувает обе карты. Скрипт определяет количество карт и берёт `max(temp)` для логики режимов.
Burst-детекция срабатывает если `max(temp1, temp2)` растёт на ≥3°C за 2 секунды.
## Подключение
| Вентилятор | Arduino Uno |
|---|---|
| красный (+12V) | к блоку питания |
| чёрный (GND) | GND Arduino |
| жёлтый (tach) | D2 |
| синий (PWM) | D9 |
| синий (PWM) | **отключить** (не подтягивать!) |
## Установка
```bash
git clone ...
2026-11-07 15:19:34 +03:00
sudo cp scripts/gpu_fan_ctrl.sh /root/
sudo chmod +x /root/gpu_fan_ctrl.sh
sudo cp systemd/gpu-fan-ctrl.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now gpu-fan-ctrl.service
2026-11-07 15:19:34 +03:00
tail -f /var/log/gpu_fan.log
```
## Ручное управление
```bash
stty -F /dev/ttyUSB0 115200
echo "6" > /dev/ttyUSB0 # полная
echo "3" > /dev/ttyUSB0 # средний
echo "s" > /dev/ttyUSB0 # статус
echo "RPM" > /dev/ttyUSB0 # обороты
```
## Режимы
2026-11-07 15:19:34 +03:00
| Режим | PWM | Температура (эффективная, с учётом гистерезиса) |
|---|---|---|
| STOP | 10000 | — |
| STANDBY | 8000 | < 23°C |
| LOW | 5000 | 23–28°C |
| MED | 3000 | 28–33°C |
| HIGH | 2500 | 33–39°C |
2026-11-07 15:19:34 +03:00
| FULL | 0 (2 мин) | ≥ 45°C ИЛИ рост ≥ 3°C/2с |
> Пороги в коде: TH_COLD=25, TH_LOW=30, TH_MED=35, TH_HIGH=40, TH_BURST=45.
> Гистерезис 2°C оттягивает переключение вниз для стабильности.
> FULL режим удерживается 2 минуты даже при снижении температуры.
## Логика выбора источника температуры
1. **1+ NVIDIA GPU** — мониторинг всех GPU, берётся `max(temp)` по всем картам.
2. **0 NVIDIA GPU** — фоллбэк на материнские `thermal_zone`, `max(temp)` по всем зонам.
## Логика режимов
- **FULL (6)** — при `max(temp) ≥ 45°C` или быстрый рост ≥3°C за 2 сек → удерживается 2 мин.
- **HIGH/MED/LOW/STANDBY (5/4/3/2)** — обычные пороги с 2°C гистерезисом.
- Режим вентилятора применяется ко всем картам одновременно (один физический вентилятор).
## Подпись
Собрано при участии Qwen3.8-35B-A3B-Q4_K_M @ Tesla V100 32GB (PID 3666)
на debi9.