Ярлыки

gentoo (19) kde (7) btrfs (5) nvidia (4) portage (3) zfs (3) clementine (2) compiz (2) fs (2) kernel (2) windows (2) zram (2) сеть (2) bash (1) chattr (1) conky (1) cow (1) cpufreq (1) cryptsetup (1) dns (1) dnsmasq (1) dolphin (1) emerald (1) ext4 (1) f2fs (1) ffmpeg (1) firefox (1) kdm (1) kexec (1) kvm (1) lsattr (1) lvm (1) networkmanager (1) noop (1) openrc (1) pulseaudio (1) qemu (1) qtcurve (1) ram (1) reiserfs (1) s2ram (1) samba (1) sed (1) ssd (1) systemd (1) tmpfs (1) vlc (1) webdav (1) zcache (1) игры (1) шифрование (1)

Игры на видеокарте с пассивным охлаждением

При игре на видеокарте Nvidia GeForce GT630 с пассивным охлаждением температура видеочипа быстро подбиралась к критическим 90 градусам. Можно было попробовать прицепить к радиатору какую-нибудь вертушку, но куда проще было решить проблему программными средствами.

На всех более-менее современных видеокартах Nvidia есть несколько режимов работы. Их, как минимум, два: режим энергосбережения и режим максимальной производительности. Различаются они максимальными частотами видеочипа и видеопамяти (nvclock и memclock).

# nvidia-settings --query GPUPerfModes

  Attribute 'GPUPerfModes' (locus:0.0): perf=0, nvclock=135, nvclockmin=135, nvclockmax=405,
  nvclockeditable=0, memclock=405, memclockmin=405, memclockmax=405, memclockeditable=0,
  memTransferRate=810, memTransferRatemin=810, memTransferRatemax=810, memTransferRateeditable=0
  ; perf=1, nvclock=135, nvclockmin=135, nvclockmax=901, nvclockeditable=1, memclock=800,
  memclockmin=800, memclockmax=800, memclockeditable=1, memTransferRate=1600,
  memTransferRatemin=1600, memTransferRatemax=1600, memTransferRateeditable=1
  Attribute 'GPUPerfModes' (locus:0[gpu:0]): perf=0, nvclock=135, nvclockmin=135, nvclockmax=405,
  nvclockeditable=0, memclock=405, memclockmin=405, memclockmax=405, memclockeditable=0,
  memTransferRate=810, memTransferRatemin=810, memTransferRatemax=810, memTransferRateeditable=0
  ; perf=1, nvclock=135, nvclockmin=135, nvclockmax=901, nvclockeditable=1, memclock=800,
  memclockmin=800, memclockmax=800, memclockeditable=1, memTransferRate=1600,
  memTransferRatemin=1600, memTransferRatemax=1600, memTransferRateeditable=1
Здесь видно, что данная видеокарта может работать на максимальных частотах в 405 МГц nvclock и 810 Мгц memclock в режиме энергосбережения, и на 901 МГц nvclock и 1600 МГц memclock в режиме максимальной производительности. Естественно, в 3D-играх видеокарта переходит в режим максимальной производительности, поднимая частоты, что и приводит к усиленному нагреву.

Утилиты Nvidia не позволяют установить произвольные частоты для видеочипа и видеопамяти. Поэтому приходится действовать хитрее: нужно заставить видеокарту всегда работать в режиме энергосбережения. Однако через утилиты Nvidia нельзя даже принудительно установить энергосберегающий режим. Но сделать это можно через файлы конфигурации Xorg - достаточно добавить в секцию "Device" 2 строчки:
Option         "Coolbits" "13"
Option         "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"

 После этого видеокарта начнёт работать в режиме энергосбережения. Вот только постоянные скачки частот от минимальных к максимальным ощутимо просаживают производительность даже в работе с оконным менеджером KWin. Поэтому лучше зафиксировать частоты на максимально возможных для энергосберегающего режима (здесь это 405 МГц nvclock и 810 МГц memclock).  Это можно сделать уже в утилите Nvidia:


Чтобы не делать это после каждого логина вручную, достаточно поместить в автозагрузку KDE такой скрипт:
#!/bin/bash

nvidia-settings --assign [gpu:0]/GPUPowerMizerMode=1

exit 0

Комментариев нет:

Отправить комментарий