Bitcoin Forum
November 08, 2024, 05:13:57 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: CUDA Linux Client  (Read 16385 times)
Zenitur
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
May 03, 2011, 08:56:27 PM
Last edit: May 04, 2011, 06:04:37 AM by Zenitur
 #21

Когда у меня было мало khash'ей я поиском нашёл именно эту тему. Первая ссылка не работает, вторая - только для 32-битных систем, да и программа по ней старая. Я хоть и ламер, но решил написать что узнал дальше.

Есть несколько видов майнеров для GPU и все они работают либо с bitcoin (ускоряя его), либо с пулом. Для Linux я нашёл два, беспроблемный poclbm (OpenCL) и проблемный RPC Miner (CUDA). Описываю запуск в Linux. Конечно же, в системе должны быть библиотеки CUDA и OpenCL (у nVidia они уже в проприетарном драйвере, и несколько - в отдельном CUDA Toolkit), и для всего, кроме poclbm, необходимо установить SDK. Для poclbm его не нужно устанавливать для nVidia (я не стал и всё заработало), для AMD - надо (в SDK - системная библиотека libOpenCL.so).

poclbm

Удовлетворяем зависимости. Устанавливаем pyopencl (у меня нашёлся в репозитарии, если у вас не нашёлся - предлагаю найти любимым поисковиком и установить). Затем устанавливаем python-jsonrpc (у меня не нашёлся в репозитарии, поэтому ниже способ установки без него:)

Code:
svn checkout http://svn.json-rpc.org/trunk/python-jsonrpc
cd python-jsonrpc
su
# python setup.py install
# exit

Настраиваем Bitcoin (если не будет использован пул). В скрытом каталоге /home/user/.bitcoin в bitcoin.conf вписываем:

rpcuser=user
rpcpassword=password

Придумать можно своё. Это нужно для того, чтобы сторонняя программа могла присоединиться к нашему bitcoin либо bitcoind, без этого после запуска с ключом -server в консольном выводе мы увидим ошибку (невозможно включить режим сервера RPC, потому что нет параметров rpcuser и rpcpassword в файле конфигурации программы - что-то такое).

Запускаем bitcoin либо bitcoind с ключом -server. Можно в консоли, можно по "Выполнить..." через Alt-F2.

Запускаем в консоли ту самую программу:

Code:
python poclbm.py -d 0 --user user --pass password

Где -d 0 - это номер нужной видеокарты. То что у неё номер 0 я узнал из сообщения об ошибке при запуске скрипта без параметров. Мы увидим то, что генерируется заметно быстрее, чем на CPU (у меня с GeForce 9800GT 512 Mb RAM - около 26700, если не шевелить мышкой и ничего не делать, иначе замедлится на 400-500, а ещё интейфейс системы немного замедлится).

Для пула команда другая:

Code:
python poclbm.py -d 0 --host=deepbit.net --port=8332 --user=xxx@xxx.ru --pass=xxx

Для пула deepbit.net. Название пула, его порт, имя пользователя и пароль нужно заменить на свои.

Стоит сказать, что я только запускал оба майнера, дополнительные настройки не смотрел. Выключить poclbm можно сочетанием клавиш Ctrl-C, нам скажут bye и выключатся.

RPC Miner

Его установка сложна, так как он ориентирован в основном на Windows. Мне очень помогло сообщение 222 в его теме обсуждения. Это руководство для того чтобы заставить работать последний на данный момент исходный код, дата которого 20110227. Можно сделать всё как там написано. Зависимости: boost, DB, CUDA Toolkit вместе с CUDA SDK (последний нужен для компилирования), больше не знаю что нужно ещё.

Открыть главный CMakeLists.txt и увидеть список того что, нужно скомпилировать. Везде выставить OFF, кроме первого и последнего (CUDA и RPC Miner). GUI, к сожалению, не компилируется (у меня, не находит какие-то заголовочные файлы wxWidgets), хотя вам, может, и повезёт! Затем найти строчку SET(Boost_USE_STATIC_LIBS   ON) и заменить ON на OFF. Сохранить.

Зайти в каталог с этим файлом и выполнить cmake . Это конфигуратор, компиляцию запускать не надо. Ищем файл src/serialize.h и дописываем последний include: #include <limits.h> . А следующей строчкой дописываем using namespace boost; Сохраняем файл.

Открываем файл src/cuda/bitcoinminercuda.cu и дописываем в самом начале над #ifdef _BITCOIN_MINER_CUDA_ следующее #define _BITCOIN_MINER_CUDA_ . Зачем это надо и надо ли вообще я не знаю, но при компиляции из-за этого действия я получил 5 WARNING'ов, но компиляция прошла успешно.

Запускаем make. Всё скомпилировалось. Теперь запускаем:

Code:
nvcc src/cuda/bitcoinminercuda.cu -gencode arch=compute_10,\"code=sm_10,compute_10\" -gencode arch=compute_11,\"code=sm_11,compute_11\" --keep -gencode arch=compute_20,\"code=sm_20,compute_20\" --keep

Выполнение команды закончится ошибкой - так и должно быть.

Заходим в cmake-rpcminer и видим бинарник rpcminer. Запускаем его из консоли.

Code:
./rpcminer

После недолгой инициализации видим ошибку. Хочет какой-то файл с расширением cubin (у меня захотел версию 11), каталогом ниже лежат версии 10, 11 и 20. Берём нужную и переименовываем в тот вид, в котором у нас этот файл затребовали. Снова запускаем rpcminer. Вот, теперь работает. Теперь запускаем с параметрами:

Code:
./rpcminer -user=user -password=password

Предварительно необходимо отредактировать файл конфигурации bitcoin (как именно я написал выше, в совете по запуску poclbm). У меня на GeForce 9800GT 512 Mb RAM выдало 18000 khash. Меньше, чем с неродным для nVidia OpenCL Странно. Наверное, дело в том что с pyoclbm у меня ещё и все ядра процессора заняты на 100% тоже, а с RPC Miner возможно занят только GPU. Мне лень остановить pyoclbm и проверить: я уже увидел, что колоссального прироста в скорости нет, и возвращаться к тому, на компиляцию чего потратил столько времени, не хочу.

Как и с pyoclbm, я не знаю никаких особых параметров для RPC Miner. -agression=5 и -agression=10 - вот что увидел в его теме форума беглым взглядом. Мне не помогли.
Red Dragon
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile
May 07, 2011, 06:34:09 PM
 #22

Пытаюсь запустить poclbm (OpenCL) на CentOS release 5.5 (Final).
Получаю

 python poclbm.py
  File "poclbm.py", line 62
    finally:
          ^
SyntaxError: invalid syntax


Подозреваю, что версия питона не подходящая, как исправить?
Red Dragon
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile
May 07, 2011, 08:40:37 PM
 #23

Обновил версию питона до 2.7 (и отдельно поставил 2.6 отсюда http://fedoraproject.org/wiki/EPEL ), однако модуль pyopencl он не видит Sad
 python poclbm.py
Traceback (most recent call last):
  File "poclbm.py", line 3, in <module>
    import pyopencl as cl
ImportError: No module named pyopencl

Zenitur
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
May 07, 2011, 09:01:56 PM
 #24

Уже лучше. Переустанови pyopencl, чтобы он стал поддерживать новый Python.
Red Dragon
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile
May 07, 2011, 11:41:43 PM
 #25

да, но как? На сентос и питон то через костыли ставится, попробовал по http://ofan666.blogspot.com/2011/04/install-opencl-and-pyopencl-in.html на этапе проверки $ ./HelloCL выдает Segmentation fault и не видит numpy, хотя я его через yum поставил Sad
Red Dragon
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile
May 08, 2011, 02:53:52 AM
 #26

Уфф, тем временем, как ни странно, получилось запустить RPC Miner (спасибо за подробную инструкцию)! Кто сравнивал эти решения по производительности, для GPU поддерживающих CUDA, у какого софта производительность выше?

Еще очень хотелось бы всё таки запустить ufasoft'овский и загрузить не только GPU, но и простаивающие CPUs (сейчас при работающем RPC Miner с опциями по умолчанию, совокупная загрузка CPU ~ 10%).

Вопрос, если стоит 2 GPU на машине, то как RPC Miner указать использовать оба? В опциях не нашел, пока запускаю два различных процесса с разными параметрами -gpu=0 и -gpu=1.

Поигравшись с настройками, удалось значительно увеличить производительность, при этом загрузка CPUs упала до 0!

Кто знает, какие значения по умолчанию у

-gpugrid=X
   Specifies what the grid size of the kernel should be.  Useful for fine tuning
   hash rate.

-gputhreads=X
   Specifies how many threads per kernel invocation should run.  Useful for fine
   tuning hash rate.

?
Zenitur
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
May 08, 2011, 03:59:00 AM
 #27

Я уверен, что RPC Miner запускается на нескольких GPU одной командой. Но я не знаю как. Также не знаю как запускать его на CPU и GPU одновременно, а очень хотелось бы. Как именно ты поигрался настройками? Мне тоже хочется увеличить производительность.

Мой pyoclbm задействует и GPU, и CPU, поэтому быстрее. Что было бы если бы не задействовались CPU, либо RPC Miner задействовал CPU тоже, я не знаю.
Red Dragon
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile
May 09, 2011, 12:26:06 AM
 #28

Пока что максимум (~105 Mh/s, но иногда раз в 10с короткие провалы до 50 Mh/s - c чем связано, не ясно) получается при -aggression=14 -workrefreshms=1000 -gputhreads=512 но любая нвидия может такое переварить. Наибольший прирост производительности получился от увеличения aggression (но больше 14 не получается) и, как ни странно, gputhreads, правда 1024 gputhreads уже не тянет, вываливается с Segmentation fault.

Удалось запустить и python poclbm, но не впечатлил пока что совершенно, выдает ~ 70 Mh/s (от настроек меняется на +-3 Mh/s).

Также запустился и phoenix, тоже пока максимум 82 Mh/s c параметрами VECTORS AGGRESSION=13.

Для CPU - запускаю отдельно minerd https://en.bitcoin.it/wiki/Cpu_Miner наибольшее быстродействие с опцией -a sse2_64
Zenitur
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
May 09, 2011, 11:35:06 AM
 #29

Как ты достиг такого прироста, какой именно майнер? И как именно узнать оптимальность параметров для определённой видеокарты? Что касается ufasoft: тоже скомпилировал и тоже 0 Mhash. Наверное дело в том что пришлось вручную править asm-файлы как кто-то подсказал на форуме программы. minerd для CPU меня разочаровывает. Официальный bitcoin выдаёт 5000 khash, а minerd с sse2_64 - 2000. 2100 с 4way. У меня AMD.
Zenitur
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
May 09, 2011, 11:44:32 AM
Last edit: May 09, 2011, 12:00:09 PM by Zenitur
 #30

Red Dragon,смотри что я нашёл: http://bitcointalk.org/index.php?topic=7534.0

Update: что-то RPC выдаёт нереальное количество khash'ей: 1655006568 khash/s . Это терахеш? На моей 9800GT? Это без пула, это ко мне сконнектилось. С 112 потоками.
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!