Closed xenoncat closed 7 years ago
Thanks for taking up the challenge, xenoncat! Testing on my iMac, I see a speedup on cuckoo28 from 11s to 4s with linux time. Mac OSX doesn't support the clock_gettime() so I can't get your alloc-free time yet. I changed my program to print out the (k0,k1) keypair so I can match results, and they indeed have matching solutions. Looks you have a winner here, at least for the x2 bounty, and possibly for the 4x one. I'll do more testing on a Linux box later this weekend.
Could you prepare a cuckoo32 version as well for me to try, even without being able to test it yourself?
On a 4GHz Intel Core i7-4790K, the minimum speedup I measured is 2.88x (from 7.46s to 2.59s). I expect a cuckoo30st and cuckoo32*, if implemented, will show a greater speedup. Since your average speedup is well beyond this, I shall award you $5000 (which happens to equal my Runner Up prize for the Zcash Open Source Miner Challenge). Would you like this paid in USD or in BTC?
Cuckoo32 uploaded. 16GB is indeed an accurate estimation. Very limited testing was done. On a borrowed machine, Core i7-4770K: cuckoo32stx8 vs cuckoo32_1t: 251s to 53.9s cuckoo32x8 vs cuckoo32_8t: 88.6s to 14.6s I currently don't have an idea on how to get a good speedup on single thread. cuckoo28_st and cuckoo28_1t perform similarly.
For your information, "dead end" messages are harmless debug messages expected when the edge trimming is not fully completed. Incomplete edge trimming is signaled through "24 loops" in cuckoo28 and cuckoo30, or "30 loops" in cuckoo32. When you get "dead end" messages, you may also get "unexpected degree-2 traversal". I should have suppressed the message but forgot to do so.
Please send BTC to 1DAUXeA3GKbTCrHCRQLCrbzQZwBA7hYVjD Thanks.
Performance summary: 3x speed at the cost of 20x memory usage. The speed advantage can be 4x or higher, depending on your computer and multithreading mode.
This work does not actually follow the bounty requirements.
Despite the above, this submission is interesting for the following reasons.
A description of the algorithm is still in progress. It may take some time, as I am busy with full-time job. The program currently outputs a lot of progress and debug information. Expect it to be buggy.
https://github.com/xenoncat/cuckoo_pow