From 025042a171b2860c55eb1df455303f89b2198f80 Mon Sep 17 00:00:00 2001 From: Kerney666 <44686606+Kerney666@users.noreply.github.com> Date: Sun, 5 Sep 2021 00:25:05 +0200 Subject: [PATCH] v0.8.5 release. --- README.md | 13 +++- USAGE.txt | 63 ++++++++++++++-- doc/CLOCKS_VOLTAGE_CONTROL.txt | 133 +++++++++++++++++++++++++++++++++ 3 files changed, 201 insertions(+), 8 deletions(-) create mode 100644 doc/CLOCKS_VOLTAGE_CONTROL.txt diff --git a/README.md b/README.md index 10ca594..3ebe14b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# teamredminer v0.8.4 +# teamredminer v0.8.5 This is an optimized miner for AMD GPUs created by todxx and kerney666. **Download is available in the [github releases section](https://github.com/todxx/teamredminer/releases).** @@ -54,6 +54,7 @@ This miner includes the following algorithms and their respective dev fees: GPUs supported and tested: - Navi - RX 5700(XT)/5600(XT)/5500(XT) for supported algos in the table below. +- Big Navi - RX 6900XT, RX 6800(XT), RX 6700(XT), RX6600XT - same support as for Navi. - Vega - RX Vega 64/56, Vega FE, Radeon VII (Vega 2) - Polaris - RX 580/480/570/470/560/460/550 - Fiji - R9 Fury/Fury X/Nano, MI8 (supported but with very limited testing). @@ -109,6 +110,16 @@ For example command lines please see the batch/shell scripts in the miner downlo For command line options see the [USAGE.txt](USAGE.txt) file that comes with the miner. ----------- +Changes in v0.8.5 + +Release notes: +- General: added Windows clocks/voltage/built-in timings control (beta functionality). See section in --help and CLOCKS_VOLTAGE_CONTROL.txt. +- General: fixed some issues with Windows fan control, mostly for Big Navi gpus. +- General: added mem temp limits (stop/resume), see --mem_temp_limit and --mem_temp_resume. +- Ethash: added support for forcing ethash pool hashrate reports (see --eth_hash_report). +- Ethash: fixed hashrate reports for Crazypool when using failover pools. +- Autolykos2: added extranonce subscription support for e.g. Nicehash. + Changes in v0.8.4 Release notes: diff --git a/USAGE.txt b/USAGE.txt index d82851d..0a32e06 100644 --- a/USAGE.txt +++ b/USAGE.txt @@ -1,4 +1,4 @@ - Team Red Miner version 0.8.3 + Team Red Miner version 0.8.5 Usage: teamredminer [OPTIONS] Options: -a, --algo=ALGORITHM Selects the mining algorithm. Currently available: @@ -156,7 +156,34 @@ GPU options: at index 1 and 3 and two other gpus: --nr_cu_override=,64,,64. You can verify your argument by also adding --list_devices before mining. -Fan control options (BETA feature): +Clock/voltage control options (windows only, BETA functionality): + The miner has basic functionality for setting core and mem clks and their respective + voltage, as well as selecting between the win driver's built-in timings. For each + available argument below, you enumerate values for gpu(s) in the rig in a comma-separated + list. Some arguments are not used for certain gpus. You can skip gpus in the list. + + The miner always sets and uses the highest p-state for both core and mem for GCN gpus + (Polaris, Vega). Please note that Rx Vega gpus _must_ have a powerplay table modification + of the mem p2 state before being able to run a voltage lower than 900mV. Moreover, Big Navi + gpus also still need to use e.g. MorePowerTool to make powerplay table modifications, for example + for enabling setting a lower voltage. The miner _might_ add support for powerplay table-related + functionality in the future. + + --clk_debug Enable start-up log printouts related to setting clocks/voltages/timings. + --clk_core_mhz=MHZ1,MHZ2,... Sets the core clk per gpu in MHz. + --clk_core_mv=MV1,MV2,... Sets the core voltage per gpu in mV. + --clk_mem_mhz=MHZ1,MHZ2,... Sets the mem clk per gpu in MHz. + --clk_mem_mv=MV1,MV2,... Sets the mem voltage per gpu in mV. Not used for Navi or Big Navi gpus. + --clk_timing=V1,V2,... Selects between the driver's available mem timing sets. Not available on all gpus and + drivers. + + Example of a partial command line for a four gpu system where with a Rx Vega 64, 580, 5700XT and + 6800 mining ethash or similar. We only specify mem voltage for the Vega and 580, and only select + a driver timing value for the Big Navi: + teamredminer.exe ... --clk_core_mhz=1100,1000,1275,1000 --clk_core_mv=875,850,725,675 + --clk_mem_mhz=1107,2100,1820,2130 --clk_mem_mv=875,850,, --clk_timing=,,,1 + +Fan control options: --fan_control(=CFG1,CFG2,...) This argument enables gpu fan control by the miner. TRM supports auto-adjusting the gpu fan speed(s) based on core, junction and/or mem temp. We also support setting a static fan speed in percent. @@ -207,10 +234,23 @@ Fan control options (BETA feature): Watchdog options: --no_gpu_monitor Disables the ADL (Windows) or sysfs (Linux) GPU monitor for temperature and fan speed. - --temp_limit=TEMP Sets the temperature at which the miner will stop GPUs that are too hot. - Default is 85C. - --temp_resume=TEMP Sets the temperature below which the miner will resume GPUs that were previously - stopped due to temperature exceeding limit. Default is 60C. + --temp_limit=TEMP Sets the core temperature at which the miner will stop GPUs that are too hot. + Default is 85C. Gpu-specific values can be provided using a comma-separated list, + one value per gpu. If a gpu doesn't have a defined value, the first value in the list + is used. + --temp_resume=TEMP Sets the core temperature below which the miner will resume GPUs that were previously + stopped due to the core temperature exceeding limit. Default is 60C. Gpu-specific + values can be provided using a comma-separated list, one value per gpu. If a gpu doesn't + have a defined value, the first value in the list is used. + --mem_temp_limit=TEMP Sets the mem temperature at which the miner will stop GPUs that are too hot. + Default is not enabled. Only used if the gpu provides a mem temperature sensor. + Gpu-specific values can be provided using a comma-separated list, one value per gpu. + If a gpu doesn't have a defined value, the first value in the list is used. + --mem_temp_resume=TEMP Sets the mem temperature below which the miner will resume GPUs that were previously + stopped due to mem temperature exceeding limit. Default is not enabled. Only + used if the gpu provides a mem temperature sensor. Gpu-specific values can be provided + using a comma-separated list, one value per gpu. If a gpu doesn't have a defined value, + the first value in the list is used. --watchdog_script(=X) Configures the gpu watchdog to shut down the miner and run the specified platform and exits immediately. The default script is watchdog.bat/watchdog.sh in the current directory, but a different script can be provided as an optional argument, @@ -221,15 +261,19 @@ Watchdog options: that always run with the watchdog enabled. Ethash options: - --eth_config=CONFIG Manual ethash configuration for the miner. CONFIG must be in the form [M][L]. + --eth_config=CONFIG Manual ethash configuration for the miner. CONFIG must be in the form [X][M][L]. The [M] value selects the mode which can be 'A','B', or 'C'. The 'B' mode uses additional memory and will only work on 8+GB cards. The 'C' mode uses additional memory and will only work on 16+GB cards, such as the VII, with a correctly configured system. See the ETHASH_TUNING_GUIDE.txt for more details. The [L] value selects the intensity and it's range will depend on the GPU architecture. + The [X] prefix is optional and is Navi/Big Navi only, it enables more mem operations and + leads to a lower tuning [L] value. It can be beneficial whenever the auto-tuner repeatedly + hits a value close to the max possible tuning value for the gpu. Both values are optional, but if [L] is specified, [M] must also be specified. Example configs: --eth_config=A --eth_config=B750 + --eth_config=XB CONFIG can also be a comma separated list of config values where each is applied to each GPU. For example: --eth_config=A,B750,,A288 Any gpu that does not have a specific config in the list will use the first @@ -262,6 +306,11 @@ Ethash options: set to one of the following options: stratum, nicehash, ethproxy. --eth_worker Set the worker id that will be sent to pool. This only applies to pools with ethproxy stratum mode. + --eth_hash_report=X Controls hashrate reports to the configure pools. This value is applied for all pools. Values: + default - let the miner decide based on stratum protocol used for each pool. + force - always send hashrate reports, even if the pool rejects them. + on - send a first hashrate report, disable for any pool that rejects the message. + off - never send hashrate reports. --eth_epoch Tests a specific ethash epoch. NOTE: you still need to provide a pool as if you were mining, but no shares will be submitted. Simulated mining only. --eth_alloc_epoch=N Allocates enough memory for the given epoch from the start. The miner will try to allocate more diff --git a/doc/CLOCKS_VOLTAGE_CONTROL.txt b/doc/CLOCKS_VOLTAGE_CONTROL.txt new file mode 100644 index 0000000..7c504b8 --- /dev/null +++ b/doc/CLOCKS_VOLTAGE_CONTROL.txt @@ -0,0 +1,133 @@ +Team Red Miner Clocks/Voltages Control Support +============================================== + +This document provides additional info on the clocks/voltages/timings +control support in TeamReadMiner. Historically, we have not focused on +building a one stop shop software that handles auxiliary features, +we've rather concentrated on the mining algorithms and gpu kernel +implementations and rather let external tools handle things like +clocks and voltage control. + +However, since there's no longer a tool like OverdriveNTool that can +configure Big Navi cards using automated command-line setups at +startup, TRM v0.8.5 adds basic support on Windows only for controlling +core clk, core voltage, mem clk, mem voltage (when applicable) and +selecting timings from the driver's built-in available sets. + +We might add linux support and more features later on. + + +Arguments +--------- +These arguments are described in the --help output from the miner as +well. All arguments are comma-separated lists of values, where any +value can be empty if you don't want to configure that gpu. + +--clk_core_mhz Sets the core clk frequency. + +--clk_core_mv Sets the core voltage. + +--clk_mem_mhz Sets the mem clk frequency. + +--clk_mem_mv Sets the mem voltage (ignored for Navis and Big Navis). + +--clk_timing Chooses e.g. the default or "fast" timings for Big Navis. + This is not a generic timing modifications argument, it + only chooses between the timing sets available in the + Windows Adrenalin driver. + + +Examples +-------- +Three gpu Navi10 rig, middle gpu not configured: + +teamredminer.exe -a ethash ... --clk_core_mhz=1275,,1250 --clk_core_mv=750,,725 --clk_mem_mhz=1820,,1800 + +Two gpu Big Navi rig, both using "fast timings" as well as setting clocks: + +teamredminer.exe -a ethash ... --clk_core_mhz=1050,1100 --clk_core_mv=675,675 --clk_mem_mhz=2120,2140 --clk_timing=1,1 + + +Polaris GPUs +------------ +Polaris gpus uses the core clk+voltage and mem clk+voltage +arguments. The highest core and mem p-states are always configured and +used. Clock and voltage values for lower states are scaled linearly to +always have a lower value than higher states. + +For more exact control, use a different tool like OverdriveNTool. + + +Rx Vega GPUs +------------ +Like Polaris gpus, Rx Vega gpus uses the core clk+voltage and mem +clk+voltage arguments. The highest core and mem p-states are always +configured and used. Clock and voltage values for lower states are +scaled linearly to always have a lower value than higher states. + +However, this is not enough to unlock using a < 900mV voltage for Rx +Vegas on Windows, you need a powerplay table modification of the +stubborn mem p2 state. This state is locked at 900mV and can't be +changed through the ADL API, nor Radeon Settings. You will be able to +_configure_ other p-states with < 900mV values, but the mem p2 state +will still be blocking them, effectively driving up the voltage used +to 900mV. + +To be able to lower your voltage < 900mV, do the following: + +1) Download the latest gpu-z version from TechPowerUp. + +2) Download OverdriveNTool 0.2.9 from the Guru3d forum thread, it's + just a dropbox link. + +3) Open gpu-z, select your Vega in the gpu dropdown list at the very + bottom of the gui. Save the bios by clicking arrow icon right next + to the bios version textbox. + +4) Open OverdriveNTool as Administrator, i.e. right-click the program + and choose "Run as Administrator". Select your Vega in the gpu + dropdown list. + +5) Right-click the title bar of the program, i.e. the "OverdriveNTool + 0.2.9" text and choose the "PPTable Editor". + +6) If you already have a powerplay table stored in the registry, it + will appear and you can edit the mem p2 voltage to your targeted + voltage. Otherwise, it needs to be bootstrapped using your saved + bios: choose "Create new using bios file" and click "Open bios/reg + file", find your saved bios and open it. + +7) In the editor that appears, set the "Memory default" P2 voltage to + either your target voltage or a slightly lower value. This will + also change the "GPU default" P1 voltage since they are using the + same underlying voltage entry. + +8) Click "Save", and either let OverdriveNTool reset the gpu for you, + or reset it yourself in the Windows device manager, or reboot. + +9) You should now be able to use voltages that are >= the powerplay + table's new value for mem P2, either with the miner's built-in + support or using external tools. + + +Navi and Big Navi +================= +All Navi gpus use the core clk+voltage and mem clk arguments, as well +as setting a timing if available in the driver. Configuring values +should be straightforward. + +However, to unlock lower core voltage values and other features, you +need to do powerplay table modifications, much like the process for Rx +Vegas described above. On Windows, this is typically done with +MorePowerTool, an awesome piece of software released by Igor's +lab. Note that Navi10 gpus can also flash a bios with modified mem +timings and include the modifications there in the bios' default +powerplay table. + +There are plenty of videos and resources available that describes this +process, a few mins of googling should be enough, so we won't cover it +in greater detail here. + + + +