Con Kolivas
3c3fbdce1c
Remove the rounding-up of the scrypt padbuffer which was not effectual and counter-productive on devices with lots of ram, limiting thread concurrencies and intensities.
2013-03-15 21:48:48 +11:00
Con Kolivas
1c6d8a36d8
bufsize is an unsigned integer, make it so for debug.
2013-03-15 19:43:38 +11:00
Con Kolivas
767d6df1a5
Whitelist AMD APP SDK 2.8 for diablo kernel.
2013-03-09 16:45:58 +11:00
Con Kolivas
87b62bde43
Cope with the highest opencl platform not having usable devices.
2013-03-09 16:19:00 +11:00
Con Kolivas
266d31271a
Make the numbuf larger to accept larger scrypt parameters.
2013-02-10 15:07:49 +11:00
Con Kolivas
69494c12ed
BeaverCreek doesn't like BFI INT patching.
2012-12-10 15:38:21 +11:00
Con Kolivas
25c39c96bb
Ease the checking on allocation of padbuffer8 in the hope it works partially anyway on an apparently failed call.
2012-10-15 12:31:57 +11:00
Con Kolivas
cc3b693c6d
Minor warning fixes.
2012-10-07 12:27:02 +11:00
Con Kolivas
40b747bae6
Put scrypt warning on separate line to avoid 0 being shown on windows as bufsize.
2012-10-07 10:08:45 +11:00
Con Kolivas
d91af893c8
Use correct sdk version detection for SDK 2.7
2012-08-28 18:08:39 +10:00
Con Kolivas
69983b778b
Revert "Pick worksize 256 with Cypress if none is specified."
...
This reverts commit 482322a4b7
.
Worksize 256 was only helpful on cypress with ultra-low memory speeds with old SDKs and the new kernels require higher memory clocks, having the opposite net effect.
2012-08-28 17:19:38 +10:00
Con Kolivas
4fbe5bed15
OpenCL 1.0 does not have native atomic_add and extremely slow support with atom_add so detect opencl1.0 and use a non-atomic workaround.
2012-08-23 23:25:32 +10:00
Con Kolivas
482322a4b7
Pick worksize 256 with Cypress if none is specified.
2012-08-23 12:47:28 +10:00
Con Kolivas
be06cf7083
Give warning with sdk2.7 and phatk as well.
2012-08-23 12:44:42 +10:00
Con Kolivas
cce19d9005
Whitelist sdk2.7 for diablo kernel as well.
2012-08-23 12:42:10 +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
97aa6ea492
Fix build error without scrypt enabled.
2012-07-29 19:13:45 +10:00
Con Kolivas
43752ee58c
Limit thread concurrency for scrypt to 5xshaders if shaders is specified.
2012-07-26 16:12:45 +10:00
Con Kolivas
da1b996a39
Simplify repeated use of gpus[gpu]. in ocl.c
2012-07-26 16:10:21 +10:00
Con Kolivas
ea10b08dce
Find the nearest power of 2 maximum alloc size for the scrypt buffer that can successfully be allocated and is large enough to accomodate the thread concurrency chosen, thus mapping it to an intensity.
2012-07-25 22:02:14 +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
3a0d60cfe1
Always create the largest possible padbuffer for scrypt kernels even if not needed for thread_concurrency, giving us some headroom for intensity levels.
2012-07-23 21:30:30 +10:00
Con Kolivas
d8f81c18ee
Use the detected maximum allocable memory on a GPU to determine the optimal scrypt settings when lookup_gap and thread_concurrency parameters are not given.
2012-07-23 17:51:57 +10:00
Con Kolivas
89eb1fa393
Check the maximum allocable memory size per opencl device.
2012-07-23 17:41:31 +10:00
Con Kolivas
5087ff9069
Add debugging output if buffer allocation fails for scrypt and round up bufsize to a multiple of 256.
2012-07-23 16:37:13 +10:00
Con Kolivas
1711b4eb77
Display size of scrypt buffer used in debug.
2012-07-22 00:58:09 +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
7d53fba1ad
Reinstate GPU only opencl device detection.
2012-07-21 02:49:50 +10:00
Con Kolivas
d13a3f1d50
Decrease lookup gap to 1. Does not seem to help in any way being 2.
2012-07-21 02:47:27 +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
3e61db105d
Create command queue before compiling program in opencl.
2012-07-18 21:58:27 +10:00
Con Kolivas
471daecb5f
Initialise mdplatform.
2012-07-16 20:15:27 +10:00
Con Kolivas
428d5e5d4d
Limit scrypt to 1 vector.
2012-07-16 13:22:35 +10:00
Con Kolivas
a9a0bba18b
Set the correct data for cldata and prepare for pad8 fixes.
2012-07-16 11:53:18 +10:00
Con Kolivas
04edf4bfa2
Temporarily set opencl to use all devices to allow debugging of scrypt kernel rapidly.
2012-07-15 13:40:56 +10:00
Con Kolivas
53e9c61c02
Find the gpu platform with the most devices and use that if no platform option is passed.
2012-07-15 13:40:11 +10:00
Con Kolivas
884f83f313
Allow more platforms to be probed if first does not return GPUs.
2012-07-15 13:31:03 +10: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
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
e0296c411b
Set up buffer8 for scrypt.
2012-07-13 21:35:25 +10:00
Con Kolivas
0f43eb5eb7
Don't test nonce with sha and various fixes for scrypt.
2012-07-13 20:35:44 +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
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
9a3ae2660e
Add support for latest ATI SDK on windows.
2012-04-27 10:22:53 +10:00
Con Kolivas
bb31988347
Detect poorly performing combination of SDK and phatk kernel and add verbose warning at startup.
2012-04-25 11:41:35 +10:00
Con Kolivas
9175e4f25c
Display all OpenCL devices when -n is called as well to allow debugging of differential mapping of OpenCL to ADL.
2012-04-23 17:56:31 +10:00
Con Kolivas
6274fbe727
Change the preferred vector width to 1 for Tahiti only, not all poclbm kernels.
2012-03-30 09:32:42 +11:00
Con Kolivas
621bcca7f5
Use global offset parameter to diablo and poclbm kernel ONLY for 1 vector kernels.
2012-03-27 22:58:46 +11:00
Con Kolivas
39395eb1e0
Use poclbm preferentially on Tahiti now regardless of SDK.
2012-03-27 22:58:46 +11:00
Con Kolivas
edb070c833
Fixes.
2012-02-24 14:14:05 +11:00
Con Kolivas
fb077c6d59
Pass vectors * worksize to kernel to avoid one op.
2012-02-24 14:14:04 +11:00
Con Kolivas
709c4cd8e1
Use diablo kernel on all future SDKs for Tahiti and set preferred vector width to 1 on poclbm kernel only.
2012-02-23 20:24:32 +11:00
ckolivas
dfcb98debf
Use the SDK and hardware information to choose good performing default kernels.
2012-02-23 00:45:40 +11:00
ckolivas
d3ad87f5d2
Allow writing of multiple worksizes to the configuration file.
2012-02-22 20:13:23 +11:00
ckolivas
1b1fa5cd89
Allow writing of multiple vector sizes to the configuration file.
2012-02-22 20:08:29 +11:00
ckolivas
994cd77501
Allow writing of multiple kernels to the configuration file.
2012-02-22 20:01:09 +11:00
ckolivas
93efb726bb
Allow multiple different kernels to be chosen per device.
2012-02-22 19:38:01 +11:00
ckolivas
a54f76061b
Fix multiple work size entry.
2012-02-22 19:00:44 +11:00
Con Kolivas
26c59fbf0f
Allow the worksize to be set per-device.
2012-02-22 16:59:28 +11:00
Con Kolivas
deff55c640
Allow different vectors to be set per device.
2012-02-22 16:54:06 +11:00
Con Kolivas
bf3a9f94f1
Unintentionally dropped the device name from the binary filenames. Reinstate.
2012-02-22 14:42:20 +11:00
Con Kolivas
5d23d70f68
As all kernels will be new versions it's an opportunity to change the .bin format and make it simpler. Specifying bitalign is redundant and long can be
...
l.
2012-02-22 14:14:26 +11:00
Con Kolivas
d1cddf8bad
Update licensing to GPL V3.
2012-02-21 22:23:07 +11:00
Con Kolivas
00290a3e02
Select diablo kernel on all but GCN+SDK 2.6.
2012-02-21 21:48:10 +11:00
Con Kolivas
e9c3d7309a
Tahiti prefers worksize 64 with poclbm.
2012-02-19 18:32:56 +11:00
Con Kolivas
30936f17e3
No need to expressly retain the opencl program now that the zero binary issue is fixed.
2012-02-18 23:28:41 +11:00
Con Kolivas
810ad04578
More copyright updates.
2012-02-18 23:16:08 +11:00
Con Kolivas
22d3034e10
Show error code on any opencl failure status.
2012-02-18 23:13:45 +11:00
Con Kolivas
be9db9ce63
Copyright updates.
2012-02-18 23:00:21 +11:00
Con Kolivas
0b6e35cda9
Add detection for version 898.1 SDK as well but only give SDK 2.6 warning once on startup instead of with each device initialisation.
2012-02-18 22:49:49 +11:00
Con Kolivas
67c4ada1b7
Provide warning on each startup about sdk 2.6 and decrease poclbm kernel selection to LOG_INFO.
2012-02-16 01:10:11 +11:00
Con Kolivas
b4c86ba615
Give SDK 2.6 warning only on building a kernel for !GCN bitalign devices.
2012-02-16 00:48:34 +11:00
Con Kolivas
728e3d4398
Revert "Automatically choose phatk kernel for bitalign non-gcn ATI cards, and then only select poclbm if SDK2.6 is detected."
...
This reverts commit e7fdadfc8f
.
Broke kernel loading.
2012-02-16 00:45:08 +11:00
ckolivas
e7fdadfc8f
Automatically choose phatk kernel for bitalign non-gcn ATI cards, and then only select poclbm if SDK2.6 is detected.
2012-02-15 14:52:29 +11:00
ckolivas
6a78594618
Make SDK 2.6 warning and advice big and bold.
2012-02-15 14:47:02 +11:00
Con Kolivas
23c01bc79c
Make output buffer write only as per Diapolo's suggestion.
2012-02-13 13:19:04 +11:00
Con Kolivas
b2b5083bda
Microoptimise phatk kernel on return code.
2012-02-13 12:22:35 +11:00
Con Kolivas
fd05341a87
Do not loop indefinitely setting poclbm kernel to load a binary.
2012-02-13 10:39:26 +11:00
Con Kolivas
d689cfbdf6
Try to load a binary if we've defaulted to the poclbm kernel on SDK2.6
2012-02-13 10:06:26 +11:00
Con Kolivas
3057b701e7
Use the poclbm kernel on SDK2.6 with bitalign devices only if there is no binary available.
2012-02-13 09:59:29 +11:00
Con Kolivas
2c33f12255
Whitelist ATI SDK 2.6 to use the poclbm kernel by default.
2012-02-13 08:34:44 +11:00
Con Kolivas
fb99c8d52a
The longstanding generation of a zero sized binary appears to be due to the OpenCL library putting the binary in a RANDOM SLOT amongst 4 possible binary
...
locations. Iterate over each of them after building from source till the real binary is found and use that.
2012-02-12 21:38:45 +11:00
Con Kolivas
56907db2d6
Fix harmless warnings with -Wsign-compare to allow cgminer to build with -W.
2012-02-12 18:21:30 +11:00
Con Kolivas
405a2120f8
Remove unnecessary check for opt_debug on every invocation of applog at LOG_DEBUG and place the check in applog().
2012-02-11 20:11:18 +11:00
Con Kolivas
60c701457a
Retain cl program after successfully loading a binary image.
2012-02-11 16:41:41 +11:00
Con Kolivas
55bd031db3
Variable unused after this so remove setting it.
2012-02-11 16:38:55 +11:00
Con Kolivas
1c1b8bec9a
BFI INT patching is not necessarily true on binary loading of files and not true on ATI SDK2.6+. Report bitalign instead.
2012-02-11 15:58:07 +11:00
ckolivas
f2d5db0c77
Use only working kernels by default.
2012-02-11 11:48:58 +11:00
ckolivas
59d3d0112b
Implement diablo kernel support and try to make it work.
2012-02-11 11:48:12 +11:00
ckolivas
95a989da4d
Conflicting entries of cl_kernel may have been causing problems, and automatically chosen kernel type was not being passed on. Rename the enum to cl_kernels and store the chosen kernel in each clState.
2012-02-11 11:48:12 +11:00
ckolivas
e6cf96adfa
ALlow much longer filenames for kernels to load properly.
2012-02-11 11:48:12 +11:00
ckolivas
4822cca72b
Allow different kernels to be used by different devices and fix the logic fail of overcorrecting on last commit with !strstr.
2012-02-11 11:48:11 +11:00
Con Kolivas
196e8a0f76
Fix kernel selection process and build error.
2012-02-11 11:48:11 +11:00
Philip Kaufmann
47a09ceab8
added OpenCL >= 1.1 detection code, in preparation of OpenCL 1.1 global offset parameter support
2012-02-11 11:48:11 +11:00
ckolivas
cb7145b179
Add basic build ability with diakgcn and put all kernel names in configure.ac to avoid changing them in mutliple places.
2012-02-11 11:48:11 +11:00
ckolivas
53c1e9ae37
Allow the OpenCL platform ID to be chosen with --gpu-platform.
2012-02-04 15:15:57 +11:00
ckolivas
a4f47812ff
Iterate over all platforms displaying their information and number of devices when --ndevs is called.
2012-02-04 14:47:23 +11:00
Con Kolivas
ebaa2be1df
Update poclbm kernel for better performance on GCN and new SDKs with bitalign support when not BFI INT patching.
...
Update phatk kernel to work properly for non BFI INT patched kernels, providing support for phatk to run on GCN and non-ATI cards.
2012-02-03 18:19:39 +11:00
Con Kolivas
82af288e69
Revert "Fix various harmless warnings."
...
This reverts commit a4b67f030f
.
2012-01-29 22:57:29 +11:00