Nvidia smi команды – контроль и разгон графических карт NVIDIA в Linux

Контроль и мониторинг ваших Nvidia GPU во время майнинга

Подробности
Опубликовано: 04.03.2016 10:49

Существует целый ряд доступных инструментов, которые могут позволить вам контролировать и управлять различными настройками ваших GPU, большинство из которых имеют удобный пользовательский интерфейс для того, чтобы упростить работу с ними. Однако, при майнинге иногда удобнее иметь контроль поведением GPU прямо из командной строки, чтобы иметь возможность  выполнять команды. Для видеокарт Nvidia существует Nvidia System Management Interface (Nvidia-smi) — утилита командной строки, которая является простым и эффективным способом управления и мониторинга Nvidia GPU. С помощью Nvidia-smi вы можете, например, управлять состоянием питания видеокарты, получить дополнительную производительность от видеокарты, не работающей в режиме максимальной производительности, при майнинге криптовалюты, не прибегая к ее разгону.

Теперь пришло время показать Вам несколько полезных трюков с использованием консольной утилиты  Nvidia-smi для проверки и изменения максимального TDP (ограничения мощности), который данный графический процессор может использовать, а так же способ как постоянно контролировать температуру GPU и его энергопотребление и сохранять эти данные в лог-файл для дальнейшего анализа.

Утилита Nvidia-smi является частью драйверов для видеокарт от Nvidia и вы можете ее найти установленной в папке «c:\Program Files\NVIDIA Corporation\NVSMI\» если у вас установленна ОС Windows. Вам следует запустить командную строку (CMD) и перейти в эту папку, для того чтобы иметь возможность работать с этой утилитой и выполнять команды. Затем вам потребуется запустить Nvidia-smi с некоторыми параметрами, в зависимости от того, что вы хотите сделать. Если вы хотите поработать с определенным GPU в системе с несколькими видеокартами, вам нужно указать ID устройства.

Например, если вы хотите узнать Power limit (максимальное энергопотребление) вашего первого NVidia GPU в системе, запустите утилиту с такими параметрами:

nvidia-smi -i 0 --format=csv --query-gpu=power.limit

Если вы не указали параметр -i, который отвечает за ID видеокарты в системе, то вы получите Power limit для всех ваших видеокарт. Теперь начинается самое интересное, изменяя Power limit для ваших GPU на более низкое значение, вы сможете уменьшить энергопотребление видеокарт без влияния на производительность майнинга или с ее незначительным снижением. Таким образом, вы сможете получить лучшую энерго эффективность при майнинге на ваших видеокартах от Nvidia.

В следующем примере мы установим предел потребляемой мощности 175W для первого GPU в системе, при максимальной 275W, которая прописана по-умолчанию в BIOS-е видеокарты.

nvidia-smi -i 0 -pl 175

Следующий полезный пример, которым мы хотим поделиться, это проверка температуры Nvidia GPU с помощью консоли, которая будет обновляться 1 раз в секунду и записываться в LOG файл, для того чтобы мы могли проанализировать результаты позже. Используем команду для отображения температуры первого графического адаптера в системе с обновлением каждые 1000 миллисекунд (1 сек.)

nvidia-smi -i 0 --loop-ms=1000 --format=csv,noheader --query-gpu=temperature.gpu

Для того, чтобы остановить отображение температуры в градусах Цельсия, нажмите CTRL+C. Если вы хотите, чтобы результат записывался в текстовый файл, то введите следующую команду:

nvidia-smi -i 0 --loop-ms=1000 --format=csv,noheader --query-gpu=temperature.gpu > temperature.txt

Точно так же как вы можете получить отчет о текущей потребляемой мощности каждого GPU Nvidia в Ваттах, например каждую секунду. С помощью данного способа можно очень точно получать отчет по потреблению электроэнергии, не прибегая к аппаратным средствам, так как контроль потребляемой мощности реализован на аппаратном уровне во всех современных Nvidia GPU. Все что от вас потребуется, это выполнить следующую команду:

nvidia-smi -i 0 --loop-ms=1000 --format=csv,noheader --query-gpu=power.draw

Для того, чтобы остановить вывод энергопотребления просто нажмите CTRL+C, если вам требуется, чтобы результаты сохранялись в лог-файл, введите следующую команду:

nvidia-smi -i 0 --loop-ms=1000 --format=csv,noheader --query-gpu=power.draw > powerusage.txt

Настройка максимального энергопотребления вашего NVidia GPU может быть полезна для достижения наилучшего соотношения производительности к потреблению энергии при добыче криптовалют, а так же для того, чтобы сравнить энергопотребление при майнинге на различных алгоритмах. Инструмент nvidia-smi имеет и некоторые другие полезные функции, которые могут быть использованы. Стоит так же отметить, что изменения, внесенные данной утилитой, не являются постоянными, и они будут нуждаться в повторном применении после перезагрузки компьютера. Однако вы можете автоматизировать процесс с помощью создания простого .bat файла с нужной командой и запуская его непосредственно перед началом майнинга.

cryptoage.com

Как выжать дополнительную производительность при майнинге Ethereum на видеокартах от Nvidia

Подробности
Опубликовано: 05.03.2016 08:15

Существует небольшая хитрость, которая может помочь вам получить некоторое количество дополнительного хешрейта из ваших Nvidia GPU при майнинге Ethereum или любого другого зависимого от памяти видеокарты алгоритма, хотя скорее-всего он не повлияет на многие другие алгоритмы майнинга. По-умолчанию, при запуске Compute приложений на GPU это не ведет к максимальному приоритету работы видеокарты с данным приложением, а это означает, что вы могли бы добиться большей производительности от своих Nvidia GPU не прибегая к их разгону.

Благодаря консольной утилите под названием Nvidia System Management Interface (nvidia-smi), о которой мы говорили в одной из прошлых статей и настраивали с помощью нее максимальное энергопотребление видеокарт, а так же выводили мониторинг температуры GPU, вы можете принудительно настроить ваши GPU для работы в P0 режиме (высший приоритет), вместо установленного по умоллчанию для работы с Compute приложениями режима P2. Имейте ввиду, что данная настройка повлияет только на выполнение вычислительных приложений с помощью GPU, так что это никак не повлияет на производительность видеокарт в играх, для которых по умолчанию установлен режим P0.

Напоминаем, что утилита nvidia-smi является частью драйверов для видеокарт от Nvidia и хранится в «С:\Program Files\NVIDIA Corporation\NVSMI\» если у вас установлена ОС Windows. Так что вам потребуется запустить командную строку (CMD) и перейти с помощью нее в эту папку для того, чтобы у вас была возможность выполнять команды. Для начала вам потребуется выполнить следующую команду для проверки текущего P-состояния ваших GPU.

nvidia-smi -q -d PERFORMANCE

Обратите внимание, что P режим меняется динамически, поэтому, для проверки, перед выполнением команды вам понадобится запущенный в режиме майнинга Ethminer, для того, чтобы увидеть P-режим при активной нагрузке.

После проверки максимального состояния питания, которое ваши Nvidia GPU используют при выполнении Compute приложений, которые используют OpenCL или CUDA, вам нужно проверить максимальные частоты, которые видеокарта использует в состоянии P0. Вы сможете сделать это с помощью следующей команды:

nvidia-smi -q -d SUPPORTED_CLOCKS | more

После чего вы увидите список всех поддерживаемых частот в разлличных режимах питания, которые использует ваша видеокарта. Нет необходимости проверять весь список, все что нужно отметить, это частоты для чипа и памяти в верхней части списка. В нашем примере мы будем использовать видеокарту GTX 970 от Gigabyte и нам нужны значения 3505 Мгц для видеопамяти и 1455 для чипа GPU. Далее мы заставим видеокарту принудительно использовать максимальные рабочие частоты в состоянии P0. Для этого выполните следующую команду:

nvidia-smi -ac 3503,1455

Имейте ввиду, что приведенная выше команда будет применять данные настройки ко всем GPU в системе, и как правило, это не должно составить проблем для большинства систем, поскольку, как правило, в них устанавливаются одинаковые видеокарты. Однако бывают случаи, когда риг собран на базе различных GPU, в этом случае вам понадобится настраивать каждый GPU по отдельности, добавляя ID карты при выполнении команды. Это делается путем добавления параметра -i, который может быть числом, начиная с 0 для первого в системе графического адаптера, и так далее. В примере, показанном на скриншоте выше, мы имеем в системе два различных GPU, поэтому нам требуется установить P0 состояния для каждой из видеокарт по отдельности двумя различными командами.

nvidia-smi -i 0 -ac 3503,1455 nvidia-smi -i 1 -ac 3503,1392

Наверняка у вас возник вопрос, насколько нам удалось увеличить производительность при майнинге ethereum на Nvidia GPU, следуя инструкция приведенным выше. Это довольно легко проверить, сначала запустив майнинг Эфира до внесения изменений, а затем после. На видеокарте Gigabyte Nvidia GTX 970 WF30C, которую мы использовали при написании данного материала, мы обычно получаем производительность в районе 17.31 MHS/sec при майнинге Ethereum, когда GPU находится в состоянии P2. После внесения изменений нам удалось получить порядка 19.98 MHS/sec. Так что, это довольно интересный трюк с точки зрения повышения производительности майнинга Ethereum, при увеличении энергопотребления всего на 10 W, для Nvidia GPU.

cryptoage.com

nvidia — Shell script & amp; & Ldquo; SMI-NVIDIA & Rdquo;

У меня проблема с shell-скриптом и командой «nvidia-smi»!

Я создал сценарий, который был защищен от перегрева процессора на моем Ubuntu Server 14.04.2. Сценарии работают хорошо, но мне нужно заставить его работать и с моими 4-мя GPU. Я довольно зеленый, когда дело доходит до сценариев bash, поэтому я искал команды, которые облегчили бы мне редактировать скрипт. Я нашел и испытал много из них, но никто, кажется, не дает мне результат, который мне нужен! Я покажу вам команды и результаты ниже. И скрипты.

Мне нужна команда, которая перечисляет GPU так же, как это делает команда «датчиков» с «lm-sensor». Так что я могу использовать «grep» для выбора GPU и установить переменную «newstring» (временные две цифры). Я пробовал пару дней, но мне не повезло. В основном потому, что команда «nvidia-smi -lso» и / или «nvidia-smi -lsa» больше не существует. Подумайте, что это экспериментальная команда.

Вот команды, которые я нашел и протестировал & amp; вывод:

Эта команда показывает номер гнезда GPU, который я мог бы ввести в строку «str», но проблема в том, что temp. находится на следующей строке. Я играл с флагом «A 1», но не смог поместить его в скрипт:

# nvidia-smi -q -d temperature | grep GPU
Attached GPUs                       : 4
GPU 0000:01:00.0
        GPU Current Temp            : 57 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A
GPU 0000:02:00.0
        GPU Current Temp            : 47 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A
GPU 0000:03:00.0
        GPU Current Temp            : 47 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A
GPU 0000:04:00.0
        GPU Current Temp            : 48 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A

Эта команда показывает температуру в первой строке, но нет номера графического процессора !?

# nvidia-smi -q -d temperature | grep "GPU Current Temp"
        GPU Current Temp            : 58 C
        GPU Current Temp            : 47 C
        GPU Current Temp            : 47 C
        GPU Current Temp            : 48 C

Эта команда показывает выбранный номер GPU, но пока нет вывода, показывающего номер / гнездо / идентификатор GPU!?

# nvidia-smi -q --gpu=0 | grep "GPU Current Temp"
GPU Current Temp            : 59 C

И эти команды показывают номер GPU и результаты в той же строке! Но, нет температуры !!

# nvidia-smi -L
GPU 0: GeForce GTX 750 Ti (UUID: GPU-9785c7c7-732f-1f51-..........)
GPU 1: GeForce GTX 750 (UUID: GPU-b2b1a4a-4dca-0c7f-..........)
GPU 2: GeForce GTX 750 (UUID: GPU-5e6b8efd-7531-777c-..........)
GPU 3: GeForce GTX 750 Ti (UUID: GPU-5b2b1a2f-3635-2a1c-..........)

И команда, которая показывает все 4 частоты GPU. без чего-либо еще. Но мне нужен номер GPU / socket / ID!?

# nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
58
47
47
48

То, что я желаю! Если бы я мог получить команду, которая сделала такой вывод, я был бы самым счастливым парнем:

GPU 0: GeForce GTX 750 Ti   GPU Current Temp            : 58 C
GPU 1: GeForce GTX 750   GPU Current Temp            : 47 C
GPU 2: GeForce GTX 750   GPU Current Temp            : 47 C
GPU 3: GeForce GTX 750 Ti   GPU Current Temp            : 48 C

Вот вывод, что «датчики» от «lm-датчиков». Как вы можете видеть информацию об устройстве, и темп находится в одной строке:

# -----------------------------------------------------------
# coretemp-isa-0000
# Adapter: ISA adapter
# Physical id 0:  +56.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 0:         +56.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 1:         +54.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 2:         +54.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 3:         +52.0°C  (high = +80.0°C, crit = +100.0°C)
# -----------------------------------------------------------

Вот часть скрипта, которая нуждается в изменении. Как упоминалось выше, это работает с использованием команды «датчики» из приложения «lm-sensor». «lm-sensors» не показывает температуру GPU. при запуске CUDA и подключенного драйвера, так что нам нужна другая команда, чтобы получить список графических процессоров и темп. показано на рисунке. Возможно, вы знаете другой способ исправить мою проблему, если, пожалуйста, не стесняйтесь показывать мне .:

[...]
echo "JOB RUN AT $(date)"
echo "======================================="

echo ''
echo 'CPU Warning Limit set to => '$1
echo 'CPU Shutdown Limit set to => '$2
echo ''
echo ''

sensors

echo ''
echo ''

for i in 0 1 2 3
do

  str=$(sensors | grep "Core $i:")
  newstr=${str:17:2}

  if [ ${newstr} -ge $1 ]
  then
    echo '===================================================================='         >>/home/......../logs/watchdogcputemp.log
    echo $(date)                                                                        >>/home/......../logs/watchdogcputemp.log
    echo ''                                                                             >>/home/......../logs/watchdogcputemp.log
    echo ' STATUS WARNING - NOTIFYING : TEMPERATURE CORE' $i 'EXCEEDED' $1 '=>' $newstr >>/home/......../logs/watchdogcputemp.log
    echo ' ACTION : EMAIL SENT'                                                         >>/home/......../logs/watchdogcputemp.log
    echo ''                                                                             >>/home/......../logs/watchdogcputemp.log
    echo '===================================================================='         >>/home/......../logs/watchdogcputemp.log

# Status Warning Email Sending Code
# WatchdogCpuTemp Alert! Status Warning - Notifying!"

/usr/bin/msmtp -d --read-recipients </home/......../shellscripts/messages/watchdogcputempwarning.txt

    echo 'Email Sent.....'
  fi
[...]

Надеюсь, там есть гуру-сценарист, готовый решить эту проблему. Приятного выходные!

С уважением, Дан Хансен Дания

.

askubuntu.ru

Сценарий оболочки и «nvidia-smi» — нужна правильная команда / флаг!

У меня проблема с shell-скриптом и командой «nvidia-smi»!

Я создал сценарий, который как защита от перегрева процессора на моем Ubuntu Server 14.04.2. Сценарии работают хорошо, но мне нужно заставить его работать и с моими 4-мя GPU. Я довольно зеленый, когда дело доходит до сценариев bash, поэтому я искал команды, которые облегчили бы мне редактировать скрипт. Я нашел и испытал много из них, но никто, кажется, не дает мне результат, который мне нужен! Я покажу вам команды и результаты ниже. И скрипты.

Мне нужна команда, которая перечисляет GPU так же, как это делает команда «датчиков» с «lm-sensor». Так что я могу использовать «grep» для выбора GPU и установить переменную «newstring» (временные две цифры). Я пробовал пару дней, но мне не повезло. В основном потому, что команда «nvidia-smi -lso» и / или «nvidia-smi -lsa» больше не существует. Думайте, что это экспериментальная команда.

Вот команды, которые я нашел и протестировал & amp; вывод:

Эта команда показывает номер гнезда GPU, который я мог бы ввести в строку «str», но проблема в том, что temp. находится на следующей строке. Я играл с флагом «A 1», но не смог поместить его в скрипт:

# nvidia-smi -q -d temperature | grep GPU
Attached GPUs                       : 4
GPU 0000:01:00.0
        GPU Current Temp            : 57 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A
GPU 0000:02:00.0
        GPU Current Temp            : 47 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A
GPU 0000:03:00.0
        GPU Current Temp            : 47 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A
GPU 0000:04:00.0
        GPU Current Temp            : 48 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A

Эта команда показывает температуру в первой строке, но нет номера графического процессора!?

# nvidia-smi -q -d temperature | grep "GPU Current Temp"
        GPU Current Temp            : 58 C
        GPU Current Temp            : 47 C
        GPU Current Temp            : 47 C
        GPU Current Temp            : 48 C

Эта команда показывает выбранный номер GPU, но пока нет вывода, показывающего номер / гнездо / идентификатор GPU!?

# nvidia-smi -q --gpu=0 | grep "GPU Current Temp"
GPU Current Temp            : 59 C

И эти команды показывают номер GPU и результаты в той же строке! Но нет температуры!

# nvidia-smi -L
GPU 0: GeForce GTX 750 Ti (UUID: GPU-9785c7c7-732f-1f51-..........)
GPU 1: GeForce GTX 750 (UUID: GPU-b2b1a4a-4dca-0c7f-..........)
GPU 2: GeForce GTX 750 (UUID: GPU-5e6b8efd-7531-777c-..........)
GPU 3: GeForce GTX 750 Ti (UUID: GPU-5b2b1a2f-3635-2a1c-..........)

И команда, которая показывает все 4 часа графического процессора. без чего-либо еще. Но все же мне нужен номер GPU / socket / ID!?

# nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
58
47
47
48

Чего я желаю! Если бы я мог получить команду, которая сделала такой вывод, я был бы самым счастливым парнем вокруг:

GPU 0: GeForce GTX 750 Ti   GPU Current Temp            : 58 C
GPU 1: GeForce GTX 750   GPU Current Temp            : 47 C
GPU 2: GeForce GTX 750   GPU Current Temp            : 47 C
GPU 3: GeForce GTX 750 Ti   GPU Current Temp            : 48 C

Вот вывод, что «датчики» от «lm-датчиков». Поскольку вы можете видеть информацию об устройстве, а темп находится в одной строке:

# -----------------------------------------------------------
# coretemp-isa-0000
# Adapter: ISA adapter
# Physical id 0:  +56.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 0:         +56.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 1:         +54.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 2:         +54.0°C  (high = +80.0°C, crit = +100.0°C)
# Core 3:         +52.0°C  (high = +80.0°C, crit = +100.0°C)
# -----------------------------------------------------------

Вот часть скрипта, которая нуждается в изменении. Как упоминалось выше, это работает с использованием команды «датчики» из приложения «lm-sensor». «lm-sensors» не показывает температуру GPU. при запуске CUDA и подключенного драйвера, так что нам нужна другая команда, чтобы получить список графических процессоров и темп. показано на рисунке. Возможно, вы знаете другой способ исправить мою проблему, если, пожалуйста, не стесняйтесь показывать мне.:

[...]
echo "JOB RUN AT $(date)"
echo "======================================="

echo ''
echo 'CPU Warning Limit set to => '$1
echo 'CPU Shutdown Limit set to => '$2
echo ''
echo ''

sensors

echo ''
echo ''

for i in 0 1 2 3
do

  str=$(sensors | grep "Core $i:")
  newstr=${str:17:2}

  if [ ${newstr} -ge $1 ]
  then
    echo '===================================================================='         >>/home/......../logs/watchdogcputemp.log
    echo $(date)                                                                        >>/home/......../logs/watchdogcputemp.log
    echo ''                                                                             >>/home/......../logs/watchdogcputemp.log
    echo ' STATUS WARNING - NOTIFYING : TEMPERATURE CORE' $i 'EXCEEDED' $1 '=>' $newstr >>/home/......../logs/watchdogcputemp.log
    echo ' ACTION : EMAIL SENT'                                                         >>/home/......../logs/watchdogcputemp.log
    echo ''                                                                             >>/home/......../logs/watchdogcputemp.log
    echo '===================================================================='         >>/home/......../logs/watchdogcputemp.log

# Status Warning Email Sending Code
# WatchdogCpuTemp Alert! Status Warning - Notifying!"

/usr/bin/msmtp -d --read-recipients </home/......../shellscripts/messages/watchdogcputempwarning.txt

    echo 'Email Sent.....'
  fi
[...]

Надеюсь, там есть гуру-сценарист, готовый решить эту проблему Хорошие выходные!

С уважением, Дэн Хансен Дания

. Р>     

ubuntugeeks.com

Разгон видеокарт Nvidia и AMD Radeon для майнинга

Закупившись мощной видео картой Nvidia 1060, 1070 или rx 470, 480 для майнинга криптовалют — рано или поздно возникает желание выжать из неё максимум, увеличив скорость вычислений, то есть разогнав частоты памяти — скорость работы процессора не так важна. Это вполне возможно сделать используя специальные программы и инструкцию, которую администрация сайта 1 Эфириум для вас приготовила.

Пошаговая инструкция по разгону видеокарт Nvidia

Всем известно, что можно выжать больше мегахешей с видеокарт, поэтому многие решают сделать небольшой overclock. Благодаря консольной утилите Nvidia System Management Interface (nvidia-smi) можно принудительно настроить ваши GPU для работы в P0 режиме (высший приоритет), вместо установленного по умолчанию для работы с Compute приложениями режима P2, что увеличивает скорость майнинга.

Напоминаем, что утилита nvidia-smi является частью драйверов для видеокарт от Nvidia и хранится в «С:\Program Files\NVIDIA Corporation\NVSMI\» если у вас установлена ОС Windows. Так что вам потребуется запустить командную строку (CMD) и перейти с помощью нее в эту папку для того, чтобы у вас была возможность выполнять команды. Для начала вам потребуется выполнить следующую команду для проверки текущего P-состояния ваших GPU.

nvidia-smi -q -d PERFORMANCE

Обратите внимание, что P режим меняется динамически, поэтому, для проверки, перед выполнением команды вам понадобится запущенный в режиме майнинга Ethminer, для того, чтобы увидеть P-режим при активной нагрузке.

После проверки максимального состояния питания, которое ваши Nvidia GPU используют при выполнении Compute приложений, которые используют OpenCL или CUDA, вам нужно проверить максимальные частоты, которые видеокарта использует в состоянии P0. Вы сможете сделать это с помощью следующей команды:

nvidia-smi -q -d SUPPORTED_CLOCKS | more

После чего вы увидите список всех поддерживаемых частот в разлличных режимах питания, которые использует ваша видеокарта. Нет необходимости проверять весь список, все что нужно отметить, это частоты для чипа и памяти в верхней части списка. В нашем примере мы будем использовать видеокарту GTX 970 от Gigabyte и нам нужны значения 3505 Мгц для видеопамяти и 1455 для чипа GPU. Далее мы заставим видеокарту принудительно использовать максимальные рабочие частоты в состоянии P0. Для этого выполните следующую команду:

nvidia-smi -ac 3503,1455

Имейте ввиду, что приведенная выше команда будет применять данные настройки ко всем GPU в системе, и как правило, это не должно составить проблем для большинства систем, поскольку, как правило, в них устанавливаются одинаковые видеокарты. Однако бывают случаи, когда риг собран на базе различных GPU, в этом случае вам понадобится настраивать каждый GPU по отдельности, добавляя ID карты при выполнении команды. Это делается путем добавления параметра -i, который может быть числом, начиная с 0 для первого в системе графического адаптера, и так далее. В примере, показанном на скриншоте выше, мы имеем в системе два различных GPU, поэтому нам требуется установить P0 состояния для каждой из видеокарт по отдельности двумя различными командами.

nvidia-smi -i 0 -ac 3503,1455 nvidia-smi -i 1 -ac 3503,1392

Теперь узнаем, насколько удалось увеличить производительность при майнинге ethereum на Nvidia GPU, следуя инструкция приведенным выше. Это довольно легко проверить, сначала запустив майнинг Эфира до внесения изменений, а затем после. На видео карте Gigabyte Nvidia GTX 970 WF30C, которую мы использовали при написании данного материала, мы обычно получаем производительность в районе 17.31 MHS/sec при майнинге Ethereum, когда GPU находится в состоянии P2. После внесения изменений нам удалось получить порядка 19.98 MHS/sec. Так что, это довольно интересный трюк с точки зрения повышения производительности майнинга Ethereum, при увеличении энергопотребления всего на 10 W, для Nvidia GPU.

Разгон видеокарт AMD Radeon для майнинга

Тут просто меняем значения таймингов оперативной памяти видеокарты, и алгоритм dagger hashimoto начинает работать куда быстрее. Для майнинга обычно покупают видеокарты RX 470 и RX 480. Они различаются количеством оперативной памяти и её частотой. При покупке видеокарт фирмы AMD Radeon серии RX, обращайте внимание именно на частоту оперативной памяти, если вы собираетесь майнить криптовалюту на dagger hashimoto алгоритме. Именно частота VRAM влияет на Хешрейт. Самая высокая частота видео памяти обычно у восьмигиговых видеокарт. Но соль в том, что мы покупаем видеокарту 4 гб с заниженной частотой оперативной памяти, чтобы её разогнать, плюс подмена таймингов. В совокупности это всё даёт неплохой буст. Можно заставить RX 470 4 gb работать на dagger hashimoto так же как и RX 480 8 gb OC edition.

Софт для прошивки видеокарты

  1. ATIWinflash – Программа, которая сохраняет файл биоса из видеокарты, также прошивает видеокарту.
  2. Polaris Bios Editor – Программа, которая позволяет проводить манипуляции и корректировки значений в фале биоса, выгруженном из видяхи с помощью утилиты ATIWinflash.
  3. GPU-Z – Чисто посмотреть какой фирмы у нас микросхемы оперативной памяти видеокарты.

Внимание: в программе GPU-Z Есть функция сохранения биоса видеокарты, не вздумайте им прошить видяху. Сразу говорю, что будет неудачный исход. Лечится удалением драйверов и прошивкой видеокарты стоковым биосом.

Порядок действий

Запускаем ATIWinflash от имени администратора, и сохраняем биос видеокарты с расширением .rom, если у вас несколько видеокарт подключены одновременно к ферме через райзоры, то имейте в виду, ATIWinflash может отобразить только 3 видеокарты.

Сделайте резервные копии биосов всех видео карт, чтобы если вдруг вы неудачно прошьёте, чтоб можно было откатиться. Запускаем утилиту Polaris Bios Editor, и перед нами появляется окно программы, открываем файл биоса той видеокарты, которую на данный момент решили прошить. Тут начинается самое интересное: в зависимости какая у вас видеокарты, определённым образом меняются тайминги. Давайте я приведу пример на своей видеокарте от фирмы MSI с видеочипом RX 480 на 4 гигабайта с частотой 7000 mHz.

Копируем значение VALUE c 1500 и вставляем в 1625, 1750 и 2000. (Это только для RX480 4GB 7000mHz).

Далее нужно сбавить частоту ядра, для майнинга ETH она не так уж и важна, если у вас RX, а не R7 или R9. В столбике GPU выравниваем значения ступеней частот ядра до 1150 mHz, и так же напряжение. Можно конечно это сделать в MSI Afterburner, но я предпочитаю так – в биосе настроить видеокарту. Это удобно если постоянно приходится пересобирать свои фермы, и на одной «отваливается» программная настройка видео карты. Так же в биосе видеоадаптера можно подправить значения, которые отвечают за скорость оборотов вентиляторов в столбике FAN.

После манипуляций значений в файле биоса, сохраните его с названием типо «msi4804gbmod.rom», чтобы знать, что это модифицированный биос.

Заходим в программу ATIWinflash, кликаем на кнопку Load Image, выбираем наш модифицированный биос, выбираем нужную видеокарту, если у вас их много подключено, и кликаем на кнопку Program.

Оверклокинг памяти видеокарты

Мы прошили видеокартуу, теперь осталось только разогнать память. Заходим в MSI Afterburner и гоним память ползунком с 1750 до 2000.

Убираем напряжение на ядро в самую крайнюю левую позицию ползунка. Хешрейт в дуал майнинге Claymore 9.3 ETH+Decred достигает 28.5mh/sec и 857 mh/sec соответственно.

Насколько это стабильно, вы узнаете через некоторое время, если видео драйвер не откажет, то разгон удался, если отпадёт, то убирайте оверклок. Энергопотребление Rx 480 4Gb в бусте под Эфир достигает 120 ватт по ядру и ещё 30-50 по памяти, в зависимости от разгона.

Видео инструкция по разгону

На примере видеокарты для GPU майнинга – SAPPHIRE NITRO+ RADEON RX 480 8GB и криптовалюты Ethereum (ETH) на этом видеоролике вы можете увидеть покажем полный цикл действий, благодаря которым увеличивается хешрейт и, следственно, прибыль от майнинга, использовав следующие программы:

  • MSI Afterburner
  • ATI WinFlash
  • Polaris BIOS Editor
  • GPU-Z

Изначально видеокарта выдавала 24,6 MH/s, при потреблении 227W. После прошивки BIOS, разгона видеокарты, и даунвольта – получены следующие показатели: 30,4 MH/s, при потреблении 178W. Такое соотношение хешрейта к энергопотреблению считается оптимальным.

Таблица параметров всех видео карт

Все видеокарты для майнинга ethereum: таблица и параметры

1ethereum.ru

cuda — верхняя команда для GPU с использованием CUDA

Еще один полезный подход к мониторингу — использовать ps для фильтрации процессов, которые потребляют ваши графические процессоры. Я использую это много:

ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `lsof -n -w -t /dev/nvidia*`

Это покажет все nvidia GPU-процессы использования и некоторую статистику о них. lsof ... извлекает список всех процессов с использованием графического ядра nvidia, принадлежащего текущему пользователю, и ps -p ... показывает результаты ps для этих процессов. ps f показывает хорошее форматирование для отношений/иерархических отношений между дочерними/родительскими процессами и -o указывает настраиваемое форматирование. Это похоже на просто выполнение ps u, но добавляет идентификатор группы процессов и удаляет некоторые другие поля.

Одним из преимуществ этого метода над nvidia-smi является то, что он отобразит вилки процессов, а также основные процессы, которые используют графический процессор.

Однако одним из недостатков является ограничение процессов, принадлежащих пользователю, который выполняет команду. Чтобы открыть его для всех процессов, принадлежащих любому пользователю, я добавляю sudo до lsof.

Наконец, я объединяю его с watch для получения непрерывного обновления. Итак, в конце концов, это выглядит так:

watch -n 0.1 'ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvidia*`'

Который имеет выход как:

Every 0.1s: ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvi...  Mon Jun  6 14:03:20 2016
USER      PGRP   PID %CPU %MEM  STARTED     TIME COMMAND
grisait+ 27294 50934  0.0  0.1   Jun 02 00:01:40 /opt/google/chrome/chrome --type=gpu-process --channel=50877.0.2015482623
grisait+ 27294 50941  0.0  0.0   Jun 02 00:00:00  \_ /opt/google/chrome/chrome --type=gpu-broker
grisait+ 53596 53596 36.6  1.1 13:47:06 00:05:57 python -u process_examples.py
grisait+ 53596 33428  6.9  0.5 14:02:09 00:00:04  \_ python -u process_examples.py
grisait+ 53596 33773  7.5  0.5 14:02:19 00:00:04  \_ python -u process_examples.py
grisait+ 53596 34174  5.0  0.5 14:02:30 00:00:02  \_ python -u process_examples.py
grisait+ 28205 28205  905  1.5 13:30:39 04:56:09 python -u train.py
grisait+ 28205 28387  5.8  0.4 13:30:49 00:01:53  \_ python -u train.py
grisait+ 28205 28388  5.3  0.4 13:30:49 00:01:45  \_ python -u train.py
grisait+ 28205 28389  4.5  0.4 13:30:49 00:01:29  \_ python -u train.py
grisait+ 28205 28390  4.5  0.4 13:30:49 00:01:28  \_ python -u train.py
grisait+ 28205 28391  4.8  0.4 13:30:49 00:01:34  \_ python -u train.py

qaru.site

gpu — NVIDIA-SMI потерпел неудачу, поскольку не смог связаться с драйвером NVIDIA

Я запускаю экземпляр AWS EC2 g2.2xlarge с Ubuntu 14.04 LTS. Я хотел бы наблюдать за использованием GPU во время обучения моделям TensorFlow. Я получаю сообщение об ошибке, пытающееся запустить ‘nvidia-smi’.

ubuntu@ip-10-0-1-213:/etc/alternatives$ cd /usr/lib/nvidia-375/bin
ubuntu@ip-10-0-1-213:/usr/lib/nvidia-375/bin$ ls
nvidia-bug-report.sh     nvidia-debugdump     nvidia-xconfig
nvidia-cuda-mps-control  nvidia-persistenced
nvidia-cuda-mps-server   nvidia-smi
ubuntu@ip-10-0-1-213:/usr/lib/nvidia-375/bin$ ./nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.


ubuntu@ip-10-0-1-213:/usr/lib/nvidia-375/bin$ dpkg -l | grep nvidia 
ii  nvidia-346                                            352.63-0ubuntu0.14.04.1                             amd64        Transitional package for nvidia-346
ii  nvidia-346-dev                                        346.46-0ubuntu1                                     amd64        NVIDIA binary Xorg driver development files
ii  nvidia-346-uvm                                        346.96-0ubuntu0.0.1                                 amd64        Transitional package for nvidia-346
ii  nvidia-352                                            375.26-0ubuntu1                                     amd64        Transitional package for nvidia-375
ii  nvidia-375                                            375.39-0ubuntu0.14.04.1                             amd64        NVIDIA binary driver - version 375.39
ii  nvidia-375-dev                                        375.39-0ubuntu0.14.04.1                             amd64        NVIDIA binary Xorg driver development files
ii  nvidia-modprobe                                       375.26-0ubuntu1                                     amd64        Load the NVIDIA kernel driver and create device files
ii  nvidia-opencl-icd-346                                 352.63-0ubuntu0.14.04.1                             amd64        Transitional package for nvidia-opencl-icd-352
ii  nvidia-opencl-icd-352                                 375.26-0ubuntu1                                     amd64        Transitional package for nvidia-opencl-icd-375
ii  nvidia-opencl-icd-375                                 375.39-0ubuntu0.14.04.1                             amd64        NVIDIA OpenCL ICD
ii  nvidia-prime                                          0.6.2.1                                             amd64        Tools to enable NVIDIA Prime
ii  nvidia-settings                                       375.26-0ubuntu1                                     amd64        Tool for configuring the NVIDIA graphics driver
ubuntu@ip-10-0-1-213:/usr/lib/nvidia-375/bin$ lspci | grep -i nvidia
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
ubuntu@ip-10-0-1-213:/usr/lib/nvidia-375/bin$ 

$ inxi -G
Graphics:  Card-1: Cirrus Logic GD 5446 
           Card-2: NVIDIA GK104GL [GRID K520] 
           X.org: 1.15.1 driver: N/A tty size: 80x24 Advanced Data: N/A out of X

$  lspci -k | grep -A 2 -E "(VGA|3D)"
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
    Subsystem: XenSource, Inc. Device 0001
    Kernel driver in use: cirrus
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
    Subsystem: NVIDIA Corporation Device 1014
00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)

Я выполнил следующие инструкции для установки CUDA 7 и cuDNN:

$sudo apt-get -q2 update
$sudo apt-get upgrade
$sudo reboot

=============================================== ========================

После перезагрузки обновите initramfs, запустив ‘$ sudo update-initramfs -u’

Теперь отредактируйте файл /etc/modprobe.d/blacklist.conf в черный список. Откройте файл в редакторе и вставьте следующие строки в конец файла.

blacklist nouveau черный список lbm-nouveau опции nouveau modeset = 0 alias nouveau off псевдоним lbm-nouveau off

Сохранить и выйти из файла.

Теперь установите необходимые инструменты сборки и обновите initramfs и перезагрузитесь снова, как показано ниже:

$sudo apt-get install linux-{headers,image,image-extra}-$(uname -r) build-essential
$sudo update-initramfs -u
$sudo reboot

=============================================== =========================

После перезагрузки выполните следующие команды для установки Nvidia.

$sudo wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run
$sudo chmod 700 ./cuda_7.0.28_linux.run
$sudo ./cuda_7.0.28_linux.run
$sudo update-initramfs -u
$sudo reboot

=============================================== =========================

Теперь, когда система подошла, проверьте установку, выполнив следующее.

$sudo modprobe nvidia
$sudo nvidia-smi -q | head`enter code here`

Вы должны увидеть результат как «nvidia.png».

Теперь запустите следующие команды. $

cd ~/NVIDIA_CUDA-7.0_Samples/1_Utilities/deviceQuery
$make
$./deviceQuery

Однако, «nvidia-smi» по-прежнему не показывает активность GPU, в то время как Tensorflow — это модели обучения:

ubuntu@ip-10-0-1-48:~$ ipython
Python 2.7.11 |Anaconda custom (64-bit)| (default, Dec  6 2015, 18:08:32) 
Type "copyright", "credits" or "license" for more information.

IPython 4.1.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython features.
%quickref -> Quick reference.
help      -> Python own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import tensorflow as tf 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.7.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.7.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.7.5 locally



ubuntu@ip-10-0-1-48:~$ nvidia-smi
Thu Mar 30 05:45:26 2017       
+------------------------------------------------------+                       
| NVIDIA-SMI 346.46     Driver Version: 346.46         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520           Off  | 0000:00:03.0     Off |                  N/A |
| N/A   35C    P0    38W / 125W |     10MiB /  4095MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

qaru.site

Обновлено: 06.02.2019 — 21:03

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *