2026-10-11 17:09:06 +03:00
|
|
|
|
# GPU Fan Controller — Delta QFR1212GHE
|
|
|
|
|
|
|
2026-10-15 20:51:18 +03:00
|
|
|
|
Автоматическое управление вентилятором на Tesla V100-PCIE-32GB (1 или 2 карты) по температуре GPU.
|
2026-11-07 15:19:34 +03:00
|
|
|
|
Вентилятор обдувает обе карты. Скрипт определяет количество карт и берёт `max(temp)` для логики режимов.
|
|
|
|
|
|
Burst-детекция срабатывает если `max(temp1, temp2)` растёт на ≥3°C за 2 секунды.
|
2026-10-11 17:09:06 +03:00
|
|
|
|
|
|
|
|
|
|
## Подключение
|
|
|
|
|
|
|
|
|
|
|
|
| Вентилятор | 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
|
2026-10-11 17:09:06 +03:00
|
|
|
|
|
|
|
|
|
|
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
|
2026-10-11 17:09:06 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Ручное управление
|
|
|
|
|
|
|
|
|
|
|
|
```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 | Температура (эффективная, с учётом гистерезиса) |
|
2026-10-11 17:09:06 +03:00
|
|
|
|
|---|---|---|
|
|
|
|
|
|
| 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 гистерезисом.
|
|
|
|
|
|
- Режим вентилятора применяется ко всем картам одновременно (один физический вентилятор).
|
2026-10-11 17:09:06 +03:00
|
|
|
|
|
|
|
|
|
|
## Подпись
|
|
|
|
|
|
|
|
|
|
|
|
Собрано при участии Qwen3.8-35B-A3B-Q4_K_M @ Tesla V100 32GB (PID 3666)
|
|
|
|
|
|
на debi9.
|