1
0
mirror of https://github.com/GOSTSec/ccminer synced 2025-01-27 23:14:27 +00:00

neoscrypt: adapt for visual studio compat

todo: fix SM 3.0 builds
This commit is contained in:
Tanguy Pruvot 2015-05-03 14:52:10 +02:00
parent 65c1d787e7
commit 15584e4f05
9 changed files with 27 additions and 19 deletions

View File

@ -275,7 +275,7 @@ Options:\n\
lyra2 VertCoin\n\ lyra2 VertCoin\n\
mjollnir Mjollnircoin\n\ mjollnir Mjollnircoin\n\
myr-gr Myriad-Groestl\n\ myr-gr Myriad-Groestl\n\
neoscrypt use to mine FeatherCoin\n\ neoscrypt FeatherCoin, Phoenix, UFO...\n\
nist5 NIST5 (TalkCoin)\n\ nist5 NIST5 (TalkCoin)\n\
penta Pentablake hash (5x Blake 512)\n\ penta Pentablake hash (5x Blake 512)\n\
pluck SupCoin\n\ pluck SupCoin\n\

View File

@ -179,7 +179,7 @@
<MaxRegCount>80</MaxRegCount> <MaxRegCount>80</MaxRegCount>
<PtxAsOptionV>true</PtxAsOptionV> <PtxAsOptionV>true</PtxAsOptionV>
<Keep>true</Keep> <Keep>true</Keep>
<CodeGeneration>compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;compute_52,sm_52</CodeGeneration> <CodeGeneration>compute_35,sm_35;compute_50,sm_50;compute_52,sm_52</CodeGeneration>
<AdditionalOptions>--ptxas-options="-O2" %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>--ptxas-options="-O2" %(AdditionalOptions)</AdditionalOptions>
<Defines> <Defines>
</Defines> </Defines>
@ -536,4 +536,4 @@
<Target Name="AfterClean"> <Target Name="AfterClean">
<Delete Files="@(FilesToCopy->'$(OutDir)%(Filename)%(Extension)')" TreatErrorsAsWarnings="true" /> <Delete Files="@(FilesToCopy->'$(OutDir)%(Filename)%(Extension)')" TreatErrorsAsWarnings="true" />
</Target> </Target>
</Project> </Project>

View File

@ -231,6 +231,9 @@
<ClCompile Include="scrypt-jane.cpp"> <ClCompile Include="scrypt-jane.cpp">
<Filter>Source Files\CUDA\scrypt</Filter> <Filter>Source Files\CUDA\scrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="neoscrypt\neoscrypt.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="compat.h"> <ClInclude Include="compat.h">
@ -619,6 +622,12 @@
<CudaCompile Include="scrypt\titan_kernel.cu"> <CudaCompile Include="scrypt\titan_kernel.cu">
<Filter>Source Files\CUDA\scrypt</Filter> <Filter>Source Files\CUDA\scrypt</Filter>
</CudaCompile> </CudaCompile>
<CudaCompile Include="neoscrypt\cuda_neoscrypt.cu">
<Filter>Source Files\CUDA</Filter>
</CudaCompile>
<CudaCompile Include="neoscrypt.cu">
<Filter>Source Files</Filter>
</CudaCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Image Include="res\ccminer.ico"> <Image Include="res\ccminer.ico">

View File

@ -692,7 +692,7 @@ unsigned int jackpothash(void *state, const void *input);
void groestlhash(void *state, const void *input); void groestlhash(void *state, const void *input);
void lyra2_hash(void *state, const void *input); void lyra2_hash(void *state, const void *input);
void myriadhash(void *state, const void *input); void myriadhash(void *state, const void *input);
void neoscrypt(const uchar *password, uchar *output, uint profile); void neoscrypt(uchar *output, const uchar *input, uint32_t profile);
void nist5hash(void *state, const void *input); void nist5hash(void *state, const void *input);
void pentablakehash(void *output, const void *input); void pentablakehash(void *output, const void *input);
void pluckhash(uint32_t *hash, const uint32_t *data, uchar *hashbuffer, const int N); void pluckhash(uint32_t *hash, const uint32_t *data, uchar *hashbuffer, const int N);

View File

@ -16,7 +16,6 @@ extern uint32_t neoscrypt_cpu_hash_k4(int stratum, int thr_id, uint32_t threads,
int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uint32_t max_nonce, unsigned long *hashes_done) int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uint32_t max_nonce, unsigned long *hashes_done)
{ {
const uint32_t first_nonce = pdata[19]; const uint32_t first_nonce = pdata[19];
const int stratum = have_stratum;
if (opt_benchmark) if (opt_benchmark)
((uint32_t*)ptarget)[7] = 0x0000ff; ((uint32_t*)ptarget)[7] = 0x0000ff;
@ -41,7 +40,7 @@ int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uin
} }
uint32_t endiandata[20]; uint32_t endiandata[20];
if (stratum) { if (have_stratum) {
for (int k = 0; k < 20; k++) for (int k = 0; k < 20; k++)
be32enc(&endiandata[k], ((uint32_t*)pdata)[k]); be32enc(&endiandata[k], ((uint32_t*)pdata)[k]);
} else { } else {
@ -52,19 +51,19 @@ int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uin
neoscrypt_setBlockTarget(endiandata,ptarget); neoscrypt_setBlockTarget(endiandata,ptarget);
do { do {
uint32_t foundNonce = neoscrypt_cpu_hash_k4(stratum, thr_id, throughput, pdata[19], 0); uint32_t foundNonce = neoscrypt_cpu_hash_k4((int)have_stratum, thr_id, throughput, pdata[19], 0);
if (foundNonce != UINT32_MAX) if (foundNonce != UINT32_MAX)
{ {
uint32_t _ALIGN(64) vhash64[8]; uint32_t _ALIGN(64) vhash64[8];
*hashes_done = pdata[19] - first_nonce + 1; *hashes_done = pdata[19] - first_nonce + 1;
if (stratum) { if (have_stratum) {
be32enc(&endiandata[19], foundNonce); be32enc(&endiandata[19], foundNonce);
} else { } else {
endiandata[19] = foundNonce; endiandata[19] = foundNonce;
} }
neoscrypt((uchar*) endiandata, (uchar*)vhash64, 0x80000620); neoscrypt((uchar*)vhash64, (uchar*) endiandata, 0x80000620U);
if (vhash64[7] <= ptarget[7] && fulltest(vhash64, ptarget)) { if (vhash64[7] <= ptarget[7] && fulltest(vhash64, ptarget)) {
pdata[19] = foundNonce; pdata[19] = foundNonce;
@ -76,7 +75,7 @@ int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uin
pdata[19] += throughput; pdata[19] += throughput;
} while (!work_restart[thr_id].restart && ((uint64_t)max_nonce > ((uint64_t)(pdata[19]) + (uint64_t)throughput))); } while (!work_restart[thr_id].restart && (max_nonce > ((uint64_t)(pdata[19]) + throughput)));
*hashes_done = pdata[19] - first_nonce + 1; *hashes_done = pdata[19] - first_nonce + 1;
return 0; return 0;

View File

@ -77,8 +77,8 @@ __constant__ uint32_t BLAKE2S_SIGMA[10][16];
} }
#endif #endif
#define ROTL32(x, n) ((x) << (n)) | ((x) >> (32 - (n))) //#define ROTL32(x, n) ((x) << (n)) | ((x) >> (32 - (n)))
#define ROTR32(x, n) (((x) >> (n)) | ((x) << (32 - (n)))) //#define ROTR32(x, n) (((x) >> (n)) | ((x) << (32 - (n))))
#define BLAKE_Ghost(idx0, idx1, a, b, c, d, key) { \ #define BLAKE_Ghost(idx0, idx1, a, b, c, d, key) { \
idx = BLAKE2S_SIGMA_host[idx0][idx1]; a += key[idx]; \ idx = BLAKE2S_SIGMA_host[idx0][idx1]; a += key[idx]; \

View File

@ -881,7 +881,7 @@ static void neoscrypt_blkmix(uint *X, uint *Y, uint r, uint mixmode)
* ..... * .....
* 11110 = N of 2147483648; * 11110 = N of 2147483648;
* profile bits 30 to 13 are reserved */ * profile bits 30 to 13 are reserved */
void neoscrypt(const uchar *password, uchar *output, uint profile) void neoscrypt(unsigned char *output, const unsigned char *input, unsigned int profile)
{ {
uint N = 128, r = 2, dblmix = 1, mixmode = 0x14, stack_align = 0x40; uint N = 128, r = 2, dblmix = 1, mixmode = 0x14, stack_align = 0x40;
uint kdf, i, j; uint kdf, i, j;
@ -916,11 +916,11 @@ void neoscrypt(const uchar *password, uchar *output, uint profile)
default: default:
case(0x0): case(0x0):
neoscrypt_fastkdf(password, 80, password, 80, 32, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE); neoscrypt_fastkdf(input, 80, input, 80, 32, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE);
break; break;
case(0x1): case(0x1):
neoscrypt_pbkdf2_sha256(password, 80, password, 80, 1, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE); neoscrypt_pbkdf2_sha256(input, 80, input, 80, 1, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE);
break; break;
} }
@ -981,11 +981,11 @@ void neoscrypt(const uchar *password, uchar *output, uint profile)
default: default:
case(0x0): case(0x0):
neoscrypt_fastkdf(password, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 32, output, 32); neoscrypt_fastkdf(input, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 32, output, 32);
break; break;
case(0x1): case(0x1):
neoscrypt_pbkdf2_sha256(password, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 1, output, 32); neoscrypt_pbkdf2_sha256(input, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 1, output, 32);
break; break;
} }
} }

View File

@ -2,7 +2,7 @@
extern "C" { extern "C" {
#endif #endif
void neoscrypt(const unsigned char *input, unsigned char *output, unsigned int profile); void neoscrypt(unsigned char *output, const unsigned char *input, unsigned int profile);
#if (__cplusplus) #if (__cplusplus)
} }

View File

@ -1777,7 +1777,7 @@ void print_hash_tests(void)
myriadhash(&hash[0], &buf[0]); myriadhash(&hash[0], &buf[0]);
printpfx("myriad", hash); printpfx("myriad", hash);
neoscrypt(&buf[0], &hash[0], 80000620); neoscrypt(&hash[0], &buf[0], 80000620);
printpfx("neoscrypt", hash); printpfx("neoscrypt", hash);
nist5hash(&hash[0], &buf[0]); nist5hash(&hash[0], &buf[0]);