From 17f6d7be584010a1ff27ccfbb0baf4212ca5c023 Mon Sep 17 00:00:00 2001 From: rcxpony Date: Sat, 15 Mar 2025 16:11:56 +0500 Subject: [PATCH] fixes --- sources/main.cu | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/sources/main.cu b/sources/main.cu index 6dedef8..794c98a 100644 --- a/sources/main.cu +++ b/sources/main.cu @@ -83,22 +83,30 @@ __device__ __forceinline__ void rmbytes(unsigned char* buf, curandState* state) } __global__ void KeyGen(curandState* randStates) { int idx = blockIdx.x * blockDim.x + threadIdx.x; + unsigned local_d_high; + if (threadIdx.x == 0) { + local_d_high = d_high; + } + __syncthreads(); curandState localState = randStates[idx]; - //printf("Seed: %s\n", ktos(seed).data); while (true) { Key32 seed; KeysBox32 keys; rmbytes(seed, &localState); ed25519_keygen(keys.PrivateKey, keys.PublicKey, seed); - if (unsigned zeros = getZeros(keys.PublicKey); zeros > atomicMax((unsigned*)&d_high, zeros)) { - Addr16 raw; - Key32 inv; - invertKey(keys.PublicKey, inv); - getRawAddress(zeros, inv, raw); - printf("\nIPv6:\t%s\nPK:\t%s\nSK:\t%s\n", getAddr(raw).data, ktos(keys.PublicKey).data, ktos(keys.PrivateKey).data); + if (unsigned zeros = getZeros(keys.PublicKey); zeros > local_d_high) { + if (zeros > atomicMax((unsigned*)&d_high, zeros)) { + Addr16 raw; + Key32 inv; + invertKey(keys.PublicKey, inv); + getRawAddress(zeros, inv, raw); + printf("\nIPv6:\t%s\nPK:\t%s\nSK:\t%s\n", getAddr(raw).data, ktos(keys.PublicKey).data, ktos(keys.PrivateKey).data); + local_d_high = zeros; + } } } } + #define THREADS_P_B 256 int main(int argc, char* argv[]) { int* d_result, mBpSM, h_high;