Tromp's solvers

I have some 980ti, i could hook one up to test it out on a board in a couple of days. Is this GPU miner now open source? I just found out about zcash the other day…

Is it possible to mine with a CPU miner and this GPU miner at the same time on the same rig?

Thank you

Guys, do You have any experience with any Linux distro?

Im a Linux/Unix Engineer, Yop! =). What do you need to know?

You should clone GitHub - tromp/equihash: multi-parameter Equihash proof-of-work multi-threaded C solvers and compile. Then run $time ./eqcuda it should show the amount of solutions and time spent for them. Like in examples above. Tromp’s GTX provides around 17 sol/s according to his data.

majaro, antergos, opensuse, ubuntu, mint… kali…
not a pro expert but I tinker around… on manjaro now
I can try in a few days, just ordering another MB tomorrow morning

thx. for the info, I will try it later …, Thats all ;-)?, no need for special dev library, nvidia driver?

thats a good question, is there a specific cuda library we need?

I suppose NVidia driver is needed. The solver uses CUDA subsystem, w/o proper driver the solver simply should not be able to interact with it.

I’ve just tested the current version with a 1070 GTX:

eqcuda (8192 threads): ~15,9 Sol/s
eqcuda (4096 threads): ~16,5 Sol/s
feqcuda (8192 threads): ~22,1 Sol/s
feqcuda (4096 threads): ~21,6 Sol/s
devcuda (8192 threads): ~15,9 Sol/s
devcuda (4096 threads): ~16,3 Sol/s

more threads were slower for all three variants

(i don’t have the output available right now, but a 960 GTX produced ~11.3 Sol/s with feqcuda and 4096 threads)

CUDA 8.0.44-1
Nvidia Driver: 370.28

[details=eqcuda]alex@btf:~/Git/tromp-equihash$ ./eqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.115 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.117 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.119 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.118 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.118 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.121 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.118 seconds.
3 solutions
3 total solutions[/details]

[details=eqcuda -t 4096]alex@btf:~/Git/tromp-equihash$ ./eqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.114 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.114 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.114 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.114 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.114 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./eqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.114 seconds.
3 solutions
3 total solutions[/details]

[details=feqcuda]alex@btf:~/Git/tromp-equihash$ ./feqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.086 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.085 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.085 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.085 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.085 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.085 seconds.
3 solutions
3 total solutions[/details]

[details=feqcuda -t 4096]alex@btf:~/Git/tromp-equihash$ ./feqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.087 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.087 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.087 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./feqcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.087 seconds.
3 solutions
3 total solutions[/details]

[details=devcuda]alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.119 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.117 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.119 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.118 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.118 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.118 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.117 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 8192 threads (128 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.118 seconds.
3 solutions
3 total solutions[/details]

[details=devcuda -t 4096]alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.087 seconds.
0 solutions
0 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.123 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.117 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.116 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.115 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.116 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.116 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.116 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.114 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.116 seconds.
3 solutions
3 total solutions
alex@btf:~/Git/tromp-equihash$ ./devcuda -t 4096
Looking for wagner-tree on (β€œβ€,0) with 10 20-bits digits and 4096 threads (64 per block)
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
9 rounds completed in 0.116 seconds.
3 solutions
3 total solutions[/details]

Its supposed to use a thread per core, the card You tested has 1920 cuda cores, could You please try -t 1920?

We need a guy who has GTX 980 Ti. It has 2816 Cuda cores. As soon as it uses CUDA subsystem which actually was designed for heavy calculations, CUDA cores number and amount of VGA DRAM should play the role when using this CUDA solver.

getting 5.9 h/s on a GTX 780 :wink:

1 Like

Hi can someone post for newbies a short tutorial for how to install and run the miner.I want to test a 750 Ti

Thx in advance

1 Like

The relationship between threads and cores is not that direct. Forget about how many stream multiprocessors or stream processors (cuda cores) there are.
A block is partitioned into warps which are assigned to a stream multiprocessor (one thread to one stream processor (β€œcuda core”)). Warps can be delayed / idle (for example if they execute a read on global memory which will delay it for some cycles). You’ll want to have more warps available (for execution) than you can execute simultaneously so you can hide latency (by executing a different warp while the other one is still blocked).

Here’s some more information (if you’re interested): https://bluewaters.ncsa.illinois.edu/documents/10157/63094/NCSA02_Fundamental_CUDA_Optimization.pdf

@JanKalin @str4d I am able to integrate tromp solvers into zcash daemon code and successfully generated one test block.

https://explorer.testnet.z.cash/block/000a8464db4d2e6ab597acdda0237641ac0baa4e4cd629a02fa47b06fa31a207

I am cleaning up the code, will commit it in a zcash cloned repository.

Next goal: Port tromp solver’s latest enhancements.

12 Likes

Great, looking forward to this. Are you perhaps planning to do the same for the standalone miner?

In any case, I’m sorry I cannot contribute to the β€œcore” stuff, but I did write a simple Python script to collect transactions from a running zcashd and to produce some mining statistics. You can check it out at GitHub - JanKalin/zcutils: Python utils for Zcash

@JanKalin standalone miner means str4d’s standalone pool miner?

@sarath-hotspot Yes (must be at least 20 characters)

My standalone miner is a fork of zcash, so it can integrate solves in the exact same way as zcashd (but in this case editing src/libzcash/ZcashStratum.cpp instead of src/miner.cpp). I will happily accept pull requests to the standalone-miner branch that add additional solvers!

4 Likes

Sure. I glanced through standalone code.
Will send pull request.