Increase benchmark accuracy by using a result based on the last meassured speed after benchmark values changed by less than 0.1% after kernel repeats

Goal is a "what you see is what you get" value compared to: "singlehash -a 3 ?b?b?b?b?b?b?b" -- both with the same fixed -u and -n values
As a positive side-effect, this decreases total benchmark runtime
Add speed_cnt_total and speed_ms_total as a preparation to get rid of SPEED_MAXAGE which produces 0H/s display on very slow-hash types
Replace some floats with double which can (theoretically) become really big
This commit is contained in:
Jens Steube
2016-04-24 12:24:21 +02:00
parent 01baa89bc0
commit 96ef261326
3 changed files with 69 additions and 38 deletions
+11 -2
View File
@@ -955,9 +955,18 @@ struct __hc_device_param
uint exec_pos;
double exec_ms[EXEC_CACHE];
// this is "average" speed, we'll use this for benchmark and final status screen
u64 speed_cnt_total;
double speed_ms_total;
// this is "current" speed
uint speed_pos;
u64 speed_cnt[SPEED_CACHE];
float speed_ms[SPEED_CACHE];
double speed_ms[SPEED_CACHE];
// speed_rec is what additionally limits the "current" speed in time, not array elements
hc_timer_t speed_rec[SPEED_CACHE];
@@ -1291,7 +1300,7 @@ typedef struct
hc_timer_t timer_running; // timer on current dict
hc_timer_t timer_paused; // timer on current dict
float ms_paused; // timer on current dict
double ms_paused; // timer on current dict
/**
* hash_info and username