mirror of
https://github.com/JayDDee/cpuminer-opt.git
synced 2025-09-17 23:44:27 +00:00
v3.5.5
This commit is contained in:
@@ -94,8 +94,9 @@ Errata
|
|||||||
------
|
------
|
||||||
|
|
||||||
cpuminer-opt does not work mining Decred algo at Nicehash and produces
|
cpuminer-opt does not work mining Decred algo at Nicehash and produces
|
||||||
only "invalid extranonce2 size" rejects. It works at Zpool.
|
only "invalid extranonce2 size" rejects.
|
||||||
|
|
||||||
|
x11evo optimizations not available on Windows.
|
||||||
Benchmark testing does not work for x11evo.
|
Benchmark testing does not work for x11evo.
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
|
|||||||
@@ -3,6 +3,12 @@ Compile instruction for Linux and Windows are at the bottom of this file.
|
|||||||
Change Log
|
Change Log
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
v3.5.5
|
||||||
|
|
||||||
|
x11evo fixed on Windows but at reduced performance.
|
||||||
|
Changed benchmark stats collection default to false and
|
||||||
|
added proper user and password checks to enable it.
|
||||||
|
|
||||||
v3.5.4
|
v3.5.4
|
||||||
|
|
||||||
x11evo fixed (broken in v3.5.2) and optimized 23% faster
|
x11evo fixed (broken in v3.5.2) and optimized 23% faster
|
||||||
|
|||||||
@@ -29,11 +29,18 @@
|
|||||||
static __thread uint32_t s_ntime = UINT32_MAX;
|
static __thread uint32_t s_ntime = UINT32_MAX;
|
||||||
static __thread int permutation[HASH_FUNC_COUNT] = { 0 };
|
static __thread int permutation[HASH_FUNC_COUNT] = { 0 };
|
||||||
|
|
||||||
|
inline void tt_swap( int *a, int *b )
|
||||||
|
{
|
||||||
|
int c = *a;
|
||||||
|
*a = *b;
|
||||||
|
*b = c;
|
||||||
|
}
|
||||||
|
|
||||||
inline void reverse( int *pbegin, int *pend )
|
inline void reverse( int *pbegin, int *pend )
|
||||||
{
|
{
|
||||||
while ( (pbegin != pend) && (pbegin != --pend) )
|
while ( (pbegin != pend) && (pbegin != --pend) )
|
||||||
{
|
{
|
||||||
swap_vars( *pbegin, *pend );
|
tt_swap( pbegin, pend );
|
||||||
pbegin++;
|
pbegin++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -62,7 +69,7 @@ static void next_permutation( int *pbegin, int *pend )
|
|||||||
|
|
||||||
while ( !(*i < *--k) ) /* do nothing */ ;
|
while ( !(*i < *--k) ) /* do nothing */ ;
|
||||||
|
|
||||||
swap_vars( *i, *k );
|
tt_swap( i, k );
|
||||||
reverse(j, pend);
|
reverse(j, pend);
|
||||||
return; // true
|
return; // true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,20 +136,26 @@ void getAlgoString( char *str, uint32_t count )
|
|||||||
//applog(LOG_DEBUG, "nextPerm %s", str);
|
//applog(LOG_DEBUG, "nextPerm %s", str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Broken on Windows
|
||||||
|
#if !((defined(__WINDOWS__)) || (defined(__WIN64)))
|
||||||
static __thread uint32_t saved_ntime = UINT32_MAX;
|
static __thread uint32_t saved_ntime = UINT32_MAX;
|
||||||
|
#endif
|
||||||
|
|
||||||
void evocoin_twisted_code( char *result, char *code )
|
void evocoin_twisted_code( char *result, char *code )
|
||||||
{
|
{
|
||||||
uint32_t h32, *be32 = get_stratum_job_ntime();
|
uint32_t h32, *be32 = get_stratum_job_ntime();
|
||||||
|
#if !((defined(__WINDOWS__)) || (defined(__WIN64)))
|
||||||
if ( *be32 != saved_ntime )
|
if ( *be32 != saved_ntime )
|
||||||
{
|
{
|
||||||
|
#endif
|
||||||
h32 = be32toh(*be32);
|
h32 = be32toh(*be32);
|
||||||
uint32_t count = getCurrentAlgoSeq(h32, INITIAL_DATE);
|
uint32_t count = getCurrentAlgoSeq(h32, INITIAL_DATE);
|
||||||
getAlgoString(code, count);
|
getAlgoString(code, count);
|
||||||
sprintf(result, "_%d_%s_", count, code);
|
sprintf(result, "_%d_%s_", count, code);
|
||||||
|
#if !((defined(__WINDOWS__)) || (defined(__WIN64)))
|
||||||
saved_ntime = *be32;
|
saved_ntime = *be32;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void x11evo_hash( void *state, const void *input )
|
static inline void x11evo_hash( void *state, const void *input )
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT([cpuminer-opt], [3.5.4])
|
AC_INIT([cpuminer-opt], [3.5.5])
|
||||||
|
|
||||||
AC_PREREQ([2.59c])
|
AC_PREREQ([2.59c])
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ uint32_t rpc2_target = 0;
|
|||||||
char *rpc2_job_id = NULL;
|
char *rpc2_job_id = NULL;
|
||||||
double opt_diff_factor = 1.0;
|
double opt_diff_factor = 1.0;
|
||||||
uint32_t zr5_pok = 0;
|
uint32_t zr5_pok = 0;
|
||||||
bool opt_stratum_stats = true;
|
bool opt_stratum_stats = false;
|
||||||
|
|
||||||
uint32_t accepted_count = 0L;
|
uint32_t accepted_count = 0L;
|
||||||
uint32_t rejected_count = 0L;
|
uint32_t rejected_count = 0L;
|
||||||
@@ -3066,6 +3066,10 @@ int main(int argc, char *argv[])
|
|||||||
if (!thr->q)
|
if (!thr->q)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
if ( rpc_pass && rpc_user )
|
||||||
|
opt_stratum_stats = ( strstr( rpc_pass, "stats" ) != NULL )
|
||||||
|
|| ( strcmp( rpc_user, "benchmark" ) == 0 );
|
||||||
|
|
||||||
/* start work I/O thread */
|
/* start work I/O thread */
|
||||||
if (thread_create(thr, workio_thread))
|
if (thread_create(thr, workio_thread))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user