mirror of
https://github.com/JayDDee/cpuminer-opt.git
synced 2025-09-17 23:44:27 +00:00
v3.9.3.1
This commit is contained in:
@@ -38,6 +38,12 @@ supported.
|
|||||||
Change Log
|
Change Log
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
v3.9.3.1
|
||||||
|
|
||||||
|
Skippped v3.9.3 due to misidentification of v3.9.2.5 as v3.9.3.
|
||||||
|
Fixed x16r algo 25% invalid share reject rate. The bug may have also
|
||||||
|
affected other algos.
|
||||||
|
|
||||||
v3.9.2.5
|
v3.9.2.5
|
||||||
|
|
||||||
Fixed 2 regressions: hodl AES detection, x16r invalid shares with AVX2.
|
Fixed 2 regressions: hodl AES detection, x16r invalid shares with AVX2.
|
||||||
|
@@ -293,7 +293,7 @@ void x16r_4way_hash( void* output, const void* input )
|
|||||||
}
|
}
|
||||||
|
|
||||||
int scanhash_x16r_4way( int thr_id, struct work *work, uint32_t max_nonce,
|
int scanhash_x16r_4way( int thr_id, struct work *work, uint32_t max_nonce,
|
||||||
uint64_t *hashes_done )
|
uint64_t *hashes_done, struct thr_info *mythr)
|
||||||
{
|
{
|
||||||
uint32_t hash[4*16] __attribute__ ((aligned (64)));
|
uint32_t hash[4*16] __attribute__ ((aligned (64)));
|
||||||
uint32_t vdata[24*4] __attribute__ ((aligned (64)));
|
uint32_t vdata[24*4] __attribute__ ((aligned (64)));
|
||||||
@@ -303,6 +303,7 @@ int scanhash_x16r_4way( int thr_id, struct work *work, uint32_t max_nonce,
|
|||||||
const uint32_t Htarg = ptarget[7];
|
const uint32_t Htarg = ptarget[7];
|
||||||
const uint32_t first_nonce = pdata[19];
|
const uint32_t first_nonce = pdata[19];
|
||||||
uint32_t n = first_nonce;
|
uint32_t n = first_nonce;
|
||||||
|
/* int */ thr_id = mythr->id; // thr_id arg is deprecated
|
||||||
uint32_t *nonces = work->nonces;
|
uint32_t *nonces = work->nonces;
|
||||||
int num_found = 0;
|
int num_found = 0;
|
||||||
uint32_t *noncep = vdata + 73; // 9*8 + 1
|
uint32_t *noncep = vdata + 73; // 9*8 + 1
|
||||||
|
@@ -35,7 +35,7 @@ void x16s_getAlgoString( const uint8_t* prevblock, char *output )
|
|||||||
bool register_x16r_algo( algo_gate_t* gate )
|
bool register_x16r_algo( algo_gate_t* gate )
|
||||||
{
|
{
|
||||||
#if defined (X16R_4WAY)
|
#if defined (X16R_4WAY)
|
||||||
init_x16r_4way_ctx();
|
// init_x16r_4way_ctx();
|
||||||
gate->scanhash = (void*)&scanhash_x16r_4way;
|
gate->scanhash = (void*)&scanhash_x16r_4way;
|
||||||
gate->hash = (void*)&x16r_4way_hash;
|
gate->hash = (void*)&x16r_4way_hash;
|
||||||
#else
|
#else
|
||||||
@@ -52,7 +52,7 @@ bool register_x16r_algo( algo_gate_t* gate )
|
|||||||
bool register_x16s_algo( algo_gate_t* gate )
|
bool register_x16s_algo( algo_gate_t* gate )
|
||||||
{
|
{
|
||||||
#if defined (X16R_4WAY)
|
#if defined (X16R_4WAY)
|
||||||
init_x16r_4way_ctx();
|
// init_x16r_4way_ctx();
|
||||||
gate->scanhash = (void*)&scanhash_x16r_4way;
|
gate->scanhash = (void*)&scanhash_x16r_4way;
|
||||||
gate->hash = (void*)&x16r_4way_hash;
|
gate->hash = (void*)&x16r_4way_hash;
|
||||||
#else
|
#else
|
||||||
|
@@ -41,7 +41,7 @@ bool register_x16s_algo( algo_gate_t* gate );
|
|||||||
void x16r_4way_hash( void *state, const void *input );
|
void x16r_4way_hash( void *state, const void *input );
|
||||||
|
|
||||||
int scanhash_x16r_4way( int thr_id, struct work *work, uint32_t max_nonce,
|
int scanhash_x16r_4way( int thr_id, struct work *work, uint32_t max_nonce,
|
||||||
uint64_t *hashes_done );
|
uint64_t *hashes_done, struct thr_info *mythr );
|
||||||
|
|
||||||
void init_x16r_4way_ctx();
|
void init_x16r_4way_ctx();
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ void init_x16r_4way_ctx();
|
|||||||
void x16r_hash( void *state, const void *input );
|
void x16r_hash( void *state, const void *input );
|
||||||
|
|
||||||
int scanhash_x16r( int thr_id, struct work *work, uint32_t max_nonce,
|
int scanhash_x16r( int thr_id, struct work *work, uint32_t max_nonce,
|
||||||
uint64_t *hashes_done );
|
uint64_t *hashes_done, struct thr_info *mythr );
|
||||||
|
|
||||||
void init_x16r_ctx();
|
void init_x16r_ctx();
|
||||||
|
|
||||||
|
@@ -184,7 +184,7 @@ void x16r_hash( void* output, const void* input )
|
|||||||
}
|
}
|
||||||
|
|
||||||
int scanhash_x16r( int thr_id, struct work *work, uint32_t max_nonce,
|
int scanhash_x16r( int thr_id, struct work *work, uint32_t max_nonce,
|
||||||
uint64_t *hashes_done )
|
uint64_t *hashes_done, struct thr_info *mythr )
|
||||||
{
|
{
|
||||||
uint32_t _ALIGN(128) hash32[8];
|
uint32_t _ALIGN(128) hash32[8];
|
||||||
uint32_t _ALIGN(128) endiandata[20];
|
uint32_t _ALIGN(128) endiandata[20];
|
||||||
@@ -192,6 +192,7 @@ int scanhash_x16r( int thr_id, struct work *work, uint32_t max_nonce,
|
|||||||
uint32_t *ptarget = work->target;
|
uint32_t *ptarget = work->target;
|
||||||
const uint32_t Htarg = ptarget[7];
|
const uint32_t Htarg = ptarget[7];
|
||||||
const uint32_t first_nonce = pdata[19];
|
const uint32_t first_nonce = pdata[19];
|
||||||
|
/* int */ thr_id = mythr->id; // thr_id arg is deprecated
|
||||||
uint32_t nonce = first_nonce;
|
uint32_t nonce = first_nonce;
|
||||||
volatile uint8_t *restart = &(work_restart[thr_id].restart);
|
volatile uint8_t *restart = &(work_restart[thr_id].restart);
|
||||||
|
|
||||||
|
20
configure
vendored
20
configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for cpuminer-opt 3.9.3.
|
# Generated by GNU Autoconf 2.69 for cpuminer-opt 3.9.3.1.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
@@ -577,8 +577,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='cpuminer-opt'
|
PACKAGE_NAME='cpuminer-opt'
|
||||||
PACKAGE_TARNAME='cpuminer-opt'
|
PACKAGE_TARNAME='cpuminer-opt'
|
||||||
PACKAGE_VERSION='3.9.3'
|
PACKAGE_VERSION='3.9.3.1'
|
||||||
PACKAGE_STRING='cpuminer-opt 3.9.3'
|
PACKAGE_STRING='cpuminer-opt 3.9.3.1'
|
||||||
PACKAGE_BUGREPORT=''
|
PACKAGE_BUGREPORT=''
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
@@ -1332,7 +1332,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures cpuminer-opt 3.9.3 to adapt to many kinds of systems.
|
\`configure' configures cpuminer-opt 3.9.3.1 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -1404,7 +1404,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of cpuminer-opt 3.9.3:";;
|
short | recursive ) echo "Configuration of cpuminer-opt 3.9.3.1:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -1509,7 +1509,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
cpuminer-opt configure 3.9.3
|
cpuminer-opt configure 3.9.3.1
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@@ -2012,7 +2012,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by cpuminer-opt $as_me 3.9.3, which was
|
It was created by cpuminer-opt $as_me 3.9.3.1, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@@ -2993,7 +2993,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='cpuminer-opt'
|
PACKAGE='cpuminer-opt'
|
||||||
VERSION='3.9.3'
|
VERSION='3.9.3.1'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@@ -6690,7 +6690,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by cpuminer-opt $as_me 3.9.3, which was
|
This file was extended by cpuminer-opt $as_me 3.9.3.1, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -6756,7 +6756,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
cpuminer-opt config.status 3.9.3
|
cpuminer-opt config.status 3.9.3.1
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT([cpuminer-opt], [3.9.3])
|
AC_INIT([cpuminer-opt], [3.9.3.1])
|
||||||
|
|
||||||
AC_PREREQ([2.59c])
|
AC_PREREQ([2.59c])
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
|
@@ -272,7 +272,7 @@ do { \
|
|||||||
_mm_extract_epi64( s1, 0 ), _mm_extract_epi64( s0, 0 ) ); \
|
_mm_extract_epi64( s1, 0 ), _mm_extract_epi64( s0, 0 ) ); \
|
||||||
casti_m256i( d,1 ) = _mm256_set_epi64x( \
|
casti_m256i( d,1 ) = _mm256_set_epi64x( \
|
||||||
_mm_extract_epi64( s3, 1 ), _mm_extract_epi64( s2, 1 ), \
|
_mm_extract_epi64( s3, 1 ), _mm_extract_epi64( s2, 1 ), \
|
||||||
_mm_extract_epi64( s1, 1 ), _mm_extract_epi32( s0, 1 ) ); \
|
_mm_extract_epi64( s1, 1 ), _mm_extract_epi64( s0, 1 ) ); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
#define mm256_bswap_intrlv_4x64_256( d, src ) \
|
#define mm256_bswap_intrlv_4x64_256( d, src ) \
|
||||||
@@ -671,6 +671,13 @@ static inline void mm256_intrlv_2x128( const void *d, const void *s0,
|
|||||||
casti_m256i( d,3 ) = mm256_concat_128( s1hi, s0hi );
|
casti_m256i( d,3 ) = mm256_concat_128( s1hi, s0hi );
|
||||||
|
|
||||||
if ( bit_len <= 512 ) return;
|
if ( bit_len <= 512 ) return;
|
||||||
|
if ( bit_len <= 640 )
|
||||||
|
{
|
||||||
|
casti_m256i( d,4 ) = mm256_concat_128(
|
||||||
|
_mm256_castsi256_si128( casti_m256i( s1,2 ) ),
|
||||||
|
_mm256_castsi256_si128( casti_m256i( s0,2 ) ) );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
s0hi = _mm256_extracti128_si256( casti_m256i( s0,2), 1 );
|
s0hi = _mm256_extracti128_si256( casti_m256i( s0,2), 1 );
|
||||||
s1hi = _mm256_extracti128_si256( casti_m256i( s1,2), 1 );
|
s1hi = _mm256_extracti128_si256( casti_m256i( s1,2), 1 );
|
||||||
|
Reference in New Issue
Block a user