A Multi GPU Miner is Available for Ubuntu!

ACCESS IT HERE

A DETAILED GUIDE ON HOW TO START MINING ON UBUNTU, prepared by Chris from TwenteMining (a big thank you to him!)

2 Likes

Sorry for the noob question but, this CUDA miner only works with NVIDIA GPU’s, right?. Could it also work with AMD drivers?

Yes, CUDA is a API specifically designed for nVidia GPU’s. So far, there are no Cuckoo Cycle miners for AMD, which should be based on OpenCL.

1 Like

Vlad, is the current version of epoch 1.0 RC7 consistent with the mainnet? What I mean is, does mining on Epoch RC7 and do the received AE persist in the mainnet?

I think you need to be in Roma and not Rc7. as Roma has a new startblock, so anything mined outside of it will be destroyed.

2 Likes

What options do you have to use in epoch_yaml to use all the GPUs ? It looks like only the first one is used. I tried “-d 0 1 2 3 4 5” as extra args, but it’s doesn’t seem to work.

The documentation for the multi_gpu mining is available in the multi_gpu-branch on GitHub – To use multiple instances (for example four GPUs addressed by -d 0, …, -d 3) you just add one line to the epoch.yaml:

mining:
cuckoo:
miner:
instances: 4
executable: …

Of course you need to be on the multi_gpu branch and build the node yourself from there.

1 Like

Answered, but failed to do it as a proper reply to you!

Thank you Hans. I now successfully use 3 rigs with the multi GPU miner for some hours. And I calculate solutions :

2018-11-28 23:15:23.755 [info] <0.1268.0>@aec_conductor:create_key_block_candidate:804 Creating key block candidate on the top
2018-11-28 23:15:23.755 [info] <0.1268.0>@aec_conductor:create_key_block_candidate:804 Creating key block candidate on the top
2018-11-28 23:15:23.775 [info] <0.1268.0>@aec_conductor:handle_key_block_candidate_reply:812 Created key block candidate Its target is 521275956 (= difficulty 60948094772).
2018-11-28 23:15:23.775 [info] <0.1268.0>@aec_conductor:start_mining:674 Starting mining
2018-11-28 23:15:30.627 [info] <0.1268.0>@aec_conductor:start_mining:674 Starting mining
2018-11-28 23:15:37.578 [info] <0.1268.0>@aec_conductor:start_mining:674 Starting mining
2018-11-28 23:15:44.467 [info] <0.1268.0>@aec_conductor:start_mining:674 Starting mining

Unfortunately, I don’t find any block for many hours, which kinda surprises me with more than 20 1080ti cards. What could I miss here ? I connect peers, mine… Are we sure opening some external ports isn’t mandatory ? What do I miss ? I definitely don’t think it’s bad luck.

Maybe it is “bad luck”. I mean, maybe the network has a big hashrate now. How can we be sure about this?

Yeah but… is it normal the node is sending the same hash to each GPU at the same time ? It’s like using 12 GPUs to get the same result as one. I tried using another node separated for each GPU, but there’s a name conflict in erlang (Protocol ‘inet_tcp’: the name epoch@localhost seems to be in use by another Erlang node)

2018-11-28 23:35:10.612 [info] <0.6996.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 41595672586E4E4345644E4A386F384F513959516770494A4359665141736B3870435738326D33334C7A4D3D437A704D6C4B4B4753776B3D  -d 0"
2018-11-28 23:35:10.612 [info] <0.6997.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 41595672586E4E4345644E4A386F384F513959516770494A4359665141736B3870435738326D33334C7A4D3D437A704D6C4B4B4753776B3D  -d 1"
2018-11-28 23:35:10.612 [info] <0.6999.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 41595672586E4E4345644E4A386F384F513959516770494A4359665141736B3870435738326D33334C7A4D3D437A704D6C4B4B4753776B3D  -d 3"
2018-11-28 23:35:10.612 [info] <0.7000.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 41595672586E4E4345644E4A386F384F513959516770494A4359665141736B3870435738326D33334C7A4D3D437A704D6C4B4B4753776B3D  -d 4"
2018-11-28 23:35:10.612 [info] <0.7002.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 41595672586E4E4345644E4A386F384F513959516770494A4359665141736B3870435738326D33334C7A4D3D437A704D6C4B4B4753776B3D  -d 6"
2018-11-28 23:35:10.612 [info] <0.7003.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 41595672586E4E4345644E4A386F384F513959516770494A4359665141736B3870435738326D33334C7A4D3D437A704D6C4B4B4753776B3D  -d 7"
2018-11-28 23:35:10.612 [info] <0.7005.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 41595672586E4E4345644E4A386F384F513959516770494A4359665141736B3870435738326D33334C7A4D3D437A704D6C4B4B4753776B3D  -d 9"

Got it.

Yeah, I was about to tell you to try to run different nodes, one per GPU. We have to wait for the team to answer about that Erlang error.

And, of course, hashing the same string on every card does not make any sense. It is not taking the multi gpu feature. That could be enough reason why you haven’t find any solution yet.

I know. That’s what surprised me as well. Let’s wait for their answers

Hey @lofino,

Here is the answer from our dev Hans:

I would check log/epoch_pow_cuckoo.log for errors or strange warnings, but I don’t see anything obviously wrong…

If you can connect to the chain and sync you are connected, and there is no need for additional ports or anything.

Regards,
Albena

Thank you for the answer. Yeah nothing strange in epoch_pow_errors.log… but the fact the multi gpu miner is sending the same hash to calculate to each GPU. Do the devs think it’s normal ?

Also, ask them how I could use more than 1 node on 1 machine. There’s name conflicts in erlang and the /tmp directory.

Here is a copy/paste from epoch_pow_cuckoo.log just in case :slight_smile:

2018-11-29 00:03:05.785 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479 Looking for 42-cycle on cuckoo30("VP7e++aXOPgnYjJhc0EvS/t2DP1Hs7LPogQjoO5bcLo=cyz4STPeRQ0=",0) with 50% edges, 64*64 buckets, 176 trims, and 64 thread blocks.
2018-11-29 00:03:05.785 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479 Using 6976MB of global memory.
2018-11-29 00:03:05.785 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479 nonce 0 k0 k1 k2 k3 26ee07332345a181 5ebbc265648f5517 15f58bc5eee11839 f5059868cce1c4f0
2018-11-29 00:03:05.785 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479 Seeding completed in 148 + 78 ms
2018-11-29 00:03:05.785 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479   20-cycle found
2018-11-29 00:03:05.786 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479   18-cycle found
2018-11-29 00:03:05.786 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479  588-cycle found
2018-11-29 00:03:05.786 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479 findcycles edges 64036 time 146 ms total 624 ms
2018-11-29 00:03:05.786 [debug] <0.18704.0>@aec_pow_cuckoo:parse_generation_result:479 0 total solutions
(...)
 2018-11-29 00:03:12.948 [debug] <0.18748.0>@aec_pow_cuckoo:generate:79 Generating solution for data hash <<84,254,222,251,230,151,56,248,39,98,50,97,115,65,47,75,251,118,12,253,71,179,178,207,162,4,35,160,238,91,112,186>> and nonce 956414807751797898 with target 521218978.
2018-11-29 00:03:12.948 [info] <0.18751.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 2"
2018-11-29 00:03:12.948 [info] <0.18754.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 5"
2018-11-29 00:03:12.949 [info] <0.18757.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 8"
2018-11-29 00:03:12.949 [info] <0.18760.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 11"
2018-11-29 00:03:12.949 [info] <0.18758.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 9"
2018-11-29 00:03:12.949 [info] <0.18753.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 4"
2018-11-29 00:03:12.949 [info] <0.18749.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 0"
2018-11-29 00:03:12.949 [info] <0.18750.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 1"
2018-11-29 00:03:12.949 [info] <0.18759.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 10"
2018-11-29 00:03:12.949 [info] <0.18752.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 3"
2018-11-29 00:03:12.949 [info] <0.18755.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 6"
2018-11-29 00:03:12.949 [info] <0.18756.0>@aec_pow_cuckoo:generate_int_:214 Executing cmd: "./cuda29 -h 565037652B2B61584F50676E596A4A6863304576532F74324450314873374C506F67516A6F4F3562634C6F3D69797A34535450655251303D  -d 7"

Sorry for being slow to check this. It looks wrong that you are sending the same hash multiple times, they should be slightly different!! Could you please checkout the multi_gpu branch again and rebuild and try it again?! The hashes should differ “by 1” if everything works!

Yes, that is just wrong, I recommend to make a clean rebuild of the multi_gpu branch and then check carefully that the hashes are different, they should indeed differ “by 1”

“git checkout multi_gpu” is the way to go right ?

Yes, that is correct!