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
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.
14 years ago
ckolivas
6af84770d0
Add spaces to make output clearer.
14 years ago
ckolivas
e1dd27c5c2
Ensure that we don't overflow due to 32 bit limitations.
14 years ago
ckolivas
b38a02bd24
Make the log time hash rate a rolling exponential average so it doesn't fluctuate so dramatically.
14 years ago
ckolivas
08a7821072
Make the log show what the thread is: cpu or gpu and what number.
14 years ago
ckolivas
f490143a9a
Add local thread count to info, store hw error count, and make share submission debug only.
14 years ago
Con Kolivas
e016d0c8f3
Increase maximum intensity configurable to 14.
14 years ago
Con Kolivas
dfc52fd543
Make sure we can have gpu and cpu threads running.
14 years ago
Con Kolivas
24a28e29e9
Make it possible to run as a pure cpu miner by setting gpu threads to 0.
14 years ago
ckolivas
e1d01d0635
Minor fixes.
14 years ago
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.
14 years ago
Con Kolivas
948b514cf2
The buffer needs to be flushed before enqueueing the kernel again.
...
Further optimise the mining loop by removing the need_work bool.
14 years ago
Con Kolivas
a45c54aaf8
Make postcalc_hash asynchronous as well.
14 years ago
Con Kolivas
378d18f8eb
Submit all work asynchronously via a submit_work thread.
14 years ago
Con Kolivas
612c3a456f
Curl doesn't like multiple instances so go back to one instance.
14 years ago
Con Kolivas
f0dcd127b4
Show which cpu mining thread when giving affinity message.
14 years ago
Con Kolivas
58f6bf42e2
Prevent 32bit overflow of local_mhashes as well.
14 years ago
Con Kolivas
00de822534
Upper limit should be -hashes.
14 years ago
Con Kolivas
c29a4322dd
Only update the hashmeter once per second from gpu mining threads.
14 years ago
Con Kolivas
063adc6434
Implement runtime selectable numbers of GPU threads and rename CPU threads option.
14 years ago
Con Kolivas
b6ae1db838
The submit_lock is not required nor helpful.
14 years ago
Con Kolivas
d1c0cccdf1
Show correct GPU from thread number.
14 years ago
Con Kolivas
f11149928a
Implement a potentially variable number of threads per gpu, setting it to 2 for now.
14 years ago
Con Kolivas
08f56f5f2f
Set default CPU threads to 0 if GPU mining.
14 years ago
Con Kolivas
295ef0f9b8
Discard accumulated work when longpoll indicates a new block.
14 years ago
Con Kolivas
f44e8fac12
Curl appears to be not thread safe so only have one curl open at a time.
14 years ago
Con Kolivas
343ae85137
Intensity 5 is too high for a normal desktop causing unacceptable lag so change the default to 4.
14 years ago
Con Kolivas
88e2cf7b34
Initialise libcurl properly.
14 years ago
Con Kolivas
656b485d80
Make the worksize and vector width configurable.
14 years ago
Con Kolivas
ead1281b57
Cleanup of return codes.
14 years ago
Con Kolivas
f6486efb71
Make the getting of work asynchronous from the mining threads requests by always having one work item queued.
...
This prevents drops in hash rates when getting work from a pool that is slow to respond.
Use a local static struct work in get_work that is used to queue one extra work item.
14 years ago
Con Kolivas
0cef8f8da4
Default scan timeout of 5 seconds is way too short leading to abandoning blocks too early and being seen as an "inefficient" miner. Increase it to 60.
14 years ago
Con Kolivas
d2cb012f5a
Detach the thread once created so we don't have to explicitly try and join it.
14 years ago
Con Kolivas
b7a177532d
Make a separate thread for work submission that returns immediately so that miner threads aren't kept waiting when submitting results to slow pools.
14 years ago
ckolivas
e8f4eeade1
Use total mhashes as a counter to prevent 32 bit overflows.
14 years ago
ckolivas
f792608893
Limit intensity to 10. Anything larger overflows.
...
Simplify test for new work.
14 years ago
ckolivas
feb8cfc8fa
applog fixes.
14 years ago
ckolivas
b19ee2f5f5
Make sure a GPU doesn't work on a block longer than opt_scantime.
14 years ago
ckolivas
26546ad5b9
Make the optimisations per-gpu card and update code to work properly with multiple cards.
14 years ago
Con Kolivas
852e78e7b4
Fix mutex unlocking with only one thread and opt_log_interval.
14 years ago
Con Kolivas
70f7357692
Make the output display the 5 second and total average Mhash/s.
...
Make the log interval configurable.
14 years ago
Con Kolivas
debe77767a
Use cpu_from_thr_id when binding threads.
14 years ago
Con Kolivas
4cd5f47efa
Revert "Multiple compiler warning fixes."
...
This reverts commit a5cbfbde2610e9f60e14b41a4e0595bcb34c772a.
Broke.
14 years ago
Con Kolivas
88761e6cf2
Multiple compiler warning fixes.
14 years ago
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.
14 years ago
ckolivas
237a5067c3
Skip trying to start thread of GPUs that don't successfully initcl().
14 years ago
ckolivas
14ca888373
Update help.
14 years ago
ckolivas
c08be809f2
Fix the setting of number of processors.
...
Add scan intensity variable.
14 years ago