Con Kolivas
13c57a5779
Properly initialise qd_lock mutex.
14 years ago
Con Kolivas
f90e73af51
Queue and pop precisely the same amount of work in flush_request to ensure all work is cleared and there isn't an uneven add/remove possible.
14 years ago
Con Kolivas
af6e7937ca
Signal handling in dns lookup code is responsible for libcurl crashes when multithreading.
...
Disable signal handling and use many curl handles instead, thus making work more asynchronous.
Theoretically a curl can wait forever on a dns lookup with this but it's extremely unlikely.
14 years ago
Con Kolivas
8a0bbf31d4
Update news information reflecting overall summary of gpu mining code.
14 years ago
Con Kolivas
91f9c527ba
Rename code and application binary to cgminer version 1.0.9 preempting version 1.1.0, moving main code to main.c.
14 years ago
Con Kolivas
8f098e4ab4
Put locking around the queued count to ensure we're never left without work.
14 years ago
Con Kolivas
122f0cf260
With pre-emptive queueing of work there is no need to have extra work in the queue by default. Make it a list of extra queue items instead of a total and default to 0.
14 years ago
Con Kolivas
821da37c84
Add hardware name to binary kernel name allowing for unique kernels for different cards on the same machine.
14 years ago
Con Kolivas
9950aa3927
Fix 32 bit builds.
14 years ago
Con Kolivas
5cbc33e756
Change default retry to 5 seconds.
14 years ago
Con Kolivas
de3d07d13b
Make the next work item queue 2/3 of the way through the work on the current work item.
...
Load the first queued extra work in the main function to avoid having a once-off variable in get_work().
Load an extra set of work for each function in advance once a longpoll is detected since every thread will need to get new work.
Discard requests with a separate function to ensure the right number is always queued.
14 years ago
Con Kolivas
ad787e1c2a
Move the flushing of old work into restart threads so it's done before any worker threads grab more work.
14 years ago
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.
14 years ago
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.
14 years ago
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.
14 years ago
Con Kolivas
13b43cfad1
Update copyright and authors.
14 years ago
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.
14 years ago
Con Kolivas
594b38b8cb
Fix redefinition of gnu source.
14 years ago
Michael Kedzierski
513b445d6a
autogen.sh fix
14 years ago
Con Kolivas
f6490010bc
Update gitignore.
14 years ago
Con Kolivas
3320c627f0
Added previously missing gnulib files.
...
Conflicts:
ocl.c
14 years ago
Ycros
8313606b5f
Fixed configure.ac to properly detect OpenCL on windows/mingw.
14 years ago
Ycros
ec8319176e
Build on windows using mingw32.
14 years ago
Ycros
9fe2106467
Fixed up using config.h instead of cpuminer-config.h.
14 years ago
Ycros
b645cc9f00
Updated README for building on win32.
14 years ago
Con Kolivas
edd0591e19
Make the number of queued work items configurable and default to 2.
14 years ago
Con Kolivas
131f60a5ee
Move queueing of one request to separate function in preparation for variable length queues.
14 years ago
Ycros
5d301c8ba0
Make a binary load failure build from source.
14 years ago
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.
14 years ago
Con Kolivas
86e40ed9c8
Stale block control makes it possible to make 2 threads per gpu the default again.
14 years ago
Con Kolivas
48caf248a7
Check for stale block after failed submission as well.
14 years ago
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.
14 years ago
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.
14 years ago
Con Kolivas
e2fb3e84cb
Queueing all kernel parameters dramatically reduces stale block rates.
14 years ago
ckolivas
7ae9afc40f
Profile points and warning clean ups.
14 years ago
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.
14 years ago
ckolivas
3983f1b9c3
Breaks nvidia building. Roll back for now.
...
Revert "configure.ac, Makefile.am: Allow setting of OpenCL location"
This reverts commit a9893d818dac53cb52c2ed06ece59195228f44d9.
14 years ago
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>
14 years ago
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.
14 years ago
Con Kolivas
88d9d631e3
Use two separate curl instances for submit and get and use separate threads for each to prevent one blocking the other.
14 years ago
Con Kolivas
72baac0889
Clearly delineate the cpus from the gpus for their local data.
14 years ago
Con Kolivas
142576a961
We already have gpu/cpu from id, so use that. Likely the current convoluted code is wrong and leading to segfaults!
14 years ago
Con Kolivas
18f8b0f9a5
Submit work async is still unreliable and only used for cpu mining, so back it out for now.
14 years ago
Con Kolivas
60f0bb19de
Temporarily back out binary building till it's working more reliably.
14 years ago
Con Kolivas
d5d4d1da16
Don't want to free the work data out of the transient structs.
14 years ago
Con Kolivas
a095f0fae2
Broke source generated program. Fix.
14 years ago
Con Kolivas
d100281df3
Make sure correct thread id is in work struct and correct cpu is set for per-cpu data.
14 years ago
Con Kolivas
998d8d45f4
Postcalc hash is already its own thread so work can be submitted synchronously from that.
14 years ago
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.
14 years ago
Con Kolivas
973b2199e1
Tidy.
14 years ago