1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-01 18:55:36 +00:00
Commit Graph

153 Commits

Author SHA1 Message Date
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
Con Kolivas
a4b67f030f Fix various harmless warnings. 2012-01-29 21:06:17 +11:00
Con Kolivas
b8f845b478 Display information about the opencl platform with verbose enabled. 2012-01-29 16:43:38 +11:00
ckolivas
5d5584f80c Explicitly check for nvidia in opencl platform strings as well. 2012-01-29 16:31:03 +11:00
Con Kolivas
a3d90f84e2 Default to poclbm kernel on Tahiti (7970) since phatk does not work, even though performance is sub-standard so that at least it will mine successfully
by default.
2012-01-29 11:01:17 +11:00
Con Kolivas
31f6e8c782 Unset prog_built after it is patched because it needs rebuilding. 2012-01-28 17:06:28 +11:00
Con Kolivas
1e5035497b Retain cl program after every possible place we might build the program. 2012-01-28 16:29:19 +11:00
Con Kolivas
25caca9086 Revert "Don't explicitly retain the cl program as it is of no benefit to do so and may lead to problems when trying to release the program."
This reverts commit 32910463a3.

Turns out this does help.
2012-01-28 16:26:53 +11:00
Con Kolivas
32910463a3 Don't explicitly retain the cl program as it is of no benefit to do so and may lead to problems when trying to release the program. 2012-01-26 20:53:35 +11:00
Con Kolivas
d18d55649f Do not attempt to build the program that becomes the kernel twice. This could have been leading to failures on initialising cl. 2012-01-26 20:39:35 +11:00
Con Kolivas
c87460b34e Typo. 2012-01-26 19:42:57 +11:00
Con Kolivas
2ecabd8535 Some opencl compilers have issues with no spaces after -D in the compiler options. 2012-01-26 19:38:15 +11:00
Con Kolivas
77e9b1c2e8 Use calloced stack memory for CompilerOptions to ensure sprintf writes to the beginning of the char. 2012-01-26 13:06:39 +11:00
Con Kolivas
d7aac25489 Whitelist 79x0 cards to prefer no vectors as they perform better without. 2012-01-26 11:44:42 +11:00
Con Kolivas
3d4cfce8df Instead of using the BFI_INT patching hack on any device reporting cl_amd_media_ops, create a whitelist of devices that need it.
This should enable GCN architectures (ATI 79xx cards) to work properly.
2012-01-24 20:23:44 +11:00
Con Kolivas
6442c1aba0 Style police. 2012-01-22 20:36:57 +11:00
Con Kolivas
0719d40704 Clean up on failure to load a binary kernel. 2012-01-22 17:09:06 +11:00
Con Kolivas
fb0c580b62 Go to kernel build should we fail to clCreateProgramWithBinary instead of failing on that device.
Should fix the windows problems with devices not initialising.
2011-10-15 13:29:44 +11:00
Con Kolivas
2053de6d59 Add the directory name from the arguments cgminer was called from as well to allow it running from a relative pathname. 2011-09-06 10:11:34 +10:00
Con Kolivas
5848c11004 Confusion over the variable name for number of devices was passing a bogus value which likely was causing the zero sized binary issue. 2011-08-29 00:16:58 +10:00
Con Kolivas
3567b69e5e Remove fragile source patching for bitalign, vectors et. al and simply pass it with the compiler options. 2011-08-26 10:20:02 +10:00
Con Kolivas
3d5f555407 Allow a custom kernel path to be entered on the command line. 2011-08-25 14:42:03 +10:00
Con Kolivas
413d97096d Make cgminer look in the install directory for the .cl files making make install work correctly. 2011-08-25 13:59:46 +10:00
Con Kolivas
48180b697b Fail gracefully if unable to open the opencl files. 2011-08-25 13:10:53 +10:00
Con Kolivas
6d10ef2f6e Bump version numbers of kernels to indicate slightly different versions. 2011-08-22 10:17:23 +10:00
Con Kolivas
4beade3772 Retain the program immediately after it's created from source. 2011-08-18 22:42:37 +10:00
Con Kolivas
082e20df5f Explicitly tell the compiler to retain the program to minimise the chance of the zero sized binary errors. 2011-08-18 22:34:03 +10:00
Con Kolivas
0f782ba6bd Update poclbm kernel to FF sized mask and only check that range. 2011-08-17 15:47:18 +10:00
Con Kolivas
c40f51c7c1 Move to cgminer style buffer return and file naming convention and fix a compiler warning. 2011-08-17 15:06:59 +10:00
Phateus
d15d225a4c Changed phatk version to 2.2 2011-08-17 14:53:17 +10:00
Con Kolivas
42d49ffdc7 Revert "Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards."
This reverts commit 8f186e61e2.
2011-08-15 23:23:45 +10:00
Con Kolivas
cf543507c6 Revert "Preinitialise the devices only once on startup."
This reverts commit 071a0ad2f1.
2011-08-15 23:23:39 +10:00
Con Kolivas
b1289a0159 Revert "Move the non cl_ variables into the cgpu info struct to allow creating a new cl state on reinit, preserving known GPU variables."
This reverts commit 28880d0dc7.
2011-08-15 23:23:29 +10:00
Con Kolivas
28880d0dc7 Move the non cl_ variables into the cgpu info struct to allow creating a new cl state on reinit, preserving known GPU variables.
Create a new context from scratch in initCQ in case something was corrupted to maximise our chance of succesfully creating a new worker thread.
2011-08-13 20:54:20 +10:00
Con Kolivas
071a0ad2f1 Preinitialise the devices only once on startup. 2011-08-13 20:50:00 +10:00
Con Kolivas
8f186e61e2 Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards. 2011-07-30 16:59:54 +10:00
Con Kolivas
4365896ba2 Release the command queue created after we've copied the binary data. 2011-07-29 10:17:36 +10:00
Con Kolivas
283d5d2343 Create a command queue from the program created from source which allows us to flush the command queue in the hope it will not generate a zero sized binary any more. 2011-07-29 10:09:24 +10:00
Con Kolivas
2e37e3374e Out of order command queue may fail on osx. Try without if it fails. 2011-07-24 10:58:03 +10:00
Con Kolivas
4cd12aa8e0 Fix harmless warning. 2011-07-24 09:04:56 +10:00
Con Kolivas
a9e1a25518 Make it possible to select the choice of kernel on the command line. 2011-07-23 15:15:46 +10:00
Con Kolivas
116a9dc025 Update phatk kernel to one with new parameters for slightly less overhead again.
Make the queue kernel parameters call a function pointer to select phatk or poclbm.
2011-07-23 14:17:25 +10:00
Con Kolivas
1c67f6068c Sometimes the cl compiler generates zero sized binaries and only a reboot seems to fix it. 2011-07-21 10:07:29 +10:00
Con Kolivas
7b13812efb Kernels are safely flushed in a way that allows out of order execution to work. 2011-07-21 09:58:28 +10:00
Con Kolivas
a7707a26cb Rename the poclbm file to ensure a new binary is built since. 2011-07-18 10:42:24 +10:00
Con Kolivas
eea05c05b8 Update kernel with a shorter output path, and use 4k output buffer to match OS page sizes. 2011-07-15 13:04:25 +10:00
Con Kolivas
857902a13d Commit a new phatk kernel renamed to force new binary building and add proper support in makefiles. 2011-07-12 22:23:03 +10:00
Con Kolivas
0c910673b2 Set max preferred size to 256 to prevent lying cards from crashing when no worksize is set. 2011-07-10 00:30:12 +10:00
Con Kolivas
826cc4800e Opcode should be ULL. 2011-07-08 11:58:04 +10:00
Rusty Russell
efebee5ab8 Fix the case where there are no GPUs, and exit if they give errors.
If there are no GPUs, set nDevs to 0 not -1 (status is set to an
unhelpful -1001 here on my laptop, so we can't rely on a particular
status value).

Also, if nDevs is -1, exit rather than screwing up later.
2011-07-06 16:47:29 +09:30
Ycros
a636a6744f Merge branch 'cgminer' of git://github.com/ckolivas/cgminer into cgminer 2011-07-05 21:31:41 +10:00
Ycros
52d6e7ca37 Fixed fread issues under Windows. 2011-07-05 21:31:24 +10:00
Con Kolivas
a93b22c630 Make it possible to build without GPU mining by picking up HAVE_OPENCL from config.h. 2011-07-05 17:34:54 +10:00
Con Kolivas
821da37c84 Add hardware name to binary kernel name allowing for unique kernels for different cards on the same machine. 2011-07-04 19:56:27 +10:00
Con Kolivas
13b43cfad1 Update copyright and authors. 2011-07-04 19:56:27 +10:00
Con Kolivas
594b38b8cb Fix redefinition of gnu source. 2011-07-04 19:56:27 +10:00
Ycros
ec8319176e Build on windows using mingw32. 2011-07-04 19:56:27 +10:00
Ycros
5d301c8ba0 Make a binary load failure build from source. 2011-07-04 19:56:27 +10:00
Con Kolivas
3aa5be4fcf Reinstate binary kernel loading with fixes.
Build binaries with unique filenames from the kernel generated and save them.
Try to load this cached binary if it matches on next kernel instantiation.
This speeds up start-up dramatically, and has a unique kernel binary for different kernel configurations.
2011-07-04 19:47:46 +10:00
Con Kolivas
60f0bb19de Temporarily back out binary building till it's working more reliably. 2011-07-04 19:47:46 +10:00
Con Kolivas
a095f0fae2 Broke source generated program. Fix. 2011-07-04 19:47:46 +10:00
Con Kolivas
4d73057772 Build binaries with unique filenames from the kernel generated and save them.
Try to load this cached binary if it matches on next kernel instantiation.
This speeds up start-up dramatically, and has a unique kernel binary for different kernel configurations.
2011-07-04 19:47:46 +10:00
Con Kolivas
973b2199e1 Tidy. 2011-07-04 19:47:46 +10:00
Con Kolivas
2b6e841673 Use a buffer of up to 512 * 4 integers when retrieving work from the GPU.
This allows each local thread id to have one slot to put any positive results into, thus making overlapping results far less likely.
Thus races will be much rarer, allowing more threads.
It should also pick up blocks close to each other more reliably and hopefully decrease the number of rejects and opencl errors.
Do the search over the buffer entirely in a separate thread to allow the GPU to stay as busy as possible.
Detach threads from themselves to prevent unlucky even where dereferencing occurs by freeing the data that stores the thread info.
2011-07-04 19:47:46 +10:00
ckolivas
1dfbe60353 Put sanity limit on work size since some nvidia fail :( 2011-07-04 19:47:45 +10:00
Con Kolivas
6374e0fafe Import the phatk kernel. Enable it only for hardware with amd media ops for now since it crashes nvidia et. al.
Fallback to the poclbm kernel for the rest. Try harder to avoid stale blocks around longpoll detecting new blocks.
2011-07-04 19:47:45 +10:00
Con Kolivas
2dbb39444d Base was being set wrongly meaning we were repeating searches and the rate was actually lower than displayed :(
Tweak Ma with new changes.
Change default vectors to 2 since it's faster than 4 even when 4 is reported as preferred.
2011-07-04 19:47:45 +10:00
Con Kolivas
c566605195 Tab dainbramage. 2011-07-04 19:47:45 +10:00
Con Kolivas
11c8818558 32 bit only builds one elf, not an elf in an elf, so account for it to be able to bfi int patch properly. 2011-07-04 19:47:45 +10:00
Con Kolivas
623b9b9fd8 Patch bitalign separately from bfi_int.
Recover from failing to patch for bfi int.
2011-07-04 19:47:45 +10:00
Con Kolivas
06f3950658 Fix typo which prevented BFI INT patch working on multi-GPUs. 2011-07-04 19:47:45 +10:00
Con Kolivas
30e38e2ef8 Typo i - gpu 2011-07-04 19:47:45 +10:00
Con Kolivas
fdb46f2d9b 32bit fixes. 2011-07-04 19:47:45 +10:00
Con Kolivas
656b485d80 Make the worksize and vector width configurable. 2011-07-04 19:47:45 +10:00
Con Kolivas
401586f92a Only try to patch GPU referenced. 2011-07-04 19:47:45 +10:00
Con Kolivas
ac4ab6afdc Fix mutli-gpu initialisation when BFI_INT patching. 2011-07-04 19:47:45 +10:00
ckolivas
64f268c8c7 Display correct worksize. 2011-07-04 19:47:44 +10:00
Con Kolivas
808d5b07f9 Make output debug. 2011-07-04 19:47:20 +10:00
ckolivas
feb8cfc8fa applog fixes. 2011-07-04 19:47:19 +10:00
ckolivas
26546ad5b9 Make the optimisations per-gpu card and update code to work properly with multiple cards. 2011-07-04 19:47:19 +10:00
Con Kolivas
afc83cb25b Need gnu_source for memmem to work properly. 2011-07-04 19:47:19 +10:00
Con Kolivas
4cd5f47efa Revert "Multiple compiler warning fixes."
This reverts commit a5cbfbde2610e9f60e14b41a4e0595bcb34c772a.

Broke.
2011-07-04 19:47:19 +10:00
Con Kolivas
88761e6cf2 Multiple compiler warning fixes. 2011-07-04 19:47:19 +10:00
ckolivas
d28f526b1e Need memmem in advance() to work properly for patching. 2011-07-04 19:47:19 +10:00
ckolivas
19eea9067f Implement code detecting max work size and optimal vector width.
Use this to patch the kernel to suit the idea values for the card.
Then use these values when invoking the kernel.
2011-07-04 19:47:19 +10:00
ckolivas
33352213eb Report preferred vector width. 2011-07-04 19:47:19 +10:00
Con Kolivas
407df0f4b1 Use correct boolean testing and long enough string for cl_amd_media ops testing and kernel changing. 2011-07-04 19:47:19 +10:00
ckolivas
c2e4165590 Detect platforms that support cl_amd_media_ops and decide whether to BFI_INT patch or not.
Remove unused kernels.
2011-07-04 19:47:19 +10:00
ckolivas
b4d2733cfc Convert to poclbm kernel. 2011-07-04 19:47:19 +10:00
ckolivas
79fec01a46 Remove the input buffer and just pass args to the kernel as per plugin design. 2011-07-04 19:47:19 +10:00
Con Kolivas
f05270b8c8 Optimise loop and make debug debug only. 2011-07-04 19:47:19 +10:00
Con Kolivas
91e5cef3a5 Actually get first BFI_INT patch working. 2011-07-04 19:47:19 +10:00
Con Kolivas
a40003ab62 More bfi_int patching. 2011-07-04 19:47:19 +10:00
Con Kolivas
c548dea848 First BFI_INT patch changes. 2011-07-04 19:47:19 +10:00