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

377 Commits

Author SHA1 Message Date
Con Kolivas
5007805d1f Update CPU reentrant scan code to work properly for extended periods up to scantime and adjust rate properly.
Simplify locking in hashmeter since it's called relatively infrequently anyway.
Set gpuminer hashmeter interval update to log interval / 5 as well.
2011-07-04 19:56:27 +10:00
Con Kolivas
e4f9ea68a9 CPU mining is spending too much time in the work thread and not receiving restart messages.
Update the code to return at log interval / 5 and only get work at the right time.
2011-07-04 19:56:27 +10:00
Con Kolivas
8999bea110 People expect miners to run indefinitely instead of giving up by default so change to never giving up if json call fails. 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
9f726400d4 Logic error in the queueing of work ended up generating more stale blocks.
There is a small chance that a longpoll is signalled right at the start which would lead to a deadlock so check for first work before restart.
2011-07-04 19:56:27 +10:00
Con Kolivas
594b38b8cb Fix redefinition of gnu source. 2011-07-04 19:56:27 +10:00
Michael Kedzierski
513b445d6a autogen.sh fix 2011-07-04 19:56:27 +10:00
Con Kolivas
f6490010bc Update gitignore. 2011-07-04 19:56:27 +10:00
Con Kolivas
3320c627f0 Added previously missing gnulib files.
Conflicts:

	ocl.c
2011-07-04 19:56:27 +10:00
Ycros
8313606b5f Fixed configure.ac to properly detect OpenCL on windows/mingw. 2011-07-04 19:56:27 +10:00
Ycros
ec8319176e Build on windows using mingw32. 2011-07-04 19:56:27 +10:00
Ycros
9fe2106467 Fixed up using config.h instead of cpuminer-config.h. 2011-07-04 19:56:27 +10:00
Ycros
b645cc9f00 Updated README for building on win32. 2011-07-04 19:56:27 +10:00
Con Kolivas
edd0591e19 Make the number of queued work items configurable and default to 2. 2011-07-04 19:56:27 +10:00
Con Kolivas
131f60a5ee Move queueing of one request to separate function in preparation for variable length queues. 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
ffdffe77d3 Make sure the work gets attributed to the correct gpu.
Add an fflush to stderr to minimise garbled output when multiple threads write at once.
2011-07-04 19:56:27 +10:00
Con Kolivas
86e40ed9c8 Stale block control makes it possible to make 2 threads per gpu the default again. 2011-07-04 19:56:27 +10:00
Con Kolivas
48caf248a7 Check for stale block after failed submission as well. 2011-07-04 19:56:27 +10:00
Con Kolivas
09104ce3e8 Flag the work back to just thread 0 used by all the threads to avoid lots of queued older work for each thread. 2011-07-04 19:56:27 +10:00
Con Kolivas
bed692152f Get rid of the requirement for a static struct that needs locking to cache work.
Make it possible to use the thread id for getting work again.
Flag the getwork() function when we have a new block to explicitly discard any cached work when a new block is detected.
Store the header of each new work and compare it to blocks we're about to submit to decide if they're stale due to a new block and don't try to submit them.
This should significantly decrease the number of rejected blocks.
2011-07-04 19:56:26 +10:00
Con Kolivas
e2fb3e84cb Queueing all kernel parameters dramatically reduces stale block rates. 2011-07-04 19:56:26 +10:00
ckolivas
7ae9afc40f Profile points and warning clean ups. 2011-07-04 19:56:26 +10:00
ckolivas
b54a342529 Change default number of threads back to 1. The 2nd just increases the time taken to complete a work item thus increasing stale blocks, despite increasing the rate slightly. 2011-07-04 19:56:26 +10:00
ckolivas
3983f1b9c3 Breaks nvidia building. Roll back for now.
Revert "configure.ac, Makefile.am: Allow setting of OpenCL location"

This reverts commit a9893d818dac53cb52c2ed06ece59195228f44d9.
2011-07-04 19:56:26 +10:00
Tom Rini
2a8475b5bd configure.ac, Makefile.am: Allow setting of OpenCL location
Add two new configure flags, --with-opencl-libdir and --with-opencl-inc
to specify where OpenCL headers and libraries exist.  This now adds
a test for the OpenCL header file and makes not finding the library
or headers a fatal error.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
2011-07-04 19:56:26 +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
88d9d631e3 Use two separate curl instances for submit and get and use separate threads for each to prevent one blocking the other. 2011-07-04 19:47:46 +10:00
Con Kolivas
72baac0889 Clearly delineate the cpus from the gpus for their local data. 2011-07-04 19:47:46 +10:00
Con Kolivas
142576a961 We already have gpu/cpu from id, so use that. Likely the current convoluted code is wrong and leading to segfaults! 2011-07-04 19:47:46 +10:00
Con Kolivas
18f8b0f9a5 Submit work async is still unreliable and only used for cpu mining, so back it out for now. 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
d5d4d1da16 Don't want to free the work data out of the transient structs. 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
d100281df3 Make sure correct thread id is in work struct and correct cpu is set for per-cpu data. 2011-07-04 19:47:46 +10:00
Con Kolivas
998d8d45f4 Postcalc hash is already its own thread so work can be submitted synchronously from that. 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
6af84770d0 Add spaces to make output clearer. 2011-07-04 19:47:46 +10:00
ckolivas
e1dd27c5c2 Ensure that we don't overflow due to 32 bit limitations. 2011-07-04 19:47:45 +10:00
ckolivas
b38a02bd24 Make the log time hash rate a rolling exponential average so it doesn't fluctuate so dramatically. 2011-07-04 19:47:45 +10:00
ckolivas
08a7821072 Make the log show what the thread is: cpu or gpu and what number. 2011-07-04 19:47:45 +10:00
ckolivas
1dfbe60353 Put sanity limit on work size since some nvidia fail :( 2011-07-04 19:47:45 +10:00
ckolivas
f490143a9a Add local thread count to info, store hw error count, and make share submission debug only. 2011-07-04 19:47:45 +10:00
Con Kolivas
e016d0c8f3 Increase maximum intensity configurable to 14. 2011-07-04 19:47:45 +10:00
Con Kolivas
dfc52fd543 Make sure we can have gpu and cpu threads running. 2011-07-04 19:47:45 +10:00
Con Kolivas
24a28e29e9 Make it possible to run as a pure cpu miner by setting gpu threads to 0. 2011-07-04 19:47:45 +10:00
ckolivas
e1d01d0635 Minor fixes. 2011-07-04 19:47:45 +10:00
Con Kolivas
6c6bb02b90 There is no point having vectors in the it variable. 2011-07-04 19:47:45 +10:00