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