mirror of
https://github.com/JayDDee/cpuminer-opt.git
synced 2025-09-17 23:44:27 +00:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f31fe1e8c2 |
@@ -33,53 +33,9 @@ supported.
|
||||
64 bit Linux or Windows operating system. Apple, Android and Raspberry Pi
|
||||
are not supported. FreeBSD YMMV.
|
||||
|
||||
Reporting bugs
|
||||
--------------
|
||||
|
||||
Bugs can be reported by sending am email to JayDDee246@gmail.com or opening
|
||||
an issue in git: https://github.com/JayDDee/cpuminer-opt/issues
|
||||
|
||||
Please include the following information:
|
||||
|
||||
1. CPU model, operating system, cpuminer-opt version (must be latest),
|
||||
binary file for Windows, changes to default build procedure for Linux.
|
||||
|
||||
2. Exact comand line (except user and pw) and intial output showing
|
||||
the above requested info.
|
||||
|
||||
3. Additional program output showing any error messages or other
|
||||
pertinent data.
|
||||
|
||||
4. A clear description of the problem including history, scope,
|
||||
persistence or intermittance, and reproduceability.
|
||||
|
||||
In simpler terms:
|
||||
|
||||
What is it doing?
|
||||
What should it be doing instead?
|
||||
Did it work in a previous release?
|
||||
Does it happen for all algos? All pools? All options? Solo?
|
||||
Does it happen all the time?
|
||||
If not what makes it happen or not happen?
|
||||
|
||||
Change Log
|
||||
----------
|
||||
|
||||
v3.11.5
|
||||
|
||||
Fixed AVX512 detection that could cause compilation errors on CPUs
|
||||
without AVX512.
|
||||
|
||||
Fixed "BLOCK SOLVED" log incorrectly displaying "Accepted" when a block
|
||||
is solved.
|
||||
Added share counter to share submitited & accepted logs
|
||||
Added job id to share submitted log.
|
||||
Share submitted log is no longer highlighted blue, there was too much blue.
|
||||
|
||||
Another CPU temperature fix for Linux.
|
||||
|
||||
Added bug reporting tips to RELEASE NOTES.
|
||||
|
||||
v3.11.4
|
||||
|
||||
Fixed scrypt segfault since v3.9.9.1.
|
||||
|
@@ -15,7 +15,7 @@
|
||||
#include "miner.h"
|
||||
#include "simd-utils.h"
|
||||
|
||||
#if defined(__VAES__) && defined(__AVX512F__) && defined(__AVX512VL__) && defined(__AVX512DQ__) && defined(__AVX512BW__)
|
||||
#if defined(__VAES__)
|
||||
|
||||
|
||||
int groestl256_4way_init( groestl256_4way_context* ctx, uint64_t hashlen )
|
||||
|
@@ -18,8 +18,6 @@
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
||||
#if defined(__VAES__) && defined(__AVX512F__) && defined(__AVX512VL__) && defined(__AVX512DQ__) && defined(__AVX512BW__)
|
||||
|
||||
#define LENGTH (256)
|
||||
|
||||
//#include "brg_endian.h"
|
||||
@@ -71,5 +69,4 @@ int groestl256_4way_init( groestl256_4way_context*, uint64_t );
|
||||
int groestl256_4way_update_close( groestl256_4way_context*, void*,
|
||||
const void*, uint64_t );
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -15,7 +15,7 @@
|
||||
#include "miner.h"
|
||||
#include "simd-utils.h"
|
||||
|
||||
#if defined(__VAES__) && defined(__AVX512F__) && defined(__AVX512VL__) && defined(__AVX512DQ__) && defined(__AVX512BW__)
|
||||
#if defined(__VAES__)
|
||||
|
||||
int groestl512_4way_init( groestl512_4way_context* ctx, uint64_t hashlen )
|
||||
{
|
||||
|
@@ -10,8 +10,6 @@
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
||||
#if defined(__VAES__) && defined(__AVX512F__) && defined(__AVX512VL__) && defined(__AVX512DQ__) && defined(__AVX512BW__)
|
||||
|
||||
#define LENGTH (512)
|
||||
|
||||
/* some sizes (number of bytes) */
|
||||
@@ -58,5 +56,4 @@ int groestl512_4way_update_close( groestl512_4way_context*, void*,
|
||||
int groestl512_4way_full( groestl512_4way_context*, void*,
|
||||
const void*, uint64_t );
|
||||
|
||||
#endif // VAES
|
||||
#endif // GROESTL512_HASH_4WAY_H__
|
||||
#endif /* __hash_h */
|
||||
|
20
configure
vendored
20
configure
vendored
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for cpuminer-opt 3.11.5.
|
||||
# Generated by GNU Autoconf 2.69 for cpuminer-opt 3.11.4.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
@@ -577,8 +577,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='cpuminer-opt'
|
||||
PACKAGE_TARNAME='cpuminer-opt'
|
||||
PACKAGE_VERSION='3.11.5'
|
||||
PACKAGE_STRING='cpuminer-opt 3.11.5'
|
||||
PACKAGE_VERSION='3.11.4'
|
||||
PACKAGE_STRING='cpuminer-opt 3.11.4'
|
||||
PACKAGE_BUGREPORT=''
|
||||
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.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures cpuminer-opt 3.11.5 to adapt to many kinds of systems.
|
||||
\`configure' configures cpuminer-opt 3.11.4 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -1404,7 +1404,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of cpuminer-opt 3.11.5:";;
|
||||
short | recursive ) echo "Configuration of cpuminer-opt 3.11.4:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1509,7 +1509,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
cpuminer-opt configure 3.11.5
|
||||
cpuminer-opt configure 3.11.4
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@@ -2012,7 +2012,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by cpuminer-opt $as_me 3.11.5, which was
|
||||
It was created by cpuminer-opt $as_me 3.11.4, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -2993,7 +2993,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='cpuminer-opt'
|
||||
VERSION='3.11.5'
|
||||
VERSION='3.11.4'
|
||||
|
||||
|
||||
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
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by cpuminer-opt $as_me 3.11.5, which was
|
||||
This file was extended by cpuminer-opt $as_me 3.11.4, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -6756,7 +6756,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
cpuminer-opt config.status 3.11.5
|
||||
cpuminer-opt config.status 3.11.4
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
AC_INIT([cpuminer-opt], [3.11.5])
|
||||
AC_INIT([cpuminer-opt], [3.11.4])
|
||||
|
||||
AC_PREREQ([2.59c])
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
92
cpu-miner.c
92
cpu-miner.c
@@ -885,7 +885,6 @@ static uint32_t hi_temp = 0;
|
||||
|
||||
struct share_stats_t
|
||||
{
|
||||
int share_count;
|
||||
struct timeval submit_time;
|
||||
double net_diff;
|
||||
double share_diff;
|
||||
@@ -895,7 +894,7 @@ struct share_stats_t
|
||||
};
|
||||
|
||||
#define s_stats_size 8
|
||||
static struct share_stats_t share_stats[ s_stats_size ] = {{0}};
|
||||
static struct share_stats_t share_stats[ s_stats_size ] = {0};
|
||||
static int s_get_ptr = 0, s_put_ptr = 0;
|
||||
static struct timeval last_submit_time = {0};
|
||||
|
||||
@@ -1057,7 +1056,7 @@ static int share_result( int result, struct work *null_work,
|
||||
my_stats.net_diff * 100.;
|
||||
|
||||
// check result
|
||||
if ( likely( result ) )
|
||||
if ( result )
|
||||
{
|
||||
accepted_share_count++;
|
||||
if ( ( my_stats.net_diff > 0. ) && ( my_stats.share_diff >= net_diff ) )
|
||||
@@ -1085,7 +1084,7 @@ static int share_result( int result, struct work *null_work,
|
||||
hashrate += thr_hashrates[i];
|
||||
global_hashrate = hashrate;
|
||||
|
||||
if ( likely( result ) )
|
||||
if ( result )
|
||||
{
|
||||
accept_sum++;
|
||||
norm_diff_sum += my_stats.target_diff;
|
||||
@@ -1107,58 +1106,66 @@ static int share_result( int result, struct work *null_work,
|
||||
|
||||
if ( use_colors )
|
||||
{
|
||||
if ( likely( result ) )
|
||||
{
|
||||
if ( unlikely( solved ) )
|
||||
{
|
||||
sres = CL_MAG "BLOCK SOLVED" CL_WHT;
|
||||
bcol = CL_MAG;
|
||||
}
|
||||
else
|
||||
sres = CL_GRN "Accepted" CL_WHT;
|
||||
acol = CL_GRN;
|
||||
}
|
||||
/*
|
||||
if ( unlikely( solved ) )
|
||||
{
|
||||
sres = CL_MAG "BLOCK SOLVED" CL_WHT;
|
||||
bcol = CL_MAG;
|
||||
acol = CL_GRN;
|
||||
}
|
||||
else if ( likely( result ) )
|
||||
if ( likely( result ) )
|
||||
{
|
||||
sres = CL_GRN "Accepted" CL_WHT;
|
||||
acol = CL_GRN;
|
||||
}
|
||||
*/
|
||||
else if ( stale )
|
||||
{
|
||||
sres = CL_YL2 "Stale share" CL_WHT;
|
||||
scol = CL_YL2;
|
||||
sprintf( job_id, "%sjob %s%s", CL_YL2, my_stats.job_id, CL_N );
|
||||
}
|
||||
else
|
||||
{
|
||||
sres = CL_RED "Rejected" CL_WHT;
|
||||
rcol = CL_RED;
|
||||
if ( stale )
|
||||
{
|
||||
sres = CL_YL2 "Stale share" CL_WHT;
|
||||
scol = CL_YL2;
|
||||
sprintf( job_id, "%sjob %s%s", CL_YL2, my_stats.job_id, CL_N );
|
||||
}
|
||||
else
|
||||
{
|
||||
sres = CL_RED "Rejected" CL_WHT;
|
||||
rcol = CL_RED;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
sres = solved ? CL_MAG "BLOCK SOLVED" CL_WHT
|
||||
: ( result ? CL_GRN "Accepted" CL_WHT
|
||||
: ( stale ? CL_YL2 "Stale share" CL_WHT
|
||||
: CL_RED "Rejected" CL_WHT ) );
|
||||
|
||||
|
||||
|
||||
if ( solved_block_count ) bcol = CL_MAG; else bcol = "\0";
|
||||
if ( accepted_share_count ) acol = CL_GRN; else acol = "\0";
|
||||
if ( stale_share_count ) scol = CL_YL2; else scol = "\0";
|
||||
if ( rejected_share_count ) rcol = CL_RED; else rcol = "\0";
|
||||
|
||||
if ( stale ) sprintf( job_id, "%sjob %s%s",
|
||||
CL_YL2, my_stats.job_id, CL_N );
|
||||
*/
|
||||
|
||||
}
|
||||
else // monochrome
|
||||
sres = solved ? "BLOCK SOLVED"
|
||||
: ( result ? "Accepted"
|
||||
: stale ? "Stale share" : "Rejected" );
|
||||
|
||||
applog( LOG_NOTICE, "%d: %s, %.3f secs (%dms), %sA:%d" CL_WHT " %sS:%d" CL_WHT " %sR:%d" CL_WHT " %sB:%d" CL_WHT,
|
||||
my_stats.share_count, sres, share_time, latency, acol,
|
||||
accepted_share_count, scol, stale_share_count, rcol,
|
||||
rejected_share_count, bcol, solved_block_count );
|
||||
applog( LOG_NOTICE, "%s, %.3f secs (%dms), %sA:%d" CL_WHT " %sS:%d" CL_WHT " %sR:%d" CL_WHT " %sB:%d" CL_WHT,
|
||||
sres, share_time, latency, acol, accepted_share_count, scol,
|
||||
stale_share_count, rcol, rejected_share_count, bcol,
|
||||
solved_block_count );
|
||||
|
||||
if ( have_stratum && !opt_quiet )
|
||||
applog2( LOG_INFO, "Share diff %.3g (%5f%%), block %d, %s",
|
||||
my_stats.share_diff, share_ratio, stratum.block_height,
|
||||
job_id );
|
||||
|
||||
if ( unlikely( reason && !result ) )
|
||||
if ( reason )
|
||||
{
|
||||
if ( !opt_quiet && !stale )
|
||||
applog( LOG_WARNING, "Reject reason: %s", reason );
|
||||
@@ -1182,7 +1189,7 @@ static int share_result( int result, struct work *null_work,
|
||||
applog2( LOG_INFO, "Target: %s...", str3 );
|
||||
}
|
||||
|
||||
if ( unlikely( opt_reset_on_stale && stale ) )
|
||||
if ( opt_reset_on_stale && stale )
|
||||
stratum_need_reset = true;
|
||||
}
|
||||
|
||||
@@ -1820,7 +1827,6 @@ void work_set_target_ratio( struct work* work, uint32_t* hash )
|
||||
// it can overflow the queue and overwrite stats for a share.
|
||||
pthread_mutex_lock( &stats_lock );
|
||||
|
||||
share_stats[ s_put_ptr ].share_count = submitted_share_count;
|
||||
gettimeofday( &share_stats[ s_put_ptr ].submit_time, NULL );
|
||||
share_stats[ s_put_ptr ].share_diff = work->sharediff;
|
||||
share_stats[ s_put_ptr ].net_diff = net_diff;
|
||||
@@ -1841,13 +1847,12 @@ bool submit_solution( struct work *work, void *hash,
|
||||
submitted_share_count++;
|
||||
work_set_target_ratio( work, hash );
|
||||
if ( !opt_quiet )
|
||||
applog( LOG_NOTICE, "%d: submitted by thread %d, job %s",
|
||||
submitted_share_count, thr->id, work->job_id );
|
||||
applog( LOG_BLUE, "Share %d submitted by thread %d",
|
||||
submitted_share_count, thr->id );
|
||||
return true;
|
||||
}
|
||||
else
|
||||
applog( LOG_WARNING, "%d: failed to submit share.",
|
||||
submitted_share_count );
|
||||
applog( LOG_WARNING, "Failed to submit share." );
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1859,13 +1864,12 @@ bool submit_lane_solution( struct work *work, void *hash,
|
||||
submitted_share_count++;
|
||||
work_set_target_ratio( work, hash );
|
||||
if ( !opt_quiet )
|
||||
applog( LOG_NOTICE, "%d: submitted by thread %d, lane %d, job %s",
|
||||
submitted_share_count, thr->id, lane, work->job_id );
|
||||
applog( LOG_BLUE, "Share %d submitted by thread %d, lane %d",
|
||||
submitted_share_count, thr->id, lane );
|
||||
return true;
|
||||
}
|
||||
else
|
||||
applog( LOG_WARNING, "%d: failed to submit share.",
|
||||
submitted_share_count );
|
||||
applog( LOG_WARNING, "Failed to submit share." );
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2269,15 +2273,13 @@ static void *miner_thread( void *userdata )
|
||||
// If unsubmiited nonce(s) found, submit now.
|
||||
if ( nonce_found && !opt_benchmark )
|
||||
{
|
||||
applog( LOG_WARNING, "BUG: See RELEASE_NOTES for reporting bugs. Algo = %s.",
|
||||
algo_names[ opt_algo ] );
|
||||
if ( !submit_work( mythr, &work ) )
|
||||
{
|
||||
applog( LOG_WARNING, "Failed to submit share." );
|
||||
break;
|
||||
}
|
||||
if ( !opt_quiet )
|
||||
applog( LOG_NOTICE, "%d: submitted by thread %d.",
|
||||
applog( LOG_BLUE, "Share %d submitted by thread %d.",
|
||||
accepted_share_count + rejected_share_count + 1,
|
||||
mythr->id );
|
||||
|
||||
|
17
sysinfos.c
17
sysinfos.c
@@ -41,7 +41,7 @@
|
||||
"/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input"
|
||||
|
||||
#define HWMON_PATH3 \
|
||||
"/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input"
|
||||
"/sys/class/hwmon/hwmon0/temp1_input"
|
||||
|
||||
#define HWMON_PATH \
|
||||
"/sys/class/hwmon/hwmon2/temp1_input"
|
||||
@@ -84,6 +84,21 @@ static inline float linux_cputemp(int core)
|
||||
if (!fd)
|
||||
fd = fopen(HWMON_PATH, "r");
|
||||
|
||||
if (!fd)
|
||||
// fd = fopen(HWMON_ALT1, "r");
|
||||
|
||||
// if (!fd)
|
||||
fd = fopen(HWMON_ALT2, "r");
|
||||
|
||||
if (!fd)
|
||||
fd = fopen(HWMON_ALT3, "r");
|
||||
|
||||
if (!fd)
|
||||
fd = fopen(HWMON_ALT4, "r");
|
||||
|
||||
if (!fd)
|
||||
fd = fopen(HWMON_ALT5, "r");
|
||||
|
||||
if (!fd)
|
||||
return tc;
|
||||
|
||||
|
Reference in New Issue
Block a user