GPUCompute.h => Improved ComputeKeysSEARCH_MODE_SA for better efficiency

3 replies 103 views
bulllabMember
Posts: 4 · Reputation: 72
#1Oct 9, 2024, 08:12 PM
Hey folks, I just revamped my entire ETH mining setup (around 80 RTX 3080 cards) into a puzzle-hunting operation. While doing this, I checked out different online tools like KeyHuntCuda and RotorCuda, among others. Most of these tools are based on the Vanity Search libraries by Jean Luc PONS. Since I’m aiming to pinpoint a specific address (without a public key) in both sequential and random ways, I took it upon myself to rewrite the ComputeKeysSEARCH_MODE_SA function from CPUCompute.h. With just one RTX 3080, which usually hits around 2000M keys, I boosted it to 2500M keys thanks to these tweaks. Also, with the original version, using -rkey resulted in a massive performance drop when a new random cycle kicked in, but in this updated version, the drop is minimal, and the speed bounces back quickly when a new cycle starts. Here’s a quick rundown of the changes I made: - Added extra synchronization (__syncthreads()) for better thread consistency. - Implemented loop unrolling to enhance loop efficiency. - Cached values locally (Gx, Gy, sx, sy) to cut down on global memory lag. - Merged calculations of P + i*G and P i*G to minimize code repetition. - Prefetched values from global memory into local registers for improved performance. - Optimized multiplications using __umul64hi for quicker 64-bit computations. - Enhanced the matching check (CHECK_HASH_SEARCH_MODE_SA) to lower latency between calculations and checks. Just wanted to share this with you all. Looking forward to hearing your thoughts. Cheers!
3 Reply Quote Share
mr_blockSenior Member
Posts: 41 · Reputation: 1413
#2Oct 10, 2024, 12:15 PM
something like this would be better!
4 Reply Quote Share
bulllabMember
Posts: 4 · Reputation: 72
#3Oct 10, 2024, 06:29 PM
Using shared Memory is undoubtedly a fairly exponential advantage, but you can't use it that way when you have to do a complete refactoring of all the GPU libraries § (In fact with your code it is not even possible to compile) Anyway, you understood a priori that Shared Memory is the final goal  I published this first version because it works. However, I am working on an enhanced version of these libraries using Shared Memory.
6 Reply Quote Share
mr_blockSenior Member
Posts: 41 · Reputation: 1413
#4Oct 11, 2024, 12:12 AM
I thought you knew how to code, I gave you the basics, if you can't code it to make it work you are an  bad Coder.
2 Reply Quote Share
?Reply
Sign in to reply to this topic

Related topics