# 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.