Skip to content

Commit

Permalink
v0.8.5 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kerney666 committed Sep 4, 2021
1 parent b9cdcee commit 025042a
Show file tree
Hide file tree
Showing 3 changed files with 201 additions and 8 deletions.
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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).**
Expand Down Expand Up @@ -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).
Expand Down Expand Up @@ -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:
Expand Down
63 changes: 56 additions & 7 deletions USAGE.txt
Original file line number Diff line number Diff line change
@@ -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:
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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,
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
133 changes: 133 additions & 0 deletions doc/CLOCKS_VOLTAGE_CONTROL.txt
Original file line number Diff line number Diff line change
@@ -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.




0 comments on commit 025042a

Please sign in to comment.