From bd79a61c439cf2a21e0ce593d53d6814b9bb95cf Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Fri, 19 Aug 2011 17:20:49 +1000 Subject: [PATCH] Move poclbm to new branch optimisation as well. --- findnonce.h | 2 +- poclbm110816.cl | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/findnonce.h b/findnonce.h index 93cd1fe6..94f7a92e 100644 --- a/findnonce.h +++ b/findnonce.h @@ -5,7 +5,7 @@ #define MAXTHREADS (0xFFFFFFFEULL) /* Maximum worksize 4k to match page size */ -#define MAXBUFFERS (0xFF) +#define MAXBUFFERS (0xFFFF) #define BUFFERSIZE (sizeof(uint32_t) * MAXBUFFERS) #define FOUND (0x80) /* #define NFLAG (0x7F) Just for reference */ diff --git a/poclbm110816.cl b/poclbm110816.cl index a222c6e6..693be63b 100644 --- a/poclbm110816.cl +++ b/poclbm110816.cl @@ -624,33 +624,33 @@ __kernel void search( const uint state0, const uint state1, const uint state2, c W[12] = W[12] + (rotr(W[13], 7) ^ rotr(W[13], 18) ^ (W[13] >> 3U)) + W[5] + (rotr(W[10], 17) ^ rotr(W[10], 19) ^ (W[10] >> 10U)); Vals[7] = Vals[7] + Vals[3] + (rotr(Vals[0], 6) ^ rotr(Vals[0], 11) ^ rotr(Vals[0], 25)) + ch(Vals[0], Vals[1], Vals[2]) + K[60] + W[12]; + Vals[7] ^= -0x5be0cd19U; #define FOUND (0x80) #define NFLAG (0x7F) -#if defined(VECTORS4) || defined(VECTORS2) - if (Vals[7].x == -0x5be0cd19U) - { - output[FOUND] = output[NFLAG & nonce.x] = nonce.x; +#if defined(VECTORS4) + bool result = Vals[7].x & Vals[7].y & Vals[7].z & Vals[7].w; + if (!result) { + if (!Vals[7].x) + output[FOUND] = output[NFLAG & nonce.x] = nonce.x; + if (!Vals[7].y) + output[FOUND] = output[NFLAG & nonce.y] = nonce.y; + if (!Vals[7].z) + output[FOUND] = output[NFLAG & nonce.z] = nonce.z; + if (!Vals[7].w) + output[FOUND] = output[NFLAG & nonce.w] = nonce.w; } - if (Vals[7].y == -0x5be0cd19U) - { - output[FOUND] = output[NFLAG & nonce.y] = nonce.y; +#elif defined(VECTORS2) + bool result = Vals[7].x & Vals[7].y; + if (!result) { + if (!Vals[7].x) + output[FOUND] = output[NFLAG & nonce.x] = nonce.x; + if (!Vals[7].y) + output[FOUND] = output[NFLAG & nonce.y] = nonce.y; } -#ifdef VECTORS4 - if (Vals[7].z == -0x5be0cd19U) - { - output[FOUND] = output[NFLAG & nonce.z] = nonce.z; - } - if (Vals[7].w == -0x5be0cd19U) - { - output[FOUND] = output[NFLAG & nonce.w] = nonce.w; - } -#endif #else - if (Vals[7] == -0x5be0cd19U) - { + if (!Vals[7]) output[FOUND] = output[NFLAG & nonce] = nonce; - } #endif }