Toomim Bros GPU mining software and cloud mining

I’ve gotten a few people asking me privately when our cloud hashing will be available.

Answer: When it’s ready.

Our intent is to have it online on Genesis Day. However, intent and fact often diverge. Until our code is closer to completion, I won’t guarantee anything.

2 Likes

Thanks for all the answers.

We mined our first block.

https://explorer.testnet.z.cash/block/001f7e50149652821e8c935524d3a1cdd61dd9522602716bea7b49383d47cc34

The nonce value for that block is 0000006e0000000000000000000000000000000000000000006d692e6d6f6f74, which includes the text “toom.im” (note: value is little-endian, so you have to reverse the hex encoding to get the in-memory representation).

(This doesn’t prove that we mined it on a GPU, of course.)

Edit: We also found this one, a little while later. We’ve since stopped mining, though.

https://explorer.testnet.z.cash/block/0033dd797f021d90f2a2ea9b451b2c60275c844262994c0ef5b800f0e95df605

3 Likes

Congrats!

What was the total mining time to produce the block?

A minute or two.

I wrote tromp’s favorite poem into the blockchain just now. Check #14507, #14510, #14511, #14512.

I’ll offer 0.05 BTC to the person who sends me what I deem to be the coolest blockchain poem. Each line must be 28 bytes or less. I can’t promise contiguous blocks until we get more GPUs online in parallel.

2 Likes

Alright, see if you can push this out sequentially:

The ledger shows
what’s mine, what’s yours.
I mined to show
whats gone before;
what’s mine, what’s yours,
what’s ours no more.
And for these proofs
a little more
to me, to mine,
but what’s it for?

2 Likes

I agree with Austin on this after reviewing the algorithm. The difference between the best and second best implementations should be very small, just like ETH miner implementations. Even a CPU (mid-range Intel) implementation in x86-64 assembly should easily exceed 5 sol/s for (200, 9)

nobody knows how fast a CPU implementation in x86_64 ASM should be.

1 Like

On the same code version, running under Linux with fglrx:

R9 Fury: 55 ms (stock clocks, Sapphire Nitro model)
R9 290: 66 ms (Sapphire reference design, overclocked core, stock mem)

Not quite the improvement we were hoping for. Also, the Fury appears to make our concurrency bug worse, due to the greater number of parallel stream processors, so the Fury finds fewer solutions per round. That bug should be fixed eventually, though.

We now have code to mine with multiple GPUs on the same system! Yay!

… except that the code apparently mines with one GPU at a time, but alternates between the GPUs. Boo.

Working on a fix…

Do you guys test your code in Python and then later build with your miner in C?

Something like that, yes.

We got simultaneous mining with multiple GPUs to work in an isolated environment using a rewritten main loop. We’re now working on integrating the rest of the functionality back into the new loop.

We also basically fixed our concurrency problem. The fix comes with a 5-10% cost in time per round, but increases the solutions per run by 5-10%. Overall, it improves performance for some GPU types (e.g. Fury) but worsens performance for others (e.g. R9 290). With the concurrency bug fixed, we got an average of 1.888 Sol/run over 5000 runs. The Fury still dropped 3 of the 9443 potential solutions, but we consider that 0.03% loss acceptable.

Our Fury now clocks in at 31 Sol/s, vs 26-29 for the two R9 290s in our testbed.

Sorry, I’m new to GPU mining and just playing around. I don’t think these questions should divulge any secrets, they are very general, but needed for any basic stuff. I’m lost.

  1. Are you producing your solutions in order?
  2. Not sure if ref zcash client is checking the ordering requirement. Do they comply with the “algorithmic binding”?
  3. The c+++ ref code uses vectors. How do you lay out your work in memory?
  4. How much of your GPU code is in assembly, or is it all OpenCL c-level stuff?

Thanks!

I think you mean to say “no one” knows instead of @nobody knows. :slight_smile:

2 Likes

Is anyone using Bloom Filters in their solvers?

1 Like

Yes, I am using a combination of Bloom Filters and Hash Tables for my proof-of-concept CPU miner.

1 Like

No, I specifically meant @nobody knows.

@maxi:

  1. Yes.
  2. Yes it is.
  3. Arrays. We know our memory layout in advance.
  4. It’s less than 200% ASM.
1 Like

We got our new multi-GPU code to work with beta1 testnet. We mined 7 consecutive blocks in 123 seconds before we stopped. We forgot to encode a special message into the nonce or coinbase, though. Oh well.

Our blocks are recognizable because we usually have the nonce filled with mostly zeroes if we don’t have a poem.

16563 - Oct 7, 2016 10:37:20 PM
16564 - Oct 7, 2016 10:37:44 PM
16565 - Oct 7, 2016 10:37:47 PM
16566 - Oct 7, 2016 10:37:47 PM
16567 - Oct 7, 2016 10:37:57 PM
16568 - Oct 7, 2016 10:38:01 PM
16569 - Oct 7, 2016 10:39:23 PM

https://explorer.testnet.z.cash/block/0056bf2de83407c0d35bfbbf64f8f27209604ee75f938e8fef86be9ee73bba20

This was on 3 GPUs: two R9 290s and a Fury. I think we’ll add another 3 GPUs to this rig soon.

I’m confused… I didn’t know the beta1 testnet was still running.

Wasn’t the testnet reset earlier this week for beta2?

Any idea what is going to be resolved?