Toomim Bros GPU mining software and cloud mining

The purpose of this thread is to track the development progress of Toomim Bros's mining software for ZCash and our cloud mining platform.

Software

We are working on two programs for mining ZCash:

  1. A GPU miner written in OpenCL (targeting AMD GPUs)
  2. A CPU miner written in C

The GPU miner is relatively mature. It has successfully mined two blocks on testnet. The CPU miner is incomplete and on hold since Sep 29th.

  1. The GPU miner completes one Equihash run in 45 ms (approx. 41.7 Sol/s) on an R9 290.
  2. The CPU miner completes one Equihash run in 3200 ms of real time, or 3600 ms of CPU core time (approx. 0.58 Sol/s) on a Core i7 4790K.

(For reference, the original miner in zcashd gets around 0.03 to 0.06 Sol/s per CPU core. It's pretty slow. The new Tromp solver in zcashd gets between 1 Sol/s and 10 Sol/s per core, but I haven't benchmarked it myself.)

Both implementations have lower memory usage (RAM and VRAM) than a single thread on the reference zcash implementation. They use shared-data concurrency, so memory usage does not significantly increase as the number of concurrent threads increases.

I think it's premature to talk too much about pricing and licensing, but since it's what most people will be wondering about I'll address it a little.

Sales/Licensing

My preference is to open-source the software. My preference is also to not throw away a gold mine. These two preferences tend to be in conflict with one another.

The idea that I think is most likely to satisfy both goals is to do a hybrid crowdfund-auction for the software. We would accept bids for exclusive purchase of the software as well as bids for open-sourcing the software. All open-source bids would be summed together before comparing against the top exclusive bid. We would also multiply the open-source bids by some constant in order to account for the fact that I prefer the open source outcome. We will probably require open source bidders to make a deposit via escrow or Ethereum smart contract; funds will be returned (automatically?) if a closed source solution wins.

Other options are that we give binaries away for free but hard-code revenue sharing in (i.e. the program mines for the developers x% of the time), or we just keep the program and use it ourselves, or we use it to sell cloud mining. As of Oct 3rd, we are leaning towards offering cloud mining.

I'm not very enthusiastic about the open source miner contest, since (a) it requires that we open source our miner before we know if we won anything at all, and (b) I expect the GPU miner to be worth far more than the $10k-$20k being offered.

We'll make the decisions on sales and licensing later, after the code makes it out of the NICU. If we do the auction, we will run it in a separate dedicated thread.

10 Likes

Is it fair to assume you either don't like your chances in the open source miner contest or you're seeking more than $30000?

1 Like

I think it would only be max 20 000usd (CPU + GPU), for the moment we don't know where are the remaining 10k :smiley: That bounty could be a part of the open source bid, but it's not sure if his miner wins....

Anyway an open source solution will be published, with performances probably close to the private funded miners, which is good for the value of ZCash (higher if the mining is distributed).

I will wait for the first contest entries to be published, and pledge to your open source bid if the performances are at least 50% higher.

Very nice job BTW :trophy:

I think the value of a good miner is greater than $20k or $30k.

At $5/ZEC, there would be [edit: $4,500,000 was wrong] $864,000 worth mined each month. As fast software will outperform slow software by around 2x-10x until people get a handle on the algorithm, software could be responsible for 50% to 90% of the total value mined. Our code might be the top software for a month. Maybe more, maybe less. I'm not asking for $864,000 (though I wouldn't say no!), but I think $22,500 would be too low by about an order of magnitude.

That bounty could be a part of the open source bid, but it's not sure if his miner wins....

Yes, if we could complete the crowdfund in time to enter the contest, I would consider the contest reward (times my estimate of our probability to win it) to be part of the bid for open sourcing.

1 Like

but I think $22,500 would be too low by about an order of magnitude.

Well, maybe the same order of magnitude as risk haha

Id be willing to pay for cloud mining...best margin for you and probably profitable for a while for your customers....capitalist at heart I guess :slight_smile:

2 Likes

You can always do what Claymore does, include a miner fee inside the miner.

His dual mining for ETH was very successful for him. And pretty much everyone is using it to mine any type of Dagger Hashimoto algo.

6 Likes

I use Claymore's dual miner myself. I'm aware of the business model, but dev fee miners are incompatible with open sourcing. It would be nice to have a business model that allows us to release the source. If crowdfunding won't work, then dev fees are one of our leading alternate choices.

Yeah obviously you can't release the source that way.

Also can you post your benchmarks on like a R9 280X / R9 290 / RX 480 GPU? The R7 370 is old and slow these days.

1 Like

If a CPU miner can do 10x better than Zcashd, there needs to be a delay in the launch.

@jtoomin The 2 GPU developers we know of (who were able to do the glue and sell their product) are at least 10x slower than your claims, given your graphics card. You'll need to tell us more about why your method is so special in order for it to be believable. Unless you know why yours is so fast and others are so slow, you should assume you've made a 10x error in your conceptual stage considerations.

1 Like

@adaseb We will benchmark other GPUs later on in development. Right now, the R7 370 is convenient for us because the main computer we're doing GPU development on has a wimpy power supply, and we'd rather spend time writing code than rebuilding a computer.

@zawy I don't expect you to trust our numbers. If we sell it, we will do so in a fashion that ensures that our miner meets the spec--e.g. multisig or smart contract with independent judges/arbiters.

You'll need to tell us more about why your method is so special in order for it to be believable.

It's a tricky thing. How do you prove that you have the secret without revealing what the secret is and thereby devaluing it? If only there were a way to make an ARgument of Knowledge while releasing Zero Knowledge in the process...

P.S.: Forgive me, sometimes I have the impulse to make SNARKy comments and I just can't help myself.

10 Likes

It's not so much that I'm hoping for proof or even evidence. It's just that you've posted something remarkable that affects a lot of people (assuming other miners have secretly done something similar) and seem very casual about it. I just wanted you to explicitly state you are aware that the only other GPU claim we have is 10x the zcashd CPU miner, which is 3x higher than we initially expected (or rather hoped for) and now you're saying we should not be surprised at over 100x. Sorting is not easy to improve upon and a hard limit is quickly reached. If your CPU is 10x Zcash's, then it means Zcash devs have made a fundamental error that is not related to sorting. I believe there is no sorting method that is more than 3x better than fairly basic sorting methods. (GPU vs CPU being a difference in hardware rather than algorithmic method)

2 Likes

The reason zcashd is as slow as it is probably has little to do with sorting. My Python prototype spent around 1.7 seconds per round sorting out of roughly 12 seconds per round total. That's about 13 seconds of sorting time for 100 seconds of total time per equihash run. My C code spends a higher percentage of time sorting, though. Ultimately, sorting is the task that limits performance, but zcashd is nowhere near ultimate performance.

3 Likes

Sorry for being so circumspect, @zawy. I wish I could spill all the technical secrets, but business.

That's fine. Anything you disclose is to your disadvantage if you ultimately sell out to a big GPU miner (or use a big investor yourself). I have not been very interested in the tech details of Equihash solving, but this difference makes me curious. I would like to know where others have been making a mistake. 10x better is doing something right that others have been doing wrong. I'm interested in that error.

1 Like

I hope to reveal those errors someday soon.

1 Like

My guess is that the current GPU implementation basically just wrapped the existing equihash solver for GPU and did no solver optimization.

1 Like

I still believe that Bountry ($10k) combined with a crowdfunding model is the way to go. Outside of that (if the bounty holders disagree) I would say a straight crowdfund of xx.xxx USD is the way to go.

I'm betting $50k can be raised in 24 hours or less for open sourcing of miner.

1 Like

I'm betting $50k can be raised in 24 hours or less for open sourcing of miner.

Would you be willing to bet $50k on that? :stuck_out_tongue: I'll give you 1:2 odds.