1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-09 22:38:01 +00:00
Commit Graph

194 Commits

Author SHA1 Message Date
phm
e260e79ab2 Added support for FugueCoin 2014-03-17 19:25:43 +01:00
phm
66f508d01f Added support for AnimeCoin 2014-03-05 18:00:30 +01:00
phm
8fe1b860c5 Added support for MyriadCoin groestl algorithm. 2014-03-01 09:33:32 +01:00
phm
3e89fb950f Merge branch 'quark'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
2014-02-23 18:56:05 +01:00
phm
d9fc7ccb4e Added support for QubitCoin 2014-02-22 19:21:05 +01:00
phm
c336a8399a Added support for INKcoin. 2014-02-22 16:58:00 +01:00
phm
089bfddc9b Merge branch 'quark' into inkcoin
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	ocl.c
	sgminer.c
2014-02-22 16:56:59 +01:00
Noel Maersk
44aed3570e Merge branch 'build-msvs2010-upd' into build-msvs2010-merge
Test in separate branch before merging into master.

Conflicts (resolved):
	api.c
	util.c
2014-02-22 17:05:07 +02:00
phm
e92d5ebf6e Added support for InkCoin 2014-02-22 12:46:46 +01:00
phm
60a0e00243 Added support for quarkcoin difficulty calculation. 2014-02-22 11:04:06 +01:00
phm
a17ec112f6 Added support for Quark mining. 2014-02-21 15:45:29 +01:00
phm
9585d2a8e6 Added support for DarkCoin kernel. Modified stats display to handle low difficulty values. 2014-02-19 23:06:29 +01:00
Noel Maersk
dc9f270d3a log: disable spammy log message. 2014-02-14 13:55:42 +02:00
Noel Maersk
dff7876b7a Merge branch 'master' into build-msvs2010-upd 2014-02-07 21:45:26 +02:00
Noel Maersk
8043af5ec7 core: write gpu-threads to config when using ncurses menu. 2014-02-07 00:52:49 +02:00
Noel Maersk
b5b20c19f6 core: make errors on reading experimental options from config less scary.
The config file is written poorly: first off, not all available options
are written (they have to be written manually, since there's no struct
enumeration); then, default values are not commented out.
2014-02-07 00:34:56 +02:00
Noel Maersk
23eb242a5f kernel: make psw usable, reorder cases alphabetically.
Closes https://github.com/veox/sgminer/issues/30
2014-02-01 16:01:37 +02:00
Brandon Tuomela
bda1070259 kernel: add psw kernel. 2014-02-01 15:51:03 +02:00
Sanjin Trošelj
8c0e250db2 VS2010 build: Prepare driver-opencl.c.
Cherry-picked by veox.

Changes from troky: struct device_drv opencl_drv tab alignment.
2014-01-27 23:16:57 +02:00
Noel Maersk
b56e65aa77 misc: line wrap. 2014-01-27 19:06:52 +02:00
Noel Maersk
cae071b837 Merge branch 'kernels' 2014-01-27 00:48:25 +02:00
Noel Maersk
5f795be64a core: use kernel name defines now that version date is not in the filenames.
Ideally, even this should not be needed, and specifying a kernel name string
should search for the appropriate file in kernel-path.
2014-01-23 11:46:47 +02:00
Noel Maersk
d04a8d174b tui: display line getting off-screen on narrow terminals. 2014-01-22 18:43:22 +02:00
Martin Danielsen
d11df698d1 --rawintensity option, by request of Dead2.
This setting allows to set the GPU intensity value directly without any modifiers, it does not
get any more raw than this! Look at the xintensity description raw for examples of regular
intensity values. You can also set this value through the ncurses interface by pressing:
G -> A -> select device id -> enter value.

Minor xintensity code cleanup as well.

Conflicts:
	driver-opencl.c
	miner.h
	sgminer.c
2014-01-22 18:24:43 +02:00
Noel Maersk
35a23942b1 kernel: fix alexkar* kernel crashes due to missing case in switch.
Fixes https://github.com/veox/sgminer/issues/27
2014-01-21 21:46:59 +02:00
Noel Maersk
5f326d64f5 kernel: allow choosing Alexey Karimov's kernels.
Am I the only one who gets a segfault?..
2014-01-21 10:36:55 +02:00
Noel Maersk
7950c10374 kernel: integrate Zuikkis' kernel, selectable with --kernel=zuikkis.
Kernel ckolivas is still the default. Needs documentation, too.

https://github.com/veox/sgminer/issues/4
2014-01-20 23:38:39 +02:00
Noel Maersk
9d1db95a28 misc: move scrypt130511.cl kernel file to kernel/ckolivas.cl
Prepare for more kernels. :)

Get rid of the kernel date, since this fudges up commit history.

Named after Con Kolivas, the most recent committer.
2014-01-20 16:04:43 +02:00
Noel Maersk
99fa25c27f core: don't use magic numbers to set xintensity. 2014-01-19 20:06:55 +02:00
Noel Maersk
463668b878 core: initial implementation of user-settable xintensity. Has a bug.
Changing `intensity` and to it from `xintensity` works fine.

Changing `xintensity` sometimes fails to enqueue kernel.

For example, starting with --xintensity=128 (on a 5850) and
then changing to 64, 42, or 100 is reliable. However, changing to 127 is
not, and produces

    [04:13:01] Error -54: Enqueueing kernel onto command queue. (clEnqueueNDRangeKernel)
    [04:13:01] GPU 0 failure, disabling!

Manually enabling the disabled GPU is successful, but the GPU no longer
submits shares.

This might be a hardware limitation.
2014-01-19 05:14:17 +02:00
Noel Maersk
9d0b7f9658 core: Accidentally left a part of a previously non-merged commit (thread display).
IMO threads don't change dynamically, so they shouldn't be displayed
in the main window, but in "GPU settings" menu instead.
2014-01-19 02:46:21 +02:00
Martin Danielsen
7aeae40af2 EXPERIMENTAL: A new way of setting intensity; introducing xintensity!
All of this is credited to ArGee of RGMiner, he did the initial ground work for this setting.

This new setting allows for a much finer grained intensity setting and also opens up for dual gpu threads on devices not previously able to. Note: make sure to use lower thread-concurrency values when you increase cpu threads.

Intensity is currently used to spawn GPU threads as a simple 2^value setting.
  I:13 =    8192 threads
  I:15 =   32768 threads
  I:17 =  131072 threads
  I:18 =  262144 threads
  I:19 =  524288 threads
  I:20 = 1048576 threads
Notice how the higher settings increase thread count tremendously.

Now enter the xintensity setting (Yes, I am a genius with my naming convention!).
It is simply a shader multiplier, obviously based on the amount of shaders you got on a card, this should allow the same value to scale with different card models.
   6970 with 1536 shaders: xI:64 = 98304 threads
R9 280X with 2048 shaders: xI:64 = 131072 threads
 R9 290 with 2560 shaders: xI:64 = 180224 threads
R9 290X with 2816 shaders: xI:64 = 163840 threads

   6970 with 1536 shaders: xI:300 = 460800 threads
R9 280X with 2048 shaders: xI:300 = 614400 threads
 R9 290 with 2560 shaders: xI:300 = 768000 threads
R9 290X with 2816 shaders: xI:300 = 844800 threads

It's now much easier to control thread intensity and it potentially allows for a uniform way of setting the intensity on your system. I'm very interested in constructive feedback, as I do not have access to a lot of different card models.

This change has been tested on 6970, R9 290, R9 290X - all with equal or a little better speeds than regular intensity setting after a little tuning, but your mileage may vary. Don't fret it, if this doesn't work for you, the regular intensity setting is still available.

Conflicts:
	driver-opencl.c
	sgminer.c
2014-01-18 21:11:31 +02:00
Noel Maersk
2f0fac6c66 core: Allow setting kernel.
https://github.com/veox/sgminer/issues/14
2014-01-17 17:44:18 +02:00
Noel Maersk
50066cf3c7 misc: Replace all remaining instances of 'cgminer' with 'sgminer'.
sed again.
2014-01-15 16:36:48 +02:00
Noel Maersk
b11ca3650a Remove remaining references to have_opencl. 2014-01-11 20:57:15 +02:00
Noel Maersk
744e819117 Remove last references to opt_nogpu. 2014-01-11 20:51:54 +02:00
Martin Danielsen
31123de410 -g or --gpu-threads now support comma separated values, yaaay!
It is exactly what it says, now you can finally put that Frankenrig configuration in one file.
The parameter follows the same design as gpu-engine and gpu-memclock.
2014-01-11 18:11:14 +02:00
Noel Maersk
d53b329f18 core: Revert printing threads for every GPU, this setting is not modifiable at run-time. 2014-01-11 17:42:37 +02:00
Martin Danielsen
89663c7e94 Display reject percentage instead of absolute accepted/rejected values
Changed GPU status line from "A:xxxxx R:xxx" to "R:0.0%". It shows (rejected/(accepted+rejected))*100, which is the percentage of rejections for a GPU. Total accepted and rejected in top status is unchanged.

GPU status lines now show both threads and intensity.
2014-01-11 17:41:30 +02:00
Noel Maersk
199cb10e18 HAVE_OPENCL is mandatory, remove checks form code an build system. 2013-12-05 20:49:18 +02:00
Noel Maersk
533f16aeb1 Increase MAX_INTENSITY to 42.
Untested, since I do not have the hardware that supports such high a setting.

Requested by yellowz06 on Litecoin Forum:
https://forum.litecoin.net/index.php/topic,6925.msg54952.html#msg54952
2013-11-27 14:08:27 +02:00
Noel Maersk
664fc33b0c Remove code for Bitcoin GPU kernel execution. 2013-11-24 22:16:16 +02:00
Noel Maersk
323af83fdb Remove define-clauses for USE_SCRYPT. 2013-11-24 19:52:14 +02:00
Noel Maersk
95586f72f0 Squash-merge branch dead-end with unnecessary check removals. 2013-11-24 16:18:10 +02:00
Noel Maersk
37cd3fb04c Get rid of several opt_scrypt checks.
--scrypt will eventually become a default, and is the only reason to use this
version of cgminer.
2013-11-24 15:28:53 +02:00
ckolivas
6d7471237d Use macro expansion to iterate over all device drivers without needing to explicitly code in support in all places. Pass a hotplug bool to the detect() function to prevent opencl trying to hogplug GPUs. 2013-09-28 15:11:06 +10:00
ckolivas
741b74309e Forward declare all device drivers in miner.h avoiding the need to export them everywhere else. 2013-09-28 14:00:18 +10:00
ckolivas
8875197466 Create a macro list of drivers to enable easier addition of further drivers. 2013-09-28 10:25:48 +10:00
Con Kolivas
3e84a19cda Fix --scrypt being required before scrypt intensities on command line or not working at all via config files. 2013-08-11 15:10:27 +10:00
Con Kolivas
2b171f7fae Limit intensity range according to whether scrypt is in use or not. 2013-08-09 15:12:57 +10:00
ckolivas
837c7319f1 Fix extra argument passed to statline before. 2013-07-19 19:15:01 +10:00
Kano
ad1572f77f size check get_datestamp/get_timestamp and remove unused cgpu->init 2013-07-06 20:17:17 +10:00
Kano
385a70bea7 make all statline overflow safe 2013-07-06 19:15:59 +10:00
Kano
2d8cc36b82 GPU fan rpm display 9999 when it overflows 2013-06-28 23:19:09 +10:00
Kano
b5bf34dc85 applog/quit fix GPU errors created 2013-06-16 16:54:42 +10:00
Kano
7eba963477 remove varargs from logging/quit/in general as much as possible 2013-06-15 22:03:56 +10:00
ckolivas
065d4aabf6 Fix build. 2013-06-09 13:29:38 +10:00
Con Kolivas
727184d6ef Change the --device parameter parsing and configuration to use ranges and comma separated values. 2013-06-03 11:09:36 +10:00
Con Kolivas
bbdbf364cc Modify scrypt kernel message. 2013-06-03 10:22:13 +10:00
ckolivas
ee2671a559 Change the opencl shutdown sequence. 2013-05-29 12:18:35 +10:00
Con Kolivas
01fca3e756 Create a logwin_update function which mandatorily updates the logwin and use it when input is expected to prevent display refresh delays. 2013-05-19 21:28:53 +10:00
Con Kolivas
1a7a87c2a6 Use a discrete device target for scrypt that dynamically changes to ensure we still report a work utility even if no shares are submitted such as in solo mining. 2013-05-11 20:29:48 +10:00
Con Kolivas
b196d4fa0c Support more shares to be returned for scrypt mining. 2013-05-11 16:19:02 +10:00
Con Kolivas
0face980e8 Use cgtime in driver-opencl.c 2013-04-21 19:13:47 +10:00
Con Kolivas
13e19de4d5 Calculate work utility for devices that support target diffs of greater than 1, and update scrypt code to use it. 2013-03-17 10:15:24 +11:00
Con Kolivas
d7d630b86c Set default GPU threads to 1 for scrypt. 2013-03-16 08:56:37 +11:00
Kano
1c04d14067 cgminer -n to include a USB device list 2013-03-13 23:24:34 +11:00
Con Kolivas
5d581cb5d7 Use blank_get_statline_before for GPU devices that don't support adl monitoring. 2013-02-09 19:27:57 +11:00
Con Kolivas
5d122cad93 Provide wrappers for grabbing of thr value under the mining_thr_lock. 2013-02-03 23:41:41 +11:00
Kano
7abf30b2c0 distinguish between drv and it's id enum now called drv_id 2013-02-03 22:51:05 +11:00
Kano
61ec1fe91f mutex all access to mining_thr 2013-02-02 20:14:55 +11:00
Kano
212f32e5e0 Split thr_info array into control_thr and mining_thr pointers so more mining threads can be added later 2013-02-02 20:14:53 +11:00
Kano
a344deb6ac rename device_api -> device_drv and all related api -> drv and add a device_drv->drv enum for identifying which driver each is 2013-02-02 20:14:19 +11:00
Con Kolivas
d4f4c932bd Trivial space removal. 2012-12-04 21:57:29 +11:00
Con Kolivas
30ed3fb648 Get rid of unused last_work in opencl thread data. 2012-11-25 00:50:34 +11:00
Con Kolivas
217be6ed98 Do away with the flaky free_work api in the driver code which would often lose the work data in opencl and simply flush it before exiting the opencl scanhash. 2012-11-25 00:37:46 +11:00
Con Kolivas
ce7801beca Copy the work on opencl_free_work 2012-11-24 12:49:20 +11:00
Con Kolivas
2d35ac2567 Track all dynamically allocated memory within the work struct by copying work structs in a common place, creating freshly allocated heap ram for all arrays within the copied struct.
Clear all work structs from the same place to ensure memory does not leak from arrays within the struct.
Convert the gbt coinbase and stratum strings within the work struct to heap ram.
This will allow arbitrary lengths without an upper limit for the strings, preventing the overflows that happen with GBT.
2012-11-24 10:47:20 +11:00
Luke Dashjr
cce7508378 opencl: Use new dev_error function for REASON_DEV_NOSTART 2012-11-18 22:24:40 +00:00
Con Kolivas
101394ab70 Time for dynamic is in microseconds, not ms. 2012-10-18 00:57:03 +11:00
Con Kolivas
7450b25e75 Dramatically simplify the dynamic intensity calculation by oversampling many runs through the opencl kernel till we're likely well within the timer resolution on windows. 2012-10-14 12:07:27 +11:00
Con Kolivas
1c22c0e8d6 In opencl_free_work, make sure to still flush results in dynamic mode. 2012-10-14 08:37:54 +11:00
Con Kolivas
55396f534e Fix 4 * 0 being 0 that would break dynamic intensity mode. 2012-10-12 11:35:20 +11:00
Con Kolivas
4fbc570fa4 Reinstate the history on dynamic intensity mode to damp fluctuations in intensity but use an upper limit on how much the value can increase at any time to cope with rare overflows. 2012-10-11 20:30:47 +11:00
Con Kolivas
618999026f As we average gpu time over 5 work intervals for dynamic GPU intensity, there is no need to maintain a rolling average and it avoids the potential long term corruption of a single overflow value. 2012-09-21 16:10:34 +10:00
Con Kolivas
f1c6ae22f7 Adjust opencl intensity when adjusting thread count to prevent it getting pegged at a value below the minimum threads possible. 2012-08-31 09:13:19 +10:00
Con Kolivas
86d5377e72 Use atomic ops to never miss a nonce on opencl kernels, including nonce==0, also allowing us to make the output buffer smaller. 2012-08-23 10:48:15 +10:00
ckolivas
f63aeab1fe gpu->hit should be reset on new work as well. 2012-08-22 10:33:40 +10:00
ckolivas
edd9b81622 Do not add time to dynamic opencl calculations over a getwork. 2012-08-22 10:07:20 +10:00
Con Kolivas
e5ed708493 Do the dynamic timing in opencl code over a single pass through scanhash to make sure we're only getting opencl times contributing to the measured intervals. 2012-08-20 16:02:32 +10:00
Con Kolivas
8745ba1e6d Windows' timer resolution is limited to 15ms accuracy. This was breaking dynamic intensity since it tries to measure below this.
Since we are repeatedly sampling similar timeframes, we can average the gpu_us result over 5 different values to get very fine precision.
2012-08-15 09:38:45 +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
33019b11ba Show the correct base units on GPU summary. 2012-07-31 22:39:04 +10:00
Con Kolivas
500ed85bb3 Merge pull request #271 from luke-jr/cg_logfixes
Logging bugfixes
2012-07-29 03:46:49 -07:00
Con Kolivas
6b80592cde Sleeping on intensity decrease is broken, remove it. 2012-07-29 20:27:37 +10:00
Con Kolivas
7e55a41209 Sleep only the extra amount of time we overran the dynamic interval in dynamic mode. 2012-07-29 20:17:15 +10:00
Con Kolivas
5e756d3f6a Don't make opt_scrypt mandatory blocking with opencl code. 2012-07-24 20:53:05 +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
f98774c35c Fix target testing with scrypt kernel as it would have been missing shares below target. 2012-07-24 17:52:54 +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