--forced-shutdown (never try to free resources on restart/shutdown)
--give-up-limit value (number of times to try connecting to a pool before switching to the next pool)
--gpu-auto-tune value (runs miner in a mode that tries to find best settings per GPU. 0-disabled, 1-normal, 2-fast [def. is 2])
--gpu-errors-alert value (notify when number of result validation errors for any GPU reaches this value [def. is 0 - disabled])
--list-algorithms (list available algorithms)
--list-devices (list available gpu devices)
--log-file filename (enable logging to file)
--log-file-mode value (defines logging mode, 0-2 [def. is 0 - truncate])
--main-pool-reconnect value (time, how often to try to reconnect back to the main pool. def. is 10 minutes, min. is 2 minutes)
--max-no-submit-responses value (max number of no-responses from pool to our submit messages before reconnecting [def. is 5])
--max-no-share-sent value (time, if no share is accepted from the pool for x time, restarts miner [def. is 0 - disabled])
--max-rejected-shares value (max number of allowed rejected shares on a connection. def. is 20 if '--enable-restart-on-rejected' option enabled)
--miner-priority value (main process priority, 1-5 where 5 is highest (def. is 3 - normal))
--multi-algorithm-job-mode value(how miner handles jobs when mining multiple algorithms. 0-no redirect, 1-redirect to a0, 2-redirect to first available, 3-redirect a1 to a0 only if a0 not working. def. is 0)
--pools-file filename (use pools file other than pools.txt)
--reboot-script-gpu-watchdog (filename, if set it turns off built in restart procedure on gpu failure, and instead runs this script)
--retry-time value (time, how much to wait before trying to reconnect to a pool)
--reset-vega (disable/enable Vega video cards on miner start)
--set-compute-mode (sets AMD gpu's to compute mode & disables crossfire - run as admin)
--setup (interactive mode to create basic configuration)
--startup-script filename (run custom script on miner start - set clocks, voltage, etc.)
--shutdown-temperature value (if this temperature is reached, miner will shutdown system (ADL must be enabled))
--verthash-dat-path value (verthash.dat location, if not using default)
; is used to separate algorithms, ! is used to separate parameters for an algorithm
On Linux you need to escape the ; character with a backslash! ( \; )
When setting any of the parameters don't use " or ' around the value!
Parameters that take a TIME value must be set in SECONDS!
--log-file-mode
0 - clear content of existing log file before writing
1 - append to existing log file's end
2 - add datetime stamp to log's name so it creates a new log file on every miner start
--gpu-id value (gpu id/s from --list-devices, separate values with ; and !)
--gpu-intensity value (gpu intensity, 1-31 or if > 31 it's treated as 'raw-intensity', separate values with ; and !)
--gpu-auto-intensity value (0-disabled, 1-light, 2-normal, separate values with ; and !)
--gpu-extra-config (additional config for some algorithms, separate values with ; and !)
--gpu-off-temperature value (gpu turn off temperature, separate values with ; and !)
--gpu-adl-type value (ADL to use (1-3), separate values with !)
--gpu-boost value (number from 0-50, separate values with ; and !)
--gpu-tweak-profile value (number from 0-10, 0 disables tweaking, separate values with ; and !)
--gpu-buffer-mode value (how to handle buffers when using --multi-algorithm-job-mode 3. 0-leave in vram, 1-release on algorithm switch. Default is 0, separate values with ; and !)
--gpu-ethash-mode value (1 or 2. Sets number of buffers used for DAG, separate values with ; and !)
--gpu-cn-mode value (0 or 1. Default is 0. If you have a weaker GPU try 1. separate values with ; and !)
--gpu-manual-tuning (enable manual GPU tuning through configuration file)
--gpu-progpow-mode value (1, 2 or 3. Sets how progpow program is created, separate values with ; and !)
--gpu-progpow-preload value (number from 0-16. Sets how many periods to pre-create. Def. is 2)
--gpu-autolykos2-preload value (number from 0-6, how many datasets to pre-create, depends on free GPU memory. def. is 0, separate values with ; and !)
Order of the parameters is important! Always set these parameters AFTER --algorithm parameter!
; is used to separate algorithms, ! is used to separate parameters for an algorithm
On Linux you need to escape the ; character with a backslash! ( \; )
When setting any of the parameters don't use " or ' around the value!
Important:
If algorithm is using 2 threads per GPU (auto chosen or manually set), there is a chance for memory leaking if intensity value for the second thread is too high.
This can cause system crash, gpu crash or an unstable system!
--gpu-ethash-mode:
1 - Create 1 buffer for DAG on GPU if driver allows big enough allocation
2 - Create 2 buffers for DAG on GPU
--gpu-buffer-mode:
0 - Leave buffers in memory for both algorithms when switching. Use if you have enough VRAM on the GPU to store all data from both algorithms.
1 - Recreate buffers when switching algorithms. This way you can 'dual mine' algorithms that together wouldn't fit in VRAM.
--gpu-progpow-mode:
1 - Use kernel 1. This kernel uses VRAM for DAG only
2 - Use kernel 2. This kernel uses VRAM for DAG and ~+150-200mb (depends from used intensity)
3 - Use kernel 3. This kernel uses VRAM for DAG and ~+300-500mb (depends from used intensity)
--gpu-autolykos2-preload
Pre-create the dataset/s for the next block/s while mining the current block.
Additional GPU memory needed.
Reported hashrate can vary a little bit. Overall it should increase your pool hashrate by a few percent.
There are 2 types of preloading :
- If you set preload value to 1 it will constantly keep preloading the next block (preferred for 4-8GB gpu's)
- If you set preload value to > 1 it will preload X number of datasets, and when a block arrives that isn't yet loaded, it will be created so miner can
start working on it, and then again X number of datasets will get preloaded.
"giveup_limit" : number, how many times to try connecting to a pool before switching to next pool from pools.txt. If set to 0 miner will quit and won't retry connecting.
"timeout" : time, when is a connection to a pool treated as timed out
"retry_time" : time, how much to wait before trying to reconnect to a pool
"reboot_script_gpu_watchdog" : filename to a batch file in miner directory, if set it turns off built in miner reset procedure on gpu failure, and instead runs this script
"main_pool_reconnect" : time,(minimum is 3 minutes or 180 sec), how often to try to reconnect back to the main pool. Default is 10 minutes.
"gpu_intensity" : 1-31, if set to 0 miner will try to find best settings
"gpu_shutdown_temperature" : number between 0-100, if this temperature is reached, miner will shutdown system (ADL must be enabled)
"gpu_off_temperature" : temperature in C, when to turn off GPU if it reaches this value. After value - 15, the GPU is turned on again automatically
"gpu_tweak_profile" : number 0-10 , applies tweaks to the GPU that can increase hashrate. 0 - not using any tweaks, 10 - max tweaking. If you add L after the number it will use the low settings (ex. "4L")
"gpu_ethash_mode" : number 1-2, Sets number of buffers used for DAG
Auto-tune tries to find good settings for your GPU's, and it can be controlled with parameter '--gpu-auto-tune'
Your final results will probably be different every time, that's because auto tune searches for the best settings live, and it's not a predefined value.
Modes:
0: disabled
1: normal
2: fast
By default auto-tune is disabled and set to '0'. You can enable it by setting '--gpu-auto-tune' value to 1 or 2.
Sometimes auto-tune won't return you the best settings, and also sometimes it can happen that it won't apply the auto detected settings, so you need to manually set the --gpu-raw-intensity value it returned.
Every GPU thread can be put into auto-tune mode, so you can combine stuff here, for example run a GPU with 2 threads, and set intensity for one of the threads manually, and leave the second on auto-tune.
Check the examples, to get an idea on how to use it.
After getting the result/s (--gpu-intensity), you should set the parameters manually in the batch file and run the miner, even if it will continue mining after the auto tune process is finished.
It's better to use it only for getting the values and then running the miner in normal mode (not auto tune mode)
To enable manual tuning of memory timings, add parameter : --gpu-manual-tuning
Optionally you can define a filename for the configuration file ( --gpu-manual-tuning tuning-ethash.txt ) so you can define a configuration for every algorithm.
Miner needs to be run with admin/root privileges, just like with --gpu-tweak-profile and --gpu-boost
Supported timings:
------------------------------------
HBM2 & GDDR5
------------
CKSRE
CKSRX
CL
RC
RP
REF
RFC
FAW
RAS
GDDR5
------------
RCDR
RCDRA
RCDW
RCDWA
RAS2RAS
TRP
HBM2
------------
CWL
MOD
MRD
PD
RCAB
RCDRD
RCDWR
RCPB
RDWR
RPAB
RPPB
RPRDA
RPWRA
RRDL
RRDS
RTP
WR
WRRD
WTRL
WTRS
------------------------------------
When you start SRBMiner first time with the --gpu-manual-tuning parameter added, an empty configuration file will be created ('gpu_manual_tuning.txt')
It might look like this:
{
"gpu_devices": [
{
"id": 0,
"enabled": true
},
{
"id": 1,
"enabled": true
},
{
"id": 2,
"enabled": true
}
]
}
"id"
GPU ID you get when you run --list-devices (GPU0, GPU1, GPU2)
"enabled"
true or false, if false then settings for that GPU won't be applied
Now it's up to you to add the timings and their values for every GPU to this configuration file.
If you want to use the default (read from bios) value, put 0 for value.
Use uppercase letters and exact namings as on the upper list of supported timings (best is to copy/paste from there)
For example :
{
"gpu_devices": [
{
"id": 0,
"enabled": true,
"REF": 13,
"RFC": 155
},
{
"id": 1,
"enabled": true,
"REF": 14,
"RFC": 160
},
{
"id": 2,
"enabled": true,
"REF": 15,
"RFC": 162
}
]
}
When done setting up the configuration file, save it, then go to miner window and press 'r' on your keyboard. This will reload & apply your settings!
You can do this as many times as you want!
Find optimal settings for each of your GPU's easily.
Next time when you start SRBMiner and you already have 'gpu_manual_tuning.txt' created & set, miner will auto load it and apply the configuration from it.
Custom memory timings without the need to modify your GPU's bios!
If you previously started a monitoring software like HWinfo or GPU-Z, tweaks can't get applied, a machine restart is needed!
--gpu-tweak-profile
1. Miner must run with administrator/root privileges
2. Be patient, it takes some time to find optimal settings for your gpu/rig. Always test 1 card at a time.
3. If you start getting invalid shares or compute errors, that means the profile is too much for that gpu, so lower it.
Tweak levels 0 - 10 :
0 - no change, uses your original settings
1 - light tweak
.
.
.
10 - max tweak
Not every gpu can handle the same profile, so you need to find the right one for every gpu you have.
Every profile has also weaker (low) settings. To use the low profile, add L after the profile number ( example: --gpu-tweak-profile 5L )
If using config file, you must surround the value with quotation marks if you want to use the L profile. Example : "5L"
--gpu-boost
1. Miner must run with administrator/root privileges
2. If you start getting invalid shares or compute errors, that means the boost value is too much for that gpu, so lower it.
This option is same as the famous 'rx-boost' which can be found in other miners.
It's value goes from 0 to 50.
--gpu-extra-config
This parameter accepts some additional parameters (parameter for parameters, right) that can be / doesn't have to be algorithm specific.
Right now it has only one parameter that it can set. In the future if more parameters will be added they will be separated with ':' .
Parameters by order :
1. Thread delay
This one sets the predefined delay (in seconds) that needs to be maintained between worker threads on same GPU for same algorithm. It is used only if a GPU is using 2+ threads per algorithm.
Accepted values : a b c d e f g h i j k l m n o p q r s t u
a = 1.00
b = 0.95
c = 0.90
.
.
.
u = 0.00
Example (set thread delay for every GPU to 0.90):
SRBMiner-MULTI.exe --disable-cpu --algorithm cryptonight_xhv --gpu-extra-config c --pool xxx --wallet xxx
You can mine up to 4 different algorithms at the same time.
Different combinations are available:
- Mine 4 different algorithms on the same GPU
- Mine 4 different algorithms on distinct GPU's
- Mine 4 different algorithms mixed CPU+GPU
If an algorithm can't be mined on a GPU device, it will only be mined on CPU.
There are 4 job handling modes available for you when mining multiple algorithms, and they can be set with parameter '--multi-algorithm-job-mode'
0: no redirect
1: redirect always to a0
2: redirect to next available algorithm
3: work on a1 jobs only when a0 doesn't have anything to work on
Job handling is available both to CPU and GPU mined algorithms.
It is advised to use parameter '--enable-workers-ramp-up', to avoid a potential system crash when all the workers try to allocate their resources at the same time.
What does this do ?
A quick example is the best way to understand :
You set two algorithms to mine, for example algorithm 0 to run on 2 GPU's and algorithm 1 on 4 GPU's.
If for some reason the pool you are mining on algorithm 1 disconnects (and you did not define failover pools), the GPU's that were mining algorithm 1 would now be idling, right?
Well, SRBMiner can take over jobs from algorithm 0 and work on them with those GPU's that would otherwise be idling, until the pool for algorithm 1 becomes available again!
After connecting back to algorithm 1 pool, the 4 GPU's will return back and continue working on jobs for algorithm 1!
Notice:
There is a simple rule for all multi algorithm aware parameters : separate algorithm settings with ';' and things within a specific algorithm with '!'
You can set multi algorithm mining only with cmd parameters, configuration files can set only 1 algorithm.
You can 'dual' mine ZIL with any other algorithm that is supported in SRBMiner-MULTI.
Popular combinations:
ZIL + ETH = 8GB
ZIL + ERGO = 4GB, 8GB
ZIL + VERT = 4GB, 8GB
ZIL + XHV = 4GB, 8GB
Important:
ZIL must be defined as A0 (first algorithm)!
Devfee for ZIL won't be mined, only for the second algorithm.
If you want to 'dual' mine algorithms that cant fit their data together in the GPU VRAM, but can separately, set parameter --gpu-buffer-mode to 1. (Check Cmd_Gpu_Parameters.txt)
Example : ZIL + XHV on a 4GB gpu. To get the max performance on both algorithms, you need to set --gpu-buffer-mode to 1 on that GPU.