Pages:
Author

Topic: Unfinished CryptoNight OpenCL (AMD) miner - page 3. (Read 20799 times)

sr. member
Activity: 520
Merit: 253
555
Code:
...
4 errors detected in the compilation of "/tmp/OCL25634T8.cl".

Frontend phase failed compilation.
Looks like pretty minor errors, but I have no time to hack on this now.

I tested on an Nvidia card, so AMD might be a little pickier.
Yup, this was on AMD. I'll have a look at those type conversions at some point.
sr. member
Activity: 520
Merit: 253
555
Compiled and got this upon running:

Code:
clBuildProgram() returned -11!
"/tmp/OCL25634T8.cl", line 366: error: invalid type conversion
                AES256Round((uint *)c, (ulong *)&long_state[aindx],
                (uint *)a);
                                       ^

"/tmp/OCL25634T8.cl", line 368: error: invalid type conversion
                CopyBlock((ulong *)&long_state[aindx], b);
                          ^

"/tmp/OCL25634T8.cl", line 372: error: invalid type conversion
                CopyBlock(b2, (ulong *)&long_state[cindx]);
                              ^

"/tmp/OCL25634T8.cl", line 377: error: invalid type conversion
                CopyBlock((ulong *)&long_state[cindx], a);
                          ^

"/tmp/OCL25634T8.cl", line 325: warning: variable "gid" was declared
but never
          referenced
        __private uint i, j, gid, aeskey1[64], aeskey2[64];
                             ^

4 errors detected in the compilation of "/tmp/OCL25634T8.cl".

Frontend phase failed compilation.
Looks like pretty minor errors, but I have no time to hack on this now.
newbie
Activity: 6
Merit: 0
Had some trouble compiling. I cloned off git. I'm afraid my Linux experience is limited to "well it didn't work, looks like i'm screwed."

Not sure if I messed something up, but let me know if I can be any help.
Ubuntu 13.10
AMD Drivers amd-catalyst-13.11-beta V9.4-linux-x86.x86_64


Quote
miner1@miner1:~/opencl-cryptonight$ ./autogen.sh
miner1@miner1:~/opencl-cryptonight$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... -std=gnu99
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether gcc -std=gnu99 needs -traditional... no
checking whether gcc -std=gnu99 and cc understand -c and -o together... yes
checking dependency style of gcc -std=gnu99... gcc3
checking for ranlib... ranlib
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/endian.h usability... no
checking sys/endian.h presence... no
checking for sys/endian.h... no
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for sys/sysctl.h... yes
checking whether be32dec is declared... no
checking whether le32dec is declared... no
checking whether be32enc is declared... no
checking whether le32enc is declared... no
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for getopt_long... yes
checking whether we can compile AVX code... yes
checking whether we can compile XOP code... yes
checking whether we can compile AVX2 code... yes
checking for json_loads in -ljansson... no
checking for pthread_create in -lpthread... yes
checking for OPENSSL_init in -lcrypto... yes
checking for gawk... (cached) gawk
checking for curl-config... /usr/bin/curl-config
checking for the version of libcurl... 7.32.0
checking for libcurl >= version 7.15.2... yes
checking whether libcurl is usable... yes
checking for curl_free... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating compat/Makefile
config.status: creating compat/jansson/Makefile
config.status: creating cpuminer-config.h
config.status: executing depfiles commands
miner1@miner1:~/opencl-cryptonight$ make
make  all-recursive
make[1]: Entering directory `/home/miner1/opencl-cryptonight'
Making all in compat
make[2]: Entering directory `/home/miner1/opencl-cryptonight/compat'
Making all in jansson
make[3]: Entering directory `/home/miner1/opencl-cryptonight/compat/jansson'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..      -MT dump.o -MD -MP -MF .deps/dump.Tpo -c -o dump.o dump.c
mv -f .deps/dump.Tpo .deps/dump.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..      -MT hashtable.o -MD -MP -MF .deps/hashtable.Tpo -c -o hashtable.o hashtable.c
mv -f .deps/hashtable.Tpo .deps/hashtable.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..      -MT load.o -MD -MP -MF .deps/load.Tpo -c -o load.o load.c
mv -f .deps/load.Tpo .deps/load.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..      -MT strbuffer.o -MD -MP -MF .deps/strbuffer.Tpo -c -o strbuffer.o strbuffer.c
mv -f .deps/strbuffer.Tpo .deps/strbuffer.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..      -MT utf.o -MD -MP -MF .deps/utf.Tpo -c -o utf.o utf.c
mv -f .deps/utf.Tpo .deps/utf.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..      -MT value.o -MD -MP -MF .deps/value.Tpo -c -o value.o value.c
mv -f .deps/value.Tpo .deps/value.Po
rm -f libjansson.a
ar cru libjansson.a dump.o hashtable.o load.o strbuffer.o utf.o value.o
ranlib libjansson.a
make[3]: Leaving directory `/home/miner1/opencl-cryptonight/compat/jansson'
make[3]: Entering directory `/home/miner1/opencl-cryptonight/compat'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/miner1/opencl-cryptonight/compat'
make[2]: Leaving directory `/home/miner1/opencl-cryptonight/compat'
make[2]: Entering directory `/home/miner1/opencl-cryptonight'
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -pthread -I./compat/jansson   -ggdb -g3 -maes   -MT minerd-cpu-miner.o -MD -MP -MF .deps/minerd-cpu-miner.Tpo -c -o minerd-cpu-miner.o `test -f 'cpu-miner.c' || echo './'`cpu-miner.c
mv -f .deps/minerd-cpu-miner.Tpo .deps/minerd-cpu-miner.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -pthread -I./compat/jansson   -ggdb -g3 -maes   -MT minerd-util.o -MD -MP -MF .deps/minerd-util.Tpo -c -o minerd-util.o `test -f 'util.c' || echo './'`util.c
mv -f .deps/minerd-util.Tpo .deps/minerd-util.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -pthread -I./compat/jansson   -ggdb -g3 -maes   -MT minerd-cryptonight_common.o -MD -MP -MF .deps/minerd-cryptonight_common.Tpo -c -o minerd-cryptonight_common.o `test -f 'cryptonight_common.c' || echo './'`cryptonight_common.c
mv -f .deps/minerd-cryptonight_common.Tpo .deps/minerd-cryptonight_common.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -pthread -I./compat/jansson   -ggdb -g3 -maes   -MT minerd-cryptonight_opencl.o -MD -MP -MF .deps/minerd-cryptonight_opencl.Tpo -c -o minerd-cryptonight_opencl.o `test -f 'cryptonight_opencl.c' || echo './'`cryptonight_opencl.c
cryptonight_opencl.c:2:23: fatal error: CL/opencl.h: No such file or directory
 #include
                       ^
compilation terminated.
make[2]: *** [minerd-cryptonight_opencl.o] Error 1
make[2]: Leaving directory `/home/miner1/opencl-cryptonight'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/miner1/opencl-cryptonight'
make: *** [all] Error 2
full member
Activity: 173
Merit: 100
nice work,thank you .wating for the open souce miner.
3x2
legendary
Activity: 1526
Merit: 1004
Still in development?

Yes, working on finding a bug. After that's done, finishing it up shouldn't be too hard.

OK, keep up the good work  Grin
3x2
legendary
Activity: 1526
Merit: 1004
Still in development?
hero member
Activity: 1274
Merit: 556
Bump!
Demand is still there Smiley
hero member
Activity: 794
Merit: 1000
Monero (XMR) - secure, private, untraceable
^Any other thoughts on that? Wolf0 is a teenager - still unbalanced and immature (sorry Wolf0 - nothing personal). His opinion about himself is biased by the Dunning–Kruger effect and his main thoughts are about the money he could make. He got a good amount of donations by the XMR community and it would be very wrong of him if he acts dishonestly on this one.
member
Activity: 81
Merit: 1002
It was only the wind.
I'm stunned that there seems to be zero developer interest in this. I've finished a good 70% of it at least, and the github seems dead.
hero member
Activity: 616
Merit: 500
Any update?  Grin
Do not expect anything from them. Wolf0 works in conjunction with Claymore. They work together. I would not be surprised if any one person.
Topic started to slow down as much as possible the development of a free miner
legendary
Activity: 1106
Merit: 1000
Any update?  Grin
newbie
Activity: 33
Merit: 0
hehe i know but ididnt want to mention any names Wink
member
Activity: 81
Merit: 1002
It was only the wind.
This topic has appeared on the following day after vehre refused to quit. This is also a chance?
anyhow, I fail to see the interest claymore algo is way much faster... (if it is just to get the bounty.... at 50USD/hour, it would cost you more)

How do you know Claymore's is faster? This doesn't even work yet - it uses ONE GPU work-item and ONE thread.

Speaking of open-source gpu-miners... Wolf0, you might want to take a look at tsiv's latest release for cuda-miner... made a binary to mine on compute 2.1 and compute 2.0 (fermi) cards.

Maybe that can help?

My 1GB 560ti's get 200h/s each. Just saying.

Did that. While the code is not the bottleneck, I'll tell you - that code is SLOW. Also, a little painful to look at. Just to prove it, I'll give you a little bit of code that is a drop-in replacement for his ccminer that shows what I'm talking about: http://pastebin.com/UqUJ7WKu

Like I said, it won't make it much faster, because it appears the code is not the bottleneck - but if you just look at it, it makes you think, "WTF was he smoking?"

Another example - in the older versions of ccminer, he had this:

Code:
#define E2I(x) ((size_t)((*((uint64_t*)x) / AES_BLOCK_SIZE) & (MEMORY / AES_BLOCK_SIZE - 1)))

That was used four times in a loop that executes 252,144 times. Now, the compiler can optimize some of this away - AES_BLOCK_SIZE and MEMORY are both constants, 16 and 1 << 21 (0x200000, off the top of my head.) Divides are OUCH slow, but to be fair the compiler should fix that. Now, he has since replaced it with this, showing he's getting better:

Code:
#define E2I(x) ((size_t)(((*((uint64_t*)(x)) >> 4) & 0x1ffff)))

But he still doesn't seem to see the fail here - the result of E2I is multiplied by AES_BLOCK_SIZE without exception. Therefore...

Code:
((uint64_t *)x)[0] & 0x1FFFF0;

... can replace the whole E2I macro PLUS the multiply. Why? The first divide by AES_BLOCK_SIZE and the multiply by the same that is always done after cancel. By the way, idk if 32-bit ops are any faster or slower on the GPU, but you don't need 64-bit width - you're masking out everything anyway. So if 32-bit is faster:

Code:
((uint32_t *)x)[0] & 0x1FFFF0;

The 0 on the end is to mask out four bits - the bit shift down by four, then up by four would clear them, so an AND by zero does the same.

I'd like to thank tsiv for crediting me when he added my edits - he didn't have to, and I was a bit scathing.
newbie
Activity: 33
Merit: 0
getting a crytptonote gpu miner into pimp have a few problems .... first there need to be one;) second it need a api so it can communicate with pool manager the webgui in pimp.....
I know there is work going on to get this fixed but its alot of work and thats why the pimp devs need donations towards it so they can pay someone to make the api and finish the miner....

hero member
Activity: 1274
Merit: 556
Woke up. Weird, only been a few hours. Forgot donation addresses; if you want to donate, here:

Code:
XMR: 46sSETXrZGT8bupxdc2MAbLe3PMV9nJTRTE5uaFErXFz6ymyzVdH86KDb9TNoG4ny5QLELfopynWeBSMoT1M2Ga8RBkDqTH
BTC: 1WoLFumNUvjCgaCyjFzvFrbGfDddYrKNR
I've donated to the PiMP guys for the implementation of the crypronight gpu miner. Have they been in touch with you?
In any case, keep up the good work, much appreciated!
member
Activity: 81
Merit: 1002
It was only the wind.
test under pimp

wget http://ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

tar -xvzf autoconf-2.69.tar.gz

cd autoconf-2.69/

./configure

make

make install

autoconf --version

cd ..

ln -s /opt/AMDAPP/lib/x86/libOpenCL.so /usr/lib/libOpenCL.so

wget https://github.com/wolf9466/opencl-cryptonight/archive/master.zip

unzip master.zip

cd opencl-cryptonight-master/

cp -R /opt/sgminer/winbuild/dist/include/CL CL

CFLAGS="-O2 -Wall -march=native" ./configure --prefix=/usr

make

minerd -a cryptonight -o stratum+tcp://mine.moneropool.org:80 -u 463tWEBn5XZJSxLU6uLQnQ2iY9xuNcDbjLSjkn3XAXHCbLrTTErJrBWYgHJQyrCwkNgYvyV3z8zctJL PCZy24jvb3NiTcTJ -p x -t 2
[2014-07-02 20:38:35] Using JSON-RPC 2.0
[2014-07-02 20:38:35] 1 miner threads started, using 'cryptonight' algorithm.
[2014-07-02 20:38:35] Starting Stratum on stratum+tcp://mine.moneropool.org:80
[2014-07-02 20:38:35] Pool set diff to 10000
[2014-07-02 20:38:35] Stratum detected new block
[2014-07-02 20:38:36] thread 0: 1 hashes, 0.96 H/s
[2014-07-02 20:38:40] thread 0: 59 hashes, 14.90 H/s


it will not support the gpu yet?
or I forget something?

If you're not a developer, quit trying to use it. It does not work yet.
sr. member
Activity: 280
Merit: 250
Bitnation Development Team Member
I so wish I knew OpenCL or the AMD SDK :-( I'd love to contribute and get this working, but I just don't possess the right knowledge. Any hints to learn it folks? I'd be honoured to do my best on it!
kbm
member
Activity: 84
Merit: 10
I'm stunned that there seems to be zero developer interest in this. I've finished a good 70% of it at least, and the github seems dead.

What's the bounty for this now?  Maybe we can promote it a bit more.  To get more donations and interest.

The bounty for this is 500 XMR and 1 BTC, listed here: https://bitcointalksearch.org/topic/bounty-for-open-sourced-xmrcryptonight-gpu-miner-bounties-thread-656841

If this were to be finished, I would propose breaking the bounty up between Wolf0 and whoever finishes the code. I'd need feedback on that, so if it gets finished I'll wait to see what people say.
legendary
Activity: 1372
Merit: 1003
I'm stunned that there seems to be zero developer interest in this. I've finished a good 70% of it at least, and the github seems dead.

What's the bounty for this now?  Maybe we can promote it a bit more.  To get more donations and interest.
member
Activity: 81
Merit: 1002
It was only the wind.
It really shouldn't matter who made it first or claim come with it first, main focus is to get it working. Then credit can be given to all involved.
I do not claim authorship or reward. I want everyone to know - programmer vehre - dishonest

Maybe dishonest in the sense he used open source code for a closed source project, but you don't seem to understand - I DON'T HAVE HIS CODE. I am not using his code. I have never heard of this vehre person.
Pages:
Jump to: