driver-opencl.c


Log

Author Commit Date CI Message
Kano a344deb6 2013-01-05T23:47:26 rename device_api -> device_drv and all related api -> drv and add a device_drv->drv enum for identifying which driver each is
Con Kolivas d4f4c932 2012-12-04T21:57:29 Trivial space removal.
Con Kolivas 30ed3fb6 2012-11-25T00:50:34 Get rid of unused last_work in opencl thread data.
Con Kolivas 217be6ed 2012-11-25T00:37:46 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.
Con Kolivas ce7801be 2012-11-24T12:49:20 Copy the work on opencl_free_work
Con Kolivas 2d35ac25 2012-11-24T10:47:20 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.
Luke Dashjr cce75083 2012-11-18T22:24:40 opencl: Use new dev_error function for REASON_DEV_NOSTART
Con Kolivas 101394ab 2012-10-18T00:57:03 Time for dynamic is in microseconds, not ms.
Con Kolivas 7450b25e 2012-10-14T12:07:27 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.
Con Kolivas 1c22c0e8 2012-10-14T08:37:54 In opencl_free_work, make sure to still flush results in dynamic mode.
Con Kolivas 55396f53 2012-10-12T11:35:20 Fix 4 * 0 being 0 that would break dynamic intensity mode.
Con Kolivas 4fbc570f 2012-10-11T20:30:47 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.
Con Kolivas 61899902 2012-09-21T16:10:34 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.
Con Kolivas f1c6ae22 2012-08-31T09:13:19 Adjust opencl intensity when adjusting thread count to prevent it getting pegged at a value below the minimum threads possible.
Con Kolivas 86d5377e 2012-08-23T10:48:15 Use atomic ops to never miss a nonce on opencl kernels, including nonce==0, also allowing us to make the output buffer smaller.
ckolivas f63aeab1 2012-08-22T10:33:40 gpu->hit should be reset on new work as well.
ckolivas edd9b816 2012-08-22T10:07:20 Do not add time to dynamic opencl calculations over a getwork.
Con Kolivas e5ed7084 2012-08-20T14:52:06 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.
Con Kolivas 8745ba1e 2012-08-15T09:38:45 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.
Con Kolivas fc44b6d7 2012-08-05T15:32:44 Use different variables for command line specified lookup gap and thread concurrency to differentiate user defined versus auto chosen values.
Con Kolivas 33019b11 2012-07-31T22:39:04 Show the correct base units on GPU summary.
Con Kolivas 500ed85b 2012-07-29T03:46:49 Merge pull request #271 from luke-jr/cg_logfixes Logging bugfixes
Con Kolivas 6b80592c 2012-07-29T20:27:37 Sleeping on intensity decrease is broken, remove it.
Con Kolivas 7e55a412 2012-07-29T20:17:15 Sleep only the extra amount of time we overran the dynamic interval in dynamic mode.
Con Kolivas 5e756d3f 2012-07-24T20:53:05 Don't make opt_scrypt mandatory blocking with opencl code.
Con Kolivas 9a6c082a 2012-07-24T20:27:37 Make the thread concurrency and lookup gap options hidden on the command line and autotune parameters with a newly parsed --shaders option.
Con Kolivas f98774c3 2012-07-24T17:52:54 Fix target testing with scrypt kernel as it would have been missing shares below target.
Con Kolivas 39f7d2fa 2012-07-21T17:31:06 Allow lookup gap and thread concurrency to be passed per device and store details in kernel binary filename.
Con Kolivas ffe1318f 2012-07-21T16:05:50 Ignore negative intensities for scrypt.
Con Kolivas 04f55a0e 2012-07-21T13:56:54 Change the scale of intensity for scrypt kernel and fix a build warning.
Con Kolivas e45ebb62 2012-07-21T13:30:32 Correct target value passed to scrypt kernel.
Con Kolivas a22edd2a 2012-07-21T10:25:33 Test the target in the actual scrypt kernel itself saving further calculations.
Con Kolivas d72add9a 2012-07-20T16:16:18 Send correct values to scrypt kernel to get it finally working.
Con Kolivas 6ac14f42 2012-07-16T13:14:21 Don't enqueuewrite buffer at all for pad8 and pass work details around for scrypt in dev_blk.
Con Kolivas a9a0bba1 2012-07-16T11:53:18 Set the correct data for cldata and prepare for pad8 fixes.
Luke Dashjr a1edc7db 2012-07-15T05:37:49 Bugfix: Fix build without curses but with OpenCL
Con Kolivas 243d005b 2012-07-14T16:21:27 Set scrypt settings and buffer size in ocl.c code to be future modifiable.
Con Kolivas bd10764e 2012-07-14T11:07:15 Cope with when we cannot set intensity low enough to meet dynamic interval by inducing a forced sleep.
Con Kolivas 238db52a 2012-07-14T11:02:22 Make dynamic and scrypt opencl calls blocking.
Con Kolivas aabc7233 2012-07-14T00:30:25 Make sure goffset is set for scrypt and drop padbuffer8 to something manageable for now.
Con Kolivas b085c338 2012-07-13T20:28:36 Make scrypt buffers and midstate compatible with cgminer.
Con Kolivas dd740caa 2012-07-13T19:02:43 Provide initial support for the scrypt kernel to compile with and mine scrypt with the --scrypt option.
Con Kolivas 5a65415b 2012-07-13T14:47:02 Enable completely compiling scrypt out.
Con Kolivas 176cdf8b 2012-07-13T14:44:52 Begin import of scrypt opencl kernel from reaper.
Con Kolivas 96f3a988 2012-07-11T23:00:35 Merge pull request #264 from luke-jr/life_init Bugfix: Don't declare devices SICK if they're just busy initializing
Con Kolivas f168d969 2012-07-11T20:32:34 Merge pull request #262 from luke-jr/bugfix_ocl_err Bugfix: Adapt OpenCL scanhash errors to driver API change
Luke Dashjr c57c308d 2012-07-11T20:29:06 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
Luke Dashjr a3998e26 2012-07-11T19:43:55 Bugfix: Adapt OpenCL scanhash errors to driver API change (errors are now -1, not 0)
ckolivas bf427de3 2012-07-11T23:05:10 Time opencl work from start of queueing a kernel till it's flushed when calculating dynamic intensity.
ckolivas 5c7e0308 2012-07-11T22:59:58 Modify te scanhash API to use an int64_t and return -1 on error, allowing zero to be a valid return value.
ckolivas 66e7dc70 2012-07-02T16:51:52 Check for gpu return times of >= 0, not just 0, to fix intensity dropping to -10.
ckolivas c7eb9f37 2012-06-26T14:05:54 Microsecond multiplier error.
ckolivas dffda238 2012-06-26T12:50:52 Increase GPU timing resolution to microsecond and add sanity check to ensure times are positive.
ckolivas 999dba47 2012-06-26T12:26:25 Revert "Use much more damping when determining average opencl duration to change dynamic intensity." This reverts commit 04e528d38faacfe6765494216d6a180793447340. Didn't help.
ckolivas 04e528d3 2012-06-26T11:29:29 Use much more damping when determining average opencl duration to change dynamic intensity.
ckolivas 79a4e257 2012-06-26T11:12:13 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.
Con Kolivas 5cf4b7c4 2012-06-25T16:59:29 Make the devices array a dynamically allocated array of pointers to allow unlimited devices.
Con Kolivas eaf15053 2012-06-25T13:31:52 Dynamic intensity for GPUs should be calculated on a per device basis. Clean up the code to only calculate it if required as well.
ckolivas eb36f8d2 2012-06-24T00:12:11 Walk through the thread list instead of searching for them when disabling threads for dynamic mode.
Luke Dashjr 4eb23c7e 2012-06-13T16:56:31 Bugfix: slay a variety of warnings
Con Kolivas 46a679f3 2012-05-05T12:55:00 Revert "Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp." This reverts commit 87708a6a0e151401aee6cebf624940467993707b. Broken.
Con Kolivas 87708a6a 2012-05-04T23:05:00 Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp.
Philip Kaufmann f479be07 2012-04-27T08:29:56 add goffset support for diakgcn with -v 1 and update kernel version
Con Kolivas f5f089f5 2012-04-23T17:40:47 Add a --gpu-map option which will allow arbitrarily mapping ADL devices to OpenCL devices for instances where association by enumeration alone fails.
Con Kolivas 127c4a5f 2012-04-21T16:54:37 Initialise name variable.
Con Kolivas e07c7268 2012-04-21T16:50:02 Remove unnecessary check for variable that always has memory allocated.
Luke Dashjr 7987476d 2012-04-21T02:47:28 Bugfix: Missing "break" no-op in default case
Luke Dashjr b8778839 2012-04-21T02:36:19 Merge branch 'master' into unify_drivers Conflicts: cgminer.c
Luke Dashjr eca99654 2012-03-18T21:39:20 CGPU API for device kernel name
Luke Dashjr f05a319e 2012-03-18T21:06:47 CGPU API for device names
Luke Dashjr 303dbf46 2012-03-18T20:09:03 Abstract add_cgpu function, to handle device id numbering and devices array
Luke Dashjr e131dfab 2012-03-13T12:18:23 Unify drivers as driver-*.c and add driver name to API