Browse Source

sia was migrated too...

master
Tanguy Pruvot 8 years ago
parent
commit
c8ff854456
  1. 1
      ccminer.cpp
  2. 17
      sia/sia.cu

1
ccminer.cpp

@ -2348,7 +2348,6 @@ static void *miner_thread(void *userdata)
case ALGO_HEAVY: case ALGO_HEAVY:
case ALGO_SCRYPT: case ALGO_SCRYPT:
case ALGO_SCRYPT_JANE: case ALGO_SCRYPT_JANE:
case ALGO_SIA:
//case ALGO_WHIRLPOOLX: //case ALGO_WHIRLPOOLX:
work.nonces[0] = nonceptr[0]; work.nonces[0] = nonceptr[0];
work.nonces[1] = nonceptr[2]; work.nonces[1] = nonceptr[2];

17
sia/sia.cu

@ -227,34 +227,31 @@ int scanhash_sia(int thr_id, struct work *work, uint32_t max_nonce, unsigned lon
blake2b_setBlock(inputdata); blake2b_setBlock(inputdata);
do { do {
uint32_t secNonce = UINT32_MAX; work->nonces[0] = blake2b_hash_cuda(thr_id, throughput, pdata[8], target, work->nonces[1]);
uint32_t foundNonce = blake2b_hash_cuda(thr_id, throughput, pdata[8], target, secNonce);
*hashes_done = pdata[8] - first_nonce + throughput; *hashes_done = pdata[8] - first_nonce + throughput;
if (foundNonce != UINT32_MAX) if (work->nonces[0] != UINT32_MAX)
{ {
work->valid_nonces = 0; work->valid_nonces = 0;
inputdata[8] = foundNonce; inputdata[8] = work->nonces[0];
blake2b_hash(hash, inputdata); blake2b_hash(hash, inputdata);
if (swab32(hash[0]) <= Htarg) { if (swab32(hash[0]) <= Htarg) {
// sia hash target is reversed (start of hash) // sia hash target is reversed (start of hash)
swab256(vhashcpu, hash); swab256(vhashcpu, hash);
if (fulltest(vhashcpu, ptarget)) { if (fulltest(vhashcpu, ptarget)) {
work_set_target_ratio(work, vhashcpu); work_set_target_ratio(work, vhashcpu);
work->nonces[0] = foundNonce;
work->valid_nonces++; work->valid_nonces++;
pdata[8] = work->nonces[0] + 1;
} }
} }
if (secNonce != UINT32_MAX) { if (work->nonces[1] != UINT32_MAX) {
inputdata[8] = secNonce; inputdata[8] = work->nonces[1];
blake2b_hash(hash, inputdata); blake2b_hash(hash, inputdata);
if (swab32(hash[0]) <= Htarg) { if (swab32(hash[0]) <= Htarg) {
gpulog(LOG_DEBUG, thr_id, "found second nonce %08x", secNonce);
swab256(vhashcpu, hash); swab256(vhashcpu, hash);
if (fulltest(vhashcpu, ptarget)) { if (fulltest(vhashcpu, ptarget)) {
work->nonces[1] = secNonce;
if (bn_hash_target_ratio(vhashcpu, ptarget) > work->shareratio[0]) { if (bn_hash_target_ratio(vhashcpu, ptarget) > work->shareratio[0]) {
work->sharediff[1] = work->sharediff[0]; work->sharediff[1] = work->sharediff[0];
work->shareratio[1] = work->shareratio[0]; work->shareratio[1] = work->shareratio[0];
@ -264,11 +261,11 @@ int scanhash_sia(int thr_id, struct work *work, uint32_t max_nonce, unsigned lon
bn_set_target_ratio(work, vhashcpu, 1); bn_set_target_ratio(work, vhashcpu, 1);
} }
work->valid_nonces++; work->valid_nonces++;
pdata[8] = work->nonces[1] + 1;
} }
} }
} }
if (work->valid_nonces) { if (work->valid_nonces) {
pdata[8] = max_nonce;
return work->valid_nonces; return work->valid_nonces;
} }
} }

Loading…
Cancel
Save