Linux Изменение частоты памяти в Ubuntu 20.04 на 30xx серии, на _нескольких_ картах
с помощью GreenWithEnvy я могу регулировать fan и настройки разгона и вольтажа на карте gpu:0 (memory, gpu, pl), но не могу на gpu:1, поскольку она не отображается в GreenWithEnvy.
Через командную строку я могу регулировать разгон GPU,
но облазив практически всё, до чего дотянулся, _не нашел_ как сделать разгон памяти под Ubuntu из командной строки, потому-что при
разгон памяти не меняется.
Вопрос следующий:
Как в Ubuntu изменить разгон памяти на 2-ой, 3-ей и пр картах?
PS. Если тема избитая, ткните плиз. Вроде все облазил.
krozz
Друг форума
nvidia-settings -a [gpu]/GPUMemoryTransferRateOffset[2]=500
Сначала в Nvidia X Server смотрите в каком стейте (Perfomance Level) карта под нагрузкой работает и этот стэйт вписываете на место двойки. Если разные карты на разных стэйтах, то указываете для каждой карты дублируя строку и прописывая номер карты:
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[2]=500
qubepool
Свой человек
nvidia-settings -a [gpu]/GPUMemoryTransferRateOffset[2]=500
Сначала в Nvidia X Server смотрите в каком стейте карта под нагрузкой работает и этот стэйт вписываете на место двойки. Если разные карты на разных стэйтах, то указываете для каждой карты дублируя строку и прописывая номер карты:
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[2]=500
krozz
Друг форума
В разделе PowerMizer видеокарты смотрите номер активного Perfomance Levels.
PS. Хотя странный момент, иногда надо указывать номер +1. Попробуйте и так, и эдак.
chdr
Друг форума
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=xxx nvidia-settings -a [gpu:0]/GPUGraphicsClockOffsetAllPerformanceLevels=xxxx
Если вы лочите ядро (—lock-gpu-clocks/-lgc) то power limit (—power-limit) не меняйте, лока ядра достаточно, поэтому чтобы снизить pl просто выставляете лок по ядру ниже.
И самое главное (сам об это споткнулся когда новый риг собирал), что у разных тулов разный индекс карт, то есть
это могут быть совсем разные карты (у меня так было и я блин где-то час убил пока не понял что по индексу 0 были разные карты и риг постоянно зависал после применения разгона, оказалось что часть данных выставляясь в другую карту которая подобный разгон не держала и поэтому вешала риг)
Чтобы более менее было понятно, вот мой алгоритм для разгона 1660s (все делает скрипт на самом деле)
1. Выставляю power limit через лок ядра
3. Разгон ядра через core offset, для эфира он не нужен, поэтому ставлю 0 (можно не трогать по умолчанию стоит 0)
пс. Сначала попробуйте разгон по памяти сделать через приложение Nvidia X Server, там найдите свою карту и там на одном из опций (PowerMizer вроде) будет возможность изменить memory/core offset, если это будет не активно, значит вы не включили возможность оверклокинга для карты, это нужно делать один раз через nvidia-xconfig
qubepool
Свой человек
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=-1004
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffsetAllPerformanceLevels=0
не проходят на 2-ой карте, остальные выполняются.
После каждой выполненной команды пишутся подтверждения, после этих двух нет.
Вот что получается.
Вложения
krozz
Друг форума
не проходят на 2-ой карте, остальные выполняются.
После каждой выполненной команды пишутся подтверждения, после этих двух нет.
Вот что получается.
Ну это все просто, к первой карте подключен монитор, ко второй — нет. Вы xorg.conf правили?
Самое простое, попробуйте ко второй карте переходник hdmi-vga подключить или какой эмулятор монитора.
qubepool
Свой человек
воткнул в этот же монитор (у него 2 displayports) в другую карту, но не хочет чего-то он находится автоматом.
Попробую продублировать его в xorg.conf для 2-ого устройства.
krozz
Друг форума
воткнул в этот же монитор (у него 2 displayports) в другую карту, но не хочет чего-то он находится автоматом.
qubepool
Свой человек
Да, конечно. Попробую завтра (сегодня вечером) воткнуть HDMI переходник на DVI в эту карту. С подсоединенным в эту карту, темже дисплеем, через displayport, не хочет монитор как-либо проявляться.
Вообще 2 карты nvidia с разными дисплеями должны же одновременно работать в ubuntu?
Shatll
Друг форума
chdr
Друг форума
не проходят на 2-ой карте, остальные выполняются.
После каждой выполненной команды пишутся подтверждения, после этих двух нет.
Вот что получается.
у вас на второй карте не разрешен оверклокинг, нужно перегенерить /etc/X11/xorg.conf как вам писали выше.
сначала удаляем файл
и перезагружайтесь. Если после перезагрузки стало как будто монитор не подключен в систему, значит в xorg.conf основная карта стала другой, переткните в другую карту шнур монитора. После этого должны появиться настройки разгона для второй карты.
И еще забыл написать, что у меня скрипт также переключает карту в режим Maximum Performance (на вашем скрине это выпадающее меню Preferred mode)
по документации значение 0 это Adaptive, а значение 2 это Auto
Ну и один лайфхак)) У меня иногда вис риг, прям совсем, то есть по ваттметру комп включен и даже карты/проц крутят вентилятор и по ваттметру потребление как на холостом ходу. Подключаешь монитор — не работает, просто черный экран. Зайти по ssh с другой машины не заходит. Долго ломал голову и читал системные логи, в итоге какая-то ежечасная кроновская задача запускалась и иногда валила систему, и уже не помню как но вычислил на 99% что это была Ubuntu Updater, который каждый час проверял наличие обновление и раз в несколько дней мог зафэйлиться и положить систему. Поэтому рекомендую вам выключить проверку обновлений, там где то есть менюшка где надо выставить интервал в never.
raydouglass / nvidia-tdp.service
The original inspiration for this gist can be found here.
Set Nvidia power limit after boot
These instructions will create a systemd service that runs after booting up, to automatically invoke nvidia-smi to set the power limit.
Normally any set power limit is reset between reboots.
Reducing the power limit to ~80-90% may increase longevity in cases where the gpu is expected to run 24/7 at 100% load, for instance in scientific computing or mining. On the other hand, and increased power limit may increase performance and yield better overclocking results.
Check your current power settings
First, check your current power settings with
Example output on RTX 2080 TI:
==============NVSMI LOG============== Timestamp : Sun Nov 7 17:02:10 2021 Driver Version : 495.44 CUDA Version : 11.5 Attached GPUs : 1 GPU 00000000:41:00.0 Power Readings Power Management : Supported Power Draw : 291.63 W Power Limit : 300.00 W Default Power Limit : 300.00 W Enforced Power Limit : 300.00 W Min Power Limit : 100.00 W Max Power Limit : 366.00 W Power Samples Duration : 2.40 sec Number of Samples : 119 Max : 313.22 W Min : 284.31 W Avg : 296.45 W
The field of interest is Power Limit , which will be reduced from 300 W to 275 W below.
Set up a service for systemd
- Save the files nvidia-tdp.service and nvidia-tdp.timer below to /etc/systemd/system
- -pm 1 enables persistance mode
- Edit -pl 275 to what is appropriate for your gpu
Example output after reboot:
> sudo nvidia-smi -q -d POWER ==============NVSMI LOG============== Timestamp : Sun Nov 7 17:21:16 2021 Driver Version : 495.44 CUDA Version : 11.5 Attached GPUs : 1 GPU 00000000:41:00.0 Power Readings Power Management : Supported Power Draw : 276.79 W Power Limit : 275.00 W Default Power Limit : 300.00 W Enforced Power Limit : 275.00 W Min Power Limit : 100.00 W Max Power Limit : 366.00 W Power Samples Duration : 2.40 sec Number of Samples : 119 Max : 283.82 W Min : 237.65 W Avg : 273.43 W
The procedure above will set the same power limit to all nvidia gpus on your system. Use flags -i 0 , -i 1 and so on, when calling nvidia-smi to select gpu 0, gpu 1. For instance:
ExecStart=/usr/bin/nvidia-smi -pm 1 && /usr/bin/nvidia-smi -pl 275 -i 0 && /usr/bin/nvidia-smi -pl 250 -i 1
would set the first gpu to 275 W and the second to 250 W.