Pages:
Author

Topic: CUDA Linux Client (Read 16402 times)

sr. member
Activity: 362
Merit: 250
May 09, 2011, 06:44:32 AM
#30
Red Dragon,смотри что я нашёл: https://bitcointalksearch.org/topic/centos-55-mining-guide-for-atipoclbm-7534

Update: что-то RPC выдаёт нереальное количество khash'ей: 1655006568 khash/s . Это терахеш? На моей 9800GT? Это без пула, это ко мне сконнектилось. С 112 потоками.
sr. member
Activity: 362
Merit: 250
May 09, 2011, 06:35:06 AM
#29
Как ты достиг такого прироста, какой именно майнер? И как именно узнать оптимальность параметров для определённой видеокарты? Что касается ufasoft: тоже скомпилировал и тоже 0 Mhash. Наверное дело в том что пришлось вручную править asm-файлы как кто-то подсказал на форуме программы. minerd для CPU меня разочаровывает. Официальный bitcoin выдаёт 5000 khash, а minerd с sse2_64 - 2000. 2100 с 4way. У меня AMD.
newbie
Activity: 32
Merit: 0
May 08, 2011, 07:26:06 PM
#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
sr. member
Activity: 362
Merit: 250
May 07, 2011, 10:59:00 PM
#27
Я уверен, что RPC Miner запускается на нескольких GPU одной командой. Но я не знаю как. Также не знаю как запускать его на CPU и GPU одновременно, а очень хотелось бы. Как именно ты поигрался настройками? Мне тоже хочется увеличить производительность.

Мой pyoclbm задействует и GPU, и CPU, поэтому быстрее. Что было бы если бы не задействовались CPU, либо RPC Miner задействовал CPU тоже, я не знаю.
newbie
Activity: 32
Merit: 0
May 07, 2011, 09:53:52 PM
#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.

?
newbie
Activity: 32
Merit: 0
May 07, 2011, 06:41:43 PM
#25
да, но как? На сентос и питон то через костыли ставится, попробовал по http://ofan666.blogspot.com/2011/04/install-opencl-and-pyopencl-in.html на этапе проверки $ ./HelloCL выдает Segmentation fault и не видит numpy, хотя я его через yum поставил Sad
sr. member
Activity: 362
Merit: 250
May 07, 2011, 04:01:56 PM
#24
Уже лучше. Переустанови pyopencl, чтобы он стал поддерживать новый Python.
newbie
Activity: 32
Merit: 0
May 07, 2011, 03: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
    import pyopencl as cl
ImportError: No module named pyopencl

newbie
Activity: 32
Merit: 0
May 07, 2011, 01:34:09 PM
#22
Пытаюсь запустить poclbm (OpenCL) на CentOS release 5.5 (Final).
Получаю

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


Подозреваю, что версия питона не подходящая, как исправить?
sr. member
Activity: 362
Merit: 250
May 03, 2011, 03:56:27 PM
#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 [email protected] --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 . А следующей строчкой дописываем 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 - вот что увидел в его теме форума беглым взглядом. Мне не помогли.
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
January 21, 2011, 08:13:07 AM
#20
Под старыми федорами достаточно установить libjpeg-turbo-devel,
и может потребоваться сделать с libjpeg.so на libjpeg.so.8 симлинк.
Code:
yum install libjpeg-turbo-devel
ln -s /usr/lib/libjpeg.so /usr/lib/libjpeg.so.8
ln -s /usr/lib64/libjpeg.so /usr/lib64/libjpeg.so.8
full member
Activity: 185
Merit: 100
November 11, 2010, 03:08:38 PM
#19
Убунта застряла с libjpeg6 по непонятным причинам, когда весь мир давно на 8-ке. Из-за них хромиум собирают с зависимостью от libjpeg6, и в моей сусе официальные сборки из билдбота падают при выборе картинки (например, чтобы куда-нибудь её закачать) в стандартном диалоге. Все падают. Стабильно. Все об этом знают и не чешутся, потому что в убунте не падают, а убунта — это единственный линукс. Впрочем, в сусе есть свои официальные непадающие сборки с libjpeg8, причём, более-менее современные. Ну может на пару недель отстают, некритично.

Это я к тому, что моя сборка не пойдёт на убунте, равно как и убунтовская не пойдёт у меня. Sad but true, конпеляйте самостоятельно.
sr. member
Activity: 350
Merit: 252
probiwon.com
November 11, 2010, 06:38:41 AM
#18
Have any of you Russian comrades had any success compiling this for Ubuntu?  I have CUDA properly installed (can compile the NVIDIA tests), but I still get this error when trying to compile the CUDA-enabled bitcoin on my Ubuntu 10.04:

Quote
. / Bitcoin: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory

even though I already have libjpeg installed (I'm pretty sure).

Anyway, if any of you have had luck with this, I would appreciate some help, or if possible, just post a compiled binary.

Спасибо.

Так вот же предложили сделать сначала:

Quote
Небось, только не факт, что либа подойдёт. Посмотри ls -la /usr/lib/libjpeg*

Шестая установлена, это видно, а какой версии просто libjpeg-dev — не знаю. У меня, например, в хромиуме есть проблема как раз с этой библиотекой, при выборе на любом картинкозаливочном сайте файла .jpg (из локальных, разумеется, в диалоге выбора файла), хромиум падает, потому как собран с 6-й или 7-й версией, и исправлять это никто не собирается. Для суси есть нормальная рабочая сборка, но обновляется она довольно редко. Выбора нет, использую её.

Вот, например, на моём дебиане показывается:

Code:
$ LANG=C ls -la /usr/lib/libjpeg*
-rw-r--r-- 1 root root 164916 Jun 30 21:38 /usr/lib/libjpeg.a
-rw-r--r-- 1 root root    918 Jun 30 21:38 /usr/lib/libjpeg.la
lrwxrwxrwx 1 root root     17 Sep 23 20:41 /usr/lib/libjpeg.so -> libjpeg.so.62.0.0
lrwxrwxrwx 1 root root     17 Sep 23 20:41 /usr/lib/libjpeg.so.62 -> libjpeg.so.62.0.0
-rw-r--r-- 1 root root 127964 Jun 30 21:38 /usr/lib/libjpeg.so.62.0.0

Я сам не использую генераторы, просто для примера. Ваш вывод этой команды какой?

в любом случае, попробуйте что-то вроде:

sudo aptitude install libjpeg8
sr. member
Activity: 434
Merit: 252
youtube.com/ericfontainejazz now accepts bitcoin
November 11, 2010, 05:05:24 AM
#17
Have any of you Russian comrades had any success compiling this for Ubuntu?  I have CUDA properly installed (can compile the NVIDIA tests), but I still get this error when trying to compile the CUDA-enabled bitcoin on my Ubuntu 10.04:

Quote
. / Bitcoin: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory

even though I already have libjpeg installed (I'm pretty sure).

Anyway, if any of you have had luck with this, I would appreciate some help, or if possible, just post a compiled binary.

Спасибо.
full member
Activity: 185
Merit: 100
November 10, 2010, 10:56:56 AM
#16
Да, можно прекрасно обходиться без CUDA, используя официальный клиент. Правда, с текущей сложностью это просто смешно (для генерации, разумеется). Выгоднее на улице монетки подбирать.
newbie
Activity: 2
Merit: 0
November 10, 2010, 08:48:06 AM
#15
А без CUDA можно обойтись? Мне не приходилось еще собирать пакеты, и есть только более-менее понятные описания сборки .deb, а за CUDA только-что узнал и еще не понял: будет-ли оно работать на моем железе.
full member
Activity: 185
Merit: 100
October 09, 2010, 10:40:08 AM
#14
Небось, только не факт, что либа подойдёт. Посмотри ls -la /usr/lib/libjpeg*

Шестая установлена, это видно, а какой версии просто libjpeg-dev — не знаю. У меня, например, в хромиуме есть проблема как раз с этой библиотекой, при выборе на любом картинкозаливочном сайте файла .jpg (из локальных, разумеется, в диалоге выбора файла), хромиум падает, потому как собран с 6-й или 7-й версией, и исправлять это никто не собирается. Для суси есть нормальная рабочая сборка, но обновляется она довольно редко. Выбора нет, использую её.
newbie
Activity: 2
Merit: 0
October 09, 2010, 10:27:10 AM
#13
Ну-с, вот собрал небольшой пак из демона и графического клиента. Всё-таки удалось уговорить wxWidgets и биткоин подружиться, причём, статически. Размеры вышли чуть больше, чем у Сато, не знаю, почему так. Вроде, пострипал, и дебаг не включен. В общем, кому охота, налетайте. Единственная тонкость: после использования этого клиента стандартный биткоин перестаёт понимать базу (выдаёт пару ошибок о необходимости её починить и вылетает). Возможно, потому что я собрал с более новой Berkley DB. Так что в любом случае сделайте бэкап.

Выдает вот это:

./bitcoin: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory

Система Ubuntu 10.04.

libjpeg установлен:
v   libjpeg-dbg                     -                                           
v   libjpeg-dev                     -                                           
i A libjpeg-progs                   - Programs for manipulating JPEG files     
i   libjpeg62                       - библиотека времени выполнения для работы с
p   libjpeg62-dbg                   - Development files for the IJG JPEG library
i A libjpeg62-dev                   - Development files for the IJG JPEG library

Может надо симлинк куда-то сделать?

Подскажите пожалуйста.
full member
Activity: 185
Merit: 100
October 04, 2010, 05:39:45 AM
#12
That's not a patch, just a makefile which I run on OpenSuSE. I have no idea why Sato put so few libraries and why it builds at all on his comp. I see the obvious lack of -l dl and -l z at the very least.
hero member
Activity: 574
Merit: 513
October 03, 2010, 09:12:00 PM
#11
Лучше и проще для патча от nelisky. Вот makefile.unix:
Code:
# Copyright (c) 2009-2010 Satoshi Nakamoto
# Distributed under the MIT/X11 software license, see the accompanying
# file license.txt or http://www.opensource.org/licenses/mit-license.php.


INCLUDEPATHS= \
 -I"/usr/local/include/wx-2.9" \
 -I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9" \
 -I"$(HOME)/build/boost_1_44_0" \
 -L"$(HOME)/build/boost_1_44_0/stage/lib"

# for wxWidgets 2.9.1, add -l Xxf86vm
WXLIBS= \
 -Wl,-Bstatic \
   -l wx_gtk2ud-2.9 \
 -Wl,-Bdynamic \
   -l gtk-x11-2.0 \
   -l SM

# for boost 1.37, add -mt to the boost libraries
LIBS= -dead_strip \
 -Wl,-Bstatic \
   -l boost_system \
   -l boost_filesystem \
   -l boost_program_options \
   -l boost_thread \
   -l db_cxx \
   -l crypto \
 -Wl,-Bdynamic \
   -l gthread-2.0 \
   -l z \
   -l dl \

DEFS=-D__WXGTK__ -DNOPCH -DFOURWAYSSE2
DEBUGFLAGS=-g -D__WXDEBUG__
CFLAGS=-O2 -msse3 -mmmx -Wno-invalid-offsetof -Wformat $(DEFS) $(INCLUDEPATHS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
    script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h

CUDAROOT = "$(HOME)/NVIDIA_GPU_Computing_SDK"

CUDALIBPATHS= \
 -L$(CUDAROOT)/C/lib \
 -L$(CUDAROOT)/C/common/lib/linux \
 -L$(CUDAROOT)/shared/lib \
 -L/usr/local/cuda/lib

CUDALIBS= -lcudart -lcutil_i386 -lshrutil_i386

CUDAFLAGS=-fPIC -Xlinker -rpath /usr/local/cuda/lib $(CUDALIBPATHS) $(CUDALIBS)

OBJS= \
    obj/sha256_kernel.cuo \
    obj/util.o \
    obj/script.o \
    obj/db.o \
    obj/net.o \
    obj/irc.o \
    obj/main.o \
    obj/rpc.o \
    obj/init.o \
    cryptopp/obj/sha.o \
    obj/sha256.o \
    cryptopp/obj/cpu.o


all: bitcoin

obj/nogui/sha256.o: sha256.cpp
g++ -c $(CFLAGS) -O3 -o $@ $<

obj/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -DGUI -o $@ $<

cryptopp/obj/%.o: cryptopp/%.cpp
g++ -c $(CFLAGS) -O3 -o $@ $<

bitcoin: $(OBJS) obj/ui.o obj/uibase.o obj/sha256.o
g++ $(CFLAGS) -o $@ $^ $(WXLIBS) $(LIBS)


obj/nogui/%.o: %.cpp $(HEADERS)
g++ -c $(CFLAGS) -o $@ $<

obj/nogui/%.cuo: %.cu
   /usr/local/cuda/bin/nvcc  -gencode=arch=compute_10,code=\"sm_10,compute_10\"  -gencode=arch=compute_20,code=\"sm_20,compute_20\" --compiler-options -fno-strict-aliasing  -I. -I/usr/local/cuda/include -I$(CUDAROOT)/C/common/inc -I$(CUDAROOT)/shared/inc -DUNIX -O3   -o $@ -c $<

bitcoind: $(OBJS:obj/%=obj/nogui/%)
g++ $(CFLAGS) -o $@ $^ $(LIBS) $(CUDALIBPATHS) $(CUDALIBS)


clean:
-rm -f obj/*.o
-rm -f obj/nogui/*.o
-rm -f cryptopp/obj/*.o
-rm -f headers.h.gch

Пути с $(HOME) надо подкорректировать для себя. У меня в OpenSuSE 11.3 какая-то кривая сборка boost-devel, нет *.a файлов для линковки, так что собрал свой буст и положил по указанному пути. Ещё надо скачать CUDA Toolkit, Developer Drivers и GPU Computing SDK code samples. Хоть и написано, что samples, но без него никуда — там cutil_inline.h и пачка библиотек. Если пути указаны верно, должно собраться, хотя на других дистрибутивах могут отсутствовать библиотеки. Я добавил для себя libdl и libz. Разумеется, если раньше вы не компилили клиент вообще, то ещё надо слить wxWidgets и у оракла слить db (Berkeley DB).

Бинарник.

I added this patch to http://www.bitcoin.org/wiki/doku.php?id=list_of_patches but I am not sure how to name it appropriately.  Will someone edit the wiki and provide the correct name?

That's not a patch, just a makefile which I run on OpenSuSE. I have no idea why Sato put so few libraries and why it builds at all on his comp. I see the obvious lack of -l dl and -l z at the very least.

Mmkay, I removed it then.
Pages:
Jump to: