Контроль и мониторинг ваших Nvidia GPU во время майнинга
- Подробности
- Опубликовано: 04.03.2016 10:49
Существует целый ряд доступных инструментов, которые могут позволить вам контролировать и управлять различными настройками ваших GPU, большинство из которых имеют удобный пользовательский интерфейс для того, чтобы упростить работу с ними. Однако, при майнинге иногда удобнее иметь контроль поведением GPU прямо из командной строки, чтобы иметь возможность выполнять команды. Для видеокарт Nvidia существует Nvidia System Management Interface (Nvidia-smi) — утилита командной строки, которая является простым и эффективным способом управления и мониторинга Nvidia GPU. С помощью Nvidia-smi вы можете, например, управлять состоянием питания видеокарты, получить дополнительную производительность от видеокарты, не работающей в режиме максимальной производительности, при майнинге криптовалюты, не прибегая к ее разгону.
Утилита 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.
Софт для прошивки видеокарты
- ATIWinflash – Программа, которая сохраняет файл биоса из видеокарты, также прошивает видеокарту.
- Polaris Bios Editor – Программа, которая позволяет проводить манипуляции и корректировки значений в фале биоса, выгруженном из видяхи с помощью утилиты ATIWinflash.
- 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