1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-09 14:28:12 +00:00
Commit Graph

195 Commits

Author SHA1 Message Date
Con Kolivas
2b171f7fae Limit intensity range according to whether scrypt is in use or not. 2013-08-09 15:12:57 +10:00
ckolivas
837c7319f1 Fix extra argument passed to statline before. 2013-07-19 19:15:01 +10:00
Kano
ad1572f77f size check get_datestamp/get_timestamp and remove unused cgpu->init 2013-07-06 20:17:17 +10:00
Kano
385a70bea7 make all statline overflow safe 2013-07-06 19:15:59 +10:00
Kano
2d8cc36b82 GPU fan rpm display 9999 when it overflows 2013-06-28 23:19:09 +10:00
Kano
b5bf34dc85 applog/quit fix GPU errors created 2013-06-16 16:54:42 +10:00
Kano
7eba963477 remove varargs from logging/quit/in general as much as possible 2013-06-15 22:03:56 +10:00
ckolivas
065d4aabf6 Fix build. 2013-06-09 13:29:38 +10:00
Con Kolivas
727184d6ef Change the --device parameter parsing and configuration to use ranges and comma separated values. 2013-06-03 11:09:36 +10:00
Con Kolivas
bbdbf364cc Modify scrypt kernel message. 2013-06-03 10:22:13 +10:00
ckolivas
ee2671a559 Change the opencl shutdown sequence. 2013-05-29 12:18:35 +10:00
Con Kolivas
01fca3e756 Create a logwin_update function which mandatorily updates the logwin and use it when input is expected to prevent display refresh delays. 2013-05-19 21:28:53 +10:00
Con Kolivas
1a7a87c2a6 Use a discrete device target for scrypt that dynamically changes to ensure we still report a work utility even if no shares are submitted such as in solo mining. 2013-05-11 20:29:48 +10:00
Con Kolivas
b196d4fa0c Support more shares to be returned for scrypt mining. 2013-05-11 16:19:02 +10:00
Con Kolivas
0face980e8 Use cgtime in driver-opencl.c 2013-04-21 19:13:47 +10:00
Con Kolivas
13e19de4d5 Calculate work utility for devices that support target diffs of greater than 1, and update scrypt code to use it. 2013-03-17 10:15:24 +11:00
Con Kolivas
d7d630b86c Set default GPU threads to 1 for scrypt. 2013-03-16 08:56:37 +11:00
Kano
1c04d14067 cgminer -n to include a USB device list 2013-03-13 23:24:34 +11:00
Con Kolivas
5d581cb5d7 Use blank_get_statline_before for GPU devices that don't support adl monitoring. 2013-02-09 19:27:57 +11:00
Con Kolivas
5d122cad93 Provide wrappers for grabbing of thr value under the mining_thr_lock. 2013-02-03 23:41:41 +11:00
Kano
7abf30b2c0 distinguish between drv and it's id enum now called drv_id 2013-02-03 22:51:05 +11:00
Kano
61ec1fe91f mutex all access to mining_thr 2013-02-02 20:14:55 +11:00
Kano
212f32e5e0 Split thr_info array into control_thr and mining_thr pointers so more mining threads can be added later 2013-02-02 20:14:53 +11:00
Kano
a344deb6ac rename device_api -> device_drv and all related api -> drv and add a device_drv->drv enum for identifying which driver each is 2013-02-02 20:14:19 +11:00
Con Kolivas
d4f4c932bd Trivial space removal. 2012-12-04 21:57:29 +11:00
Con Kolivas
30ed3fb648 Get rid of unused last_work in opencl thread data. 2012-11-25 00:50:34 +11:00
Con Kolivas
217be6ed98 Do away with the flaky free_work api in the driver code which would often lose the work data in opencl and simply flush it before exiting the opencl scanhash. 2012-11-25 00:37:46 +11:00
Con Kolivas
ce7801beca Copy the work on opencl_free_work 2012-11-24 12:49:20 +11:00
Con Kolivas
2d35ac2567 Track all dynamically allocated memory within the work struct by copying work structs in a common place, creating freshly allocated heap ram for all arrays within the copied struct.
Clear all work structs from the same place to ensure memory does not leak from arrays within the struct.
Convert the gbt coinbase and stratum strings within the work struct to heap ram.
This will allow arbitrary lengths without an upper limit for the strings, preventing the overflows that happen with GBT.
2012-11-24 10:47:20 +11:00
Luke Dashjr
cce7508378 opencl: Use new dev_error function for REASON_DEV_NOSTART 2012-11-18 22:24:40 +00:00
Con Kolivas
101394ab70 Time for dynamic is in microseconds, not ms. 2012-10-18 00:57:03 +11:00
Con Kolivas
7450b25e75 Dramatically simplify the dynamic intensity calculation by oversampling many runs through the opencl kernel till we're likely well within the timer resolution on windows. 2012-10-14 12:07:27 +11:00
Con Kolivas
1c22c0e8d6 In opencl_free_work, make sure to still flush results in dynamic mode. 2012-10-14 08:37:54 +11:00
Con Kolivas
55396f534e Fix 4 * 0 being 0 that would break dynamic intensity mode. 2012-10-12 11:35:20 +11:00
Con Kolivas
4fbc570fa4 Reinstate the history on dynamic intensity mode to damp fluctuations in intensity but use an upper limit on how much the value can increase at any time to cope with rare overflows. 2012-10-11 20:30:47 +11:00
Con Kolivas
618999026f As we average gpu time over 5 work intervals for dynamic GPU intensity, there is no need to maintain a rolling average and it avoids the potential long term corruption of a single overflow value. 2012-09-21 16:10:34 +10:00
Con Kolivas
f1c6ae22f7 Adjust opencl intensity when adjusting thread count to prevent it getting pegged at a value below the minimum threads possible. 2012-08-31 09:13:19 +10:00
Con Kolivas
86d5377e72 Use atomic ops to never miss a nonce on opencl kernels, including nonce==0, also allowing us to make the output buffer smaller. 2012-08-23 10:48:15 +10:00
ckolivas
f63aeab1fe gpu->hit should be reset on new work as well. 2012-08-22 10:33:40 +10:00
ckolivas
edd9b81622 Do not add time to dynamic opencl calculations over a getwork. 2012-08-22 10:07:20 +10:00
Con Kolivas
e5ed708493 Do the dynamic timing in opencl code over a single pass through scanhash to make sure we're only getting opencl times contributing to the measured intervals. 2012-08-20 16:02:32 +10:00
Con Kolivas
8745ba1e6d Windows' timer resolution is limited to 15ms accuracy. This was breaking dynamic intensity since it tries to measure below this.
Since we are repeatedly sampling similar timeframes, we can average the gpu_us result over 5 different values to get very fine precision.
2012-08-15 09:38:45 +10:00
Con Kolivas
fc44b6d7a1 Use different variables for command line specified lookup gap and thread concurrency to differentiate user defined versus auto chosen values. 2012-08-05 15:32:44 +10:00
Con Kolivas
33019b11ba Show the correct base units on GPU summary. 2012-07-31 22:39:04 +10:00
Con Kolivas
500ed85bb3 Merge pull request #271 from luke-jr/cg_logfixes
Logging bugfixes
2012-07-29 03:46:49 -07:00
Con Kolivas
6b80592cde Sleeping on intensity decrease is broken, remove it. 2012-07-29 20:27:37 +10:00
Con Kolivas
7e55a41209 Sleep only the extra amount of time we overran the dynamic interval in dynamic mode. 2012-07-29 20:17:15 +10:00
Con Kolivas
5e756d3f6a Don't make opt_scrypt mandatory blocking with opencl code. 2012-07-24 20:53:05 +10:00
Con Kolivas
9a6c082ad1 Make the thread concurrency and lookup gap options hidden on the command line and autotune parameters with a newly parsed --shaders option. 2012-07-24 20:27:37 +10:00
Con Kolivas
f98774c35c Fix target testing with scrypt kernel as it would have been missing shares below target. 2012-07-24 17:52:54 +10:00
Con Kolivas
39f7d2fa74 Allow lookup gap and thread concurrency to be passed per device and store details in kernel binary filename. 2012-07-21 17:31:06 +10:00
Con Kolivas
ffe1318f70 Ignore negative intensities for scrypt. 2012-07-21 16:05:50 +10:00
Con Kolivas
04f55a0e66 Change the scale of intensity for scrypt kernel and fix a build warning. 2012-07-21 13:56:54 +10:00
Con Kolivas
e45ebb62a9 Correct target value passed to scrypt kernel. 2012-07-21 13:30:32 +10:00
Con Kolivas
a22edd2a7f Test the target in the actual scrypt kernel itself saving further calculations. 2012-07-21 10:25:33 +10:00
Con Kolivas
d72add9af3 Send correct values to scrypt kernel to get it finally working. 2012-07-20 16:16:18 +10:00
Con Kolivas
6ac14f4280 Don't enqueuewrite buffer at all for pad8 and pass work details around for scrypt in dev_blk. 2012-07-16 13:14:21 +10:00
Con Kolivas
a9a0bba18b Set the correct data for cldata and prepare for pad8 fixes. 2012-07-16 11:53:18 +10:00
Luke Dashjr
a1edc7dbcb Bugfix: Fix build without curses but with OpenCL 2012-07-15 05:37:49 +00:00
Con Kolivas
243d005b1b Set scrypt settings and buffer size in ocl.c code to be future modifiable. 2012-07-14 16:21:27 +10:00
Con Kolivas
bd10764e76 Cope with when we cannot set intensity low enough to meet dynamic interval by inducing a forced sleep. 2012-07-14 11:07:15 +10:00
Con Kolivas
238db52aa6 Make dynamic and scrypt opencl calls blocking. 2012-07-14 11:02:22 +10:00
Con Kolivas
aabc723326 Make sure goffset is set for scrypt and drop padbuffer8 to something manageable for now. 2012-07-14 00:30:25 +10:00
Con Kolivas
b085c338f6 Make scrypt buffers and midstate compatible with cgminer. 2012-07-13 20:28:36 +10:00
Con Kolivas
dd740caa98 Provide initial support for the scrypt kernel to compile with and mine scrypt with the --scrypt option. 2012-07-13 19:02:43 +10:00
Con Kolivas
5a65415b1e Enable completely compiling scrypt out. 2012-07-13 14:47:02 +10:00
Con Kolivas
176cdf8bbc Begin import of scrypt opencl kernel from reaper. 2012-07-13 14:44:52 +10:00
Con Kolivas
96f3a98838 Merge pull request #264 from luke-jr/life_init
Bugfix: Don't declare devices SICK if they're just busy initializing
2012-07-11 23:00:35 -07:00
Con Kolivas
f168d9696e Merge pull request #262 from luke-jr/bugfix_ocl_err
Bugfix: Adapt OpenCL scanhash errors to driver API change
2012-07-11 20:32:34 -07:00
Luke Dashjr
c57c308d1f Bugfix: Don't declare devices SICK if they're just busy initializing
This mainly applies to ModMiner since it takes 4-5 minutes to upload the bitstream
2012-07-11 20:29:06 +00:00
Luke Dashjr
a3998e26e8 Bugfix: Adapt OpenCL scanhash errors to driver API change (errors are now -1, not 0) 2012-07-11 19:43:55 +00:00
ckolivas
bf427de3ac Time opencl work from start of queueing a kernel till it's flushed when calculating dynamic intensity. 2012-07-11 23:05:10 +10:00
ckolivas
5c7e03084a Modify te scanhash API to use an int64_t and return -1 on error, allowing zero to be a valid return value. 2012-07-11 22:59:58 +10:00
ckolivas
66e7dc700d Check for gpu return times of >= 0, not just 0, to fix intensity dropping to -10. 2012-07-02 16:51:52 +10:00
ckolivas
c7eb9f3761 Microsecond multiplier error. 2012-06-26 14:05:54 +10:00
ckolivas
dffda2382f Increase GPU timing resolution to microsecond and add sanity check to ensure times are positive. 2012-06-26 12:50:52 +10:00
ckolivas
999dba479a Revert "Use much more damping when determining average opencl duration to change dynamic intensity."
This reverts commit 04e528d38f.

Didn't help.
2012-06-26 12:26:25 +10:00
ckolivas
04e528d38f Use much more damping when determining average opencl duration to change dynamic intensity. 2012-06-26 11:29:29 +10:00
ckolivas
79a4e25742 Opencl code may start executing before the clfinish order is given to it so get the start timing used for dynamic intensity from before the kernel is queued. 2012-06-26 11:12:13 +10:00
Con Kolivas
5cf4b7c432 Make the devices array a dynamically allocated array of pointers to allow unlimited devices. 2012-06-25 16:59:29 +10:00
Con Kolivas
eaf1505381 Dynamic intensity for GPUs should be calculated on a per device basis. Clean up the code to only calculate it if required as well. 2012-06-25 13:31:52 +10:00
ckolivas
eb36f8d271 Walk through the thread list instead of searching for them when disabling threads for dynamic mode. 2012-06-24 00:12:11 +10:00
Luke Dashjr
4eb23c7ea3 Bugfix: slay a variety of warnings 2012-06-13 17:03:26 +00:00
Con Kolivas
46a679f39e Revert "Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp."
This reverts commit 87708a6a0e.

Broken.
2012-05-05 12:55:00 +10:00
Con Kolivas
87708a6a0e Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp. 2012-05-04 23:05:00 +10:00
Philip Kaufmann
f479be0700 add goffset support for diakgcn with -v 1 and update kernel version 2012-04-27 09:58:30 +02:00
Con Kolivas
f5f089f5b4 Add a --gpu-map option which will allow arbitrarily mapping ADL devices to OpenCL devices for instances where association by enumeration alone fails. 2012-04-23 17:40:47 +10:00
Con Kolivas
127c4a5ff4 Initialise name variable. 2012-04-21 16:54:37 +10:00
Con Kolivas
e07c72687b Remove unnecessary check for variable that always has memory allocated. 2012-04-21 16:50:02 +10:00
Luke Dashjr
7987476db3 Bugfix: Missing "break" no-op in default case 2012-04-21 02:47:28 -04:00
Luke Dashjr
b8778839e9 Merge branch 'master' into unify_drivers
Conflicts:
	cgminer.c
2012-04-21 02:36:19 -04:00
Luke Dashjr
eca996547b CGPU API for device kernel name 2012-03-18 21:39:20 -04:00
Luke Dashjr
f05a319e01 CGPU API for device names 2012-03-18 21:32:01 -04:00
Luke Dashjr
303dbf4664 Abstract add_cgpu function, to handle device id numbering and devices array 2012-03-18 20:09:03 -04:00
Luke Dashjr
e131dfab31 Unify drivers as driver-*.c and add driver name to API 2012-03-13 12:18:23 -04:00