- Способ разгона видеокарты Nvidia в Linux
- Электрический блогнот
- мои заметки на полях
- контроль и разгон графических карт NVIDIA в Linux
- nvidia-smi
- Полезные команды
- Журнал
- Driver Persistence
- Разгон
- Заключение
- Linux для человеков!
- Обзоры
- Фотогалереи
- Помощь при использовании сайта
- Новое из блога
- Разгон и энергосбережение видеокарт nVidia в GNU/Linux
Способ разгона видеокарты Nvidia в Linux
Предисловие
Я не часто играю в игры, и поэтому производительность видеокарты всегда играла для меня второстепенную роль. Но как бы там ни было время от времени натыкаясь на какой-нибудь интересный релиз игры, не могу удержаться что бы не установить его и не поиграть, да и отвлечься от суеты бывает полезно. Так как я являюсь обладателем далеко не топовой видеокарты на чипе Nvidia, для меня довольно остро встал вопрос разгона видеокарты. Вроде бы никаких проблем, если бы не одно НО. Если для пользователей Windows существует целый зоопарк софта предназначенного для разгона видеокарт, то в Linux такого изобилия как оказалось нет. Даже больше того, всё разнообразие ограничивается всего лишь одной утилитой NVClock — для карт Nvidia, и так же одной утилитой AMDOverdriveCtrl — для AMD/ATI. На сайте NVClock меня ждало ещё одно разочарование — последнее обновление утилиты было в 2009 году, и мою карту она соответственно не поддерживает. Тем не менее решение оказалось гораздо ближе, а именно в самом драйвере. Дело в том что панель управления Nvidia имеет свои средства для управления частотой GPU и шины, но из-за соображений безопасности эти настройки скрыты от шаловливых рук пользователей. Далее о том как добраться до настроек.
К делу
Для того чтобы в панели управления появились необходимые пункты, нам необходимо открыть конфигурационный файл X сервера добавить строку: Option «Coolbits» «1» в блок Section «Device», у меня это выглядит так:
Section «Device»
Identifier «Card0»
Driver «nvidia»
Option «RenderAccel» «True»
Option «AddARGBGLXVisuals» «True»
Option «Coolbits» «1»
BusID «PCI:3:0:0»
Option «NoLogo» «True»
EndSection
Теперь после перезагрузки, в панели управления появятся дополнительные пункты настроек:
Переходим на вкладку Clock Frequencies и устанавливаем чекбокс «Enable Overclocking», после чего станет возможным вручную выставлять частоты для GPU и памяти. После того как подберёте оптимальные параметры, запомните их — так как после перезагрузки все настройки собьются, и будет необходимо всё выставлять заново. Что бы избежать этого, я создал скрипт такого содержания:
#!bin/sh
#Включаем оверклокинг
nvidia-settings —assign «[gpu:0]/GPUOverclockingState=1» &&
#2D повышаем частоту
#nvidia-settings —assign «[gpu:0]/GPU2DClockFreqs=*,*» &&
#3D Повышаем частоту пошагово.
nvidia-settings —assign «[gpu:0]/GPU3DClockFreqs=679,831» &&
nvidia-settings —assign «[gpu:0]/GPU3DClockFreqs=686,922» &&
#Выставляем предпочтительный режим(Prefer Maximum Performance)
nvidia-settings —assign «[gpu:0]/GPUPowerMizerMode=1» &
После чего сохранил файл в домашней директории и сделал его исполняемым. Теперь осталось прописать файл в автозапуск любым удобным вас способом и настройки будут устанавливаться автоматически при загрузке системы.
Спасибо всем кто читал. Надеюсь что эта информация хоть не много будет кому-то полезна.
Источник
Электрический блогнот
мои заметки на полях
контроль и разгон графических карт NVIDIA в Linux
Многие геймеры, майнеры и просто любители повозиться с multimedia давно используют видеокарты NVIDIA для своих целей. Используют на «всю катушку». Разработчики видеокарт позволили простым людям создавать программы для запуска на видеокартах, используя мощь всех CUDA ядер. Попутно видеокарты стали комплектоваться оперативной памятью в несколько гигабайт. После этого простая видеокарта превратилась в компьютер-в-компьютере. Поэтому контроль графических карт NVIDIA является первостепенной задачей для тех, кто хочет выжать по максимуму и одновременно добиться того, чтобы карта работала, как можно дольше.
nvidia-smi
Для контроля состояния видеокарты мы будем использовать утилиту nvidia-smi (NVIDIA System Management Interface), которая входит в комплект драйверов производимых компанией NVIDIA для своих карт.
Если у вас Linux, то после установки NVIDIA драйверов nvidia-smi можно найти в папке:
Nvidia-smi является консольной программой (у нее нет графического интерфейса) и для ее запуска необходимо воспользоваться командной строкой.
Полезные команды
С моей точки зрения самой полезным способом запуска nvidia-smi, является запуск без параметров:
вы получите много полезной информации структурированной в виде простенькой таблички. Давайте запусти несколько приложений нагружающих видеокарты и посмотрим, что выдаст nvidia-smi. Для этого воспользуемся примерами, которые поставляются вместе с NVIDIA Cuda Toolkit (установка этого Toolkit описана здесь). Эти примеры точно нагрузят нашу видеокарту 🙂 А так же запустим конвертирование видео из одного формата в другой с помощью утилиты FFmpeg, которая проводит кодирование/раскодирование видео на графическом ускорителе видеокарты.
Глядя на скриншот мы видим, что у нас запущены 4 приложения использующих ресурсы видеокарты:
- Xorg — графическая подсистема Linux. Использует драйвер NVIDIA, поэтому она здесь в списке;
- SimpleGL — пример из Cuda Toolkit;
- marchinCubes — еще пример из Cuda Toolkit;
- FFmpeg — в нашем тесте он занимается конвертированием видео с помощью NVIDIA GPU.
Шапка таблицы дает информацию о названии видеокарты, версии драйвера, текущем режиме работы и температуру. Все дается в понятном виде и дополнительных объяснений не требует. Рассмотрим подробнее раздел Processes, здесь каждый процесс имеет 5 параметров:
- GPU — номер видеокарты на котором приложение запущено (если видеокарта одна, то там будет 0);
- PID — ID процесса, по этому ID вы можете kill’ьнуть процесс обычной командой kill;
- Type — тип приложения:
- «G» — графическое (обычная графика, которая отрисовывается видеокартой);
- «C» — вычислительное, например можно очень эффективно перемножать матрицы на видеокарте (CUDA ядра), но чаще всего подбирают пароли или майнят битки;
- «G+C» — рисует и вычисляет и все это делает с помощью видеокарты.
- Process name — название приложения;
- GPU Memory Usage — сколько видеопамяти занимает приложение.
Чтобы получить максимум информации о состоянии видеокарты наберите:
вывалится огромная «простыня», где вы найдете всю информацию про вашу карточку.
Если установлено несколько видеокарт в системе и нужно получить информацию о какой-то карте конкретно, то нужно указать ID этой карты:
Для того, чтобы получить весь список видеокарт в системе воспользуйтесь командой:
Журнал
Для контроля состояния видеокарты в течение некоторого промежутка времени поможет журнал или log. Nvidia-smi позволяет выводить информацию о требуемых параметрах на экран или в файл для последующего анализа.
Следующая команда будет непрерывно с интервалом в 5 секунд выводить на экран информация о потреблении видеопамяти и температуре GPU:
С помощью опции «-f» можно перенаправить вывод в файл:
Еще один способ смотреть за видеокартой — это запустить nvidia-smi с ключами dmon или pmon.
С помощью dmon можно следить за общими параметрами видеокарты. Я чаще всего использую dmon для контроля загруженности чипов NVDEC/NVENC расположенных в карте NVIDIA и которые отвечают за кодирование и раскодирование видео на аппаратном уровне.
Если хотите журналировать потребление ресурсов видеокарты каждым прорцессом, то можно воспользоваться опцией pmon.
Driver Persistence
Peristence — постоянство. Если приложению нужна видеокарта, то обращение происходит сначала к драйверу, а от драйвера к видеокарте. Современные системы могут выгружать драйверы из памяти (например, понизить энергопотребление). Если приложение требует драйвер, а драйвер в это время выгружен, то система загружает драйвер. На это уходит время. Возникает лаг (lag). Чтобы лагов не было, есть возможность сделать драйвер невыгружаемым:
проверяем статус драйвера»
для того, чтобы вернуть все как было (разрешить выгружать драйвер) делаем:
и сразу же проверяем:
Следует помнить, что если вы меняли настройки видеокарты (частоту, энергопотребление), то перевод/вывод ее в Persistence сбросит все предыдущие настройки.
Разгон
По умолчанию разгон выключен. Вы не можете контролировать частоту графического процессора:
ни скорость вентилятора на видеокарте:
Для того, чтобы в nvidia-settings появилась возможность разгона, нужно добавить в файл
в секцию Section «Device» строку:
и перезагрузить компьютер. После перезагрузки в nvidia-settings станут доступны следующие опции для регулировки разгона:
настройка частоты графического процессора
настройка скорости вращения вентилятора
Следует помнить, что разгон переводит видеокарту в нестандартный режим работы и поэтому контроль ее состояния нужно осуществлять еще тщательнее.
Заключение
В данной заметке мы рассмотрели, как осуществлять контроль и разгон графических карт NVIDIA в Linux. Затронули только самые базовые принципы и лишь слегка погрузились в эту интересную тему. На простых примерах посмотрели, как следить за состоянием видеокарты, как вести логи. Слегка коснулись темы разгона. Правда зачастую уже и этого достаточно, чтобы грамотно задействовать мощь видеокарты.
Источник
Linux для человеков!
Обзоры
Фотогалереи
Помощь при использовании сайта
Новое из блога
Разгон и энергосбережение видеокарт nVidia в GNU/Linux
Для начала опишу самый простой способ который подойдет для десктопа, так как в этом случае не приходится думать о энергосбережении. Данный способ будет работоспособен только при условии что Вы уже установили проприетарный драйвер nvidia и GUI мордочку nvidia-settings к нему. (Обычно устанавливается по зависимостям)
Для начала нужно определиться с тактовой частотой и сделать возможным оверклокинг, так как по умолчанию эта опция отключена.
Для этого нужно открыть файл
и в секцию Device вписать опцию Coolbits.
После чего открыть в домашней директории файл
/.xinitrc и вписать в него следующее:
Останавливаем X сервер и выгружаем ядреный модуль nVidia. Заново стартуем X сервер и видим что в nvidia-settings появилось новое меню под названием Clock Frequencies с помощью которого теперь можно менять частоты графического процессора, видеопамяти в разных режимах (2D, 3D). Теперь нужно определить частоту до которой можно разогнать железку без ущерба стабильности. Я рекомендую делать это с помощью «Auto detect» находящееся в том же самом меню, ибо подбирая частоты наугад вы можете потерять гораздо больше времени прежде чем заставите работать видеокарту стабильно. В моем случае для nVidia GT 240 частоты в 2D режиме (GPU — 270 Mhz, Memory — 162 Mhz). В режиме 3D (GPU — 610 Mhz, Memory — 1123 Mhz). В вашем случае конечно эти значения будут отличаться. Выявив оптимальные частоты в обоих режимах следует их на время запомнить (или записать) потому как они понадобятся для того, чтобы выставлять эти значения при старте системы, так как после рестарта X сервера эти значения будут сбрасываться на умолчальные. Для предотвращения этого откроем уже известный нам
/.xinitrc и приведем его к такому виду заменив мои значения частот на свои.
Думаю ничего объяснять дополнительно не надо. При старте системы все содержимое
/.xinitrc будет выполняться и изменять частоты на нужные нам.
Теперь о PowerMizer.
В моем случае возможны только два режима Power Mizer. Это Adaptive (адаптивный — изменение уровня производительности в зависимости от нагрузки) и Maximum Perfomance (максимальная производительность — работа всегда на повышенных частотах). В Вашем случае опять же их может быть больше, тем более если у Вас ноутбучный видеоадаптер.
Настраивая частоты также невозможно не увидеть, что в меню Power Mizer имеются и уровни производительности. Эти уровни (частоты на которых работает видеокарта) изменяются в соответствии с установленным режимом Power Mizer. Для примера скажу, что в режиме Adaptive при отсутствии нагрузки частоты будут соответствовать «нулевому» уровню и будут минимально возможными, а при запуске 3D приложений частоты поднимутся до максимума и будут соответствовать уровню 2.
Чтобы узнать какие «уровни производительности» доступны для Вашей видеокарты нужно ввести в терминале
Для моей десктопной видеокарты имеются три различных уровня производительности. Отличаются они как Вы уже заметили частотами. Нулевой (perf=0) это самые низкие частоты и самое низкое энергопотребление и соотвественно второй (perf=2) самые высокие частоты и самое высокое энергопотребление.
Для домашнего компа и максимального разгона видеокарты не требуется особой мудрости и нужно лишь выбрать глобальную политику «Всегда использовать максимальные частоты» с помощью Power Mizer Mode добавив код
в самую первую строку уже открытого файла
/.xinitrc. Эту переменную можно поменять и из nvidia-settings, но опять же после рестарта иксов все эти значения сбросятся.
Для пользователей ноутбуков несколько сложнее, так как продлить время жизни от батареи за счет снижения частот GPU тогда когда это нужно — задача первостепенная. Самое плохое то, что у меня нет ноутбука с nVidia карточкой на борту поэтому напишу лишь только теорию. В принципе все шаги описанные выше применимы и для ноутбуков. Разница лишь в том, что в случае с ноутбуком полезно настроить поведение видеокарты при различных источниках питания.
При настройке политик следует задать следующие опции в /etc/X11/xorg.conf в секции Device:
Это будет означать, что при питании от батареи будет использовано максимальное энергосбережение, а при притании от сети частоты будут меняться в зависимости от нагрузки.
Подробнее о приведенных опциях. PowerMizerDefault задает умолчальные политики при питании от батареи. В данном случае 0x3 это режим максимального энергосбережения; 0x1 это максимальная производительность; 0x2 это адаптивный режим;
PowerMizerDefaultAC задает умолчальные политики при питании от сети. Как и в предыдущем случае имеет значения 0xN.
PerfLevelSrc опция задающая уровень производительности при различных источниках питания. Задаются параметры в соответствии со следующим правилом
Учитывая то, что количество доступных профилей Power Mizer и уровней производительности для многих карт будет различным, для достижения результата нужно поиграться с величинами PrefLevelSrc и PowerMizerDefault. У меня лично регулировка частот вообще не работает если ее задавать для определенного источника питания.
Если кто либо разобрался в управлении питанием карт nVidia лучше — жду Ваши комменты.
Источник