Files
2026-11-07 15:19:34 +03:00

71 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GPU Fan Controller — Delta QFR1212GHE
Автоматическое управление вентилятором на Tesla V100-PCIE-32GB (1 или 2 карты) по температуре GPU.
Вентилятор обдувает обе карты. Скрипт определяет количество карт и берёт `max(temp)` для логики режимов.
Burst-детекция срабатывает если `max(temp1, temp2)` растёт на ≥3°C за 2 секунды.
## Подключение
| Вентилятор | Arduino Uno |
|---|---|
| красный (+12V) | к блоку питания |
| чёрный (GND) | GND Arduino |
| жёлтый (tach) | D2 |
| синий (PWM) | D9 |
| синий (PWM) | **отключить** (не подтягивать!) |
## Установка
```bash
git clone ...
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
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 # обороты
```
## Режимы
| Режим | PWM | Температура (эффективная, с учётом гистерезиса) |
|---|---|---|
| STOP | 10000 | — |
| STANDBY | 8000 | < 23°C |
| LOW | 5000 | 23–28°C |
| MED | 3000 | 28–33°C |
| HIGH | 2500 | 33–39°C |
| 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.