move vars to a table
This commit is contained in:
parent
31a1c5e305
commit
e535ea3ebc
1 changed files with 16 additions and 30 deletions
46
README.md
46
README.md
|
@ -4,7 +4,7 @@ Hacky solution to integrate AMDGPU power profile control in `tuned` with Ansible
|
||||||
|
|
||||||
Takes a list of existing `tuned` profiles and creates new ones based on them. These new profiles include AMDGPU power/clock parameters
|
Takes a list of existing `tuned` profiles and creates new ones based on them. These new profiles include AMDGPU power/clock parameters
|
||||||
|
|
||||||
_Warning_: Only tested with RX6000 series GPUs, Navi or older may not work properly.
|
_Warning_: Only tested with RX6000 series GPUs, it is probable that older AMD GPUs will not work properly. Use at your own risk!
|
||||||
|
|
||||||
## Profiles
|
## Profiles
|
||||||
|
|
||||||
|
@ -19,32 +19,18 @@ An example of the output/provided profiles follow
|
||||||
**Note**: This is non-exhaustive, see the variables `base_profiles` and `amdgpu_profiles` below for the (default) sources of the merged profile mapping
|
**Note**: This is non-exhaustive, see the variables `base_profiles` and `amdgpu_profiles` below for the (default) sources of the merged profile mapping
|
||||||
|
|
||||||
## Notable variables
|
## Notable variables
|
||||||
- Power control: (float) multipliers to determine power _limits_ from board power _capability_
|
|
||||||
- `power_max_default_multi`: Controls power for the generated `default` GPU profile. Provided: `0.75` for 75% board power capability.
|
These are the variables you're likely to want to change. They are defined in [playbook.yml](playbook.yml)
|
||||||
- `power_max_custom_multi`: Controls power for the generated `custom` GPU profile. Provided: `1.0` for 100% board power capability.
|
|
||||||
- `card`: Sets the `card#` to use in the qualified `sysfs` path `/sys/class/drm/{{ card }}/device/pp_power_profile_mode`. Default: `card0`
|
| Variable | Description | Default |
|
||||||
- `gpu_mv_offset`: optional, applies offset to GPU voltage, eg: `+100` = to boost GPU core voltage `100mV` or `0.1V`. Can undervolt.
|
|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
- `base_profiles`: List of base tuned profiles to clone in the new AMDGPU profiles. Defaults (based on `Fedora`):
|
| power_max_default_multi| Must be a float.<br/><br/>Sets the AMD GPU power limit for the newly-created `amdgpu-default` GPU profiles in `tuned`.<br/><br/>A multiplier against the board power _capability_ | `0.928793` or ~`93%`, provides roughly 300W from my 323W board capability. |
|
||||||
- `balanced`
|
| power_max_custom_multi | Same as above but for the non-default `amdgpu` profiles in `tuned`. eg: `...-amdgpu-{VR,custom}` | `0.82` or `82%`, my 6900XT defaults to ~87% -- allowing for slightly less power |
|
||||||
- `desktop`
|
| gpu_clock_min | Sets the minimum (dynamic) GPU clock for the non-default `amdgpu` profiles | 2000, results in 2Ghz |
|
||||||
- `latency-performance`
|
| gpu_clock_max | Sets the maximum (dynamic) GPU clock for the non-default `amdgpu` profiles | 2615, results in 2.62Ghz (rounded) -- mild overclock |
|
||||||
- `network-latency`
|
| gpumem_clock_max | Sets the _static_ memory clock for the GPU. This is *not* the _effective_ data rate. That is a multiple of this depending on the type of VRAM.<br/><br/>To avoid flickering this does *not* change dynamically with load. | 1075, results in 1.1Ghz (base, rounded) |
|
||||||
- `network-throughput`
|
| card | Set the `card#` for the card to use.<br/><br/>For a hint if this needs changed:<br/>`ls -lad /sys/class/drm/card[0-9]*` | `card0` -- assumes the first GPU |
|
||||||
- `powersave`
|
| gpu_mv_offset | GPU core voltage offset. Takes +/- some integer in millivolts. Can be used to both over _and_ under volt. | `-25` (undervolt `25mV` or `0.025V`) |
|
||||||
- `virtual-host`
|
| base_profiles | List of base tuned profiles to clone in the new AMDGPU profiles. Defaults based on `Fedora` | <ul><li>`balanced`</li><li>`desktop`</li><li>`latency-performance`</li><li>`network-latency`</li><li>`network-throughput`</li><li>`powersave`</li><li>`virtual-host`</li>|
|
||||||
- `amdgpu_profiles`: Dictionary mapping the AMDGPU power profiles found in `/sys/class/drm/card*/device/pp_power_profile_mode`.
|
| amdgpu_profiles | Dictionary mapping the AMDGPU power profiles found in `/sys/class/drm/card*/device/pp_power_profile_mode`.<br/><br>Allows adjustment to the automatic power/clock handling in the GPU using either predefined profiles or `custom`<br/><br/>More may be added, only three GPU power profiles are provided -- `default`, `VR`, and `custom`.| <pre>default:<br/> pwrmode: 0<br/>VR:<br/> pwrmode: 4<br/>custom:<br/> pwrmode: 6</pre>|
|
||||||
- Allows adjustment to the automatic power/clock handling in the GPU using either predefined profiles or `custom`
|
|
||||||
- More may be added, only three GPU power profiles are provided:
|
|
||||||
- default
|
|
||||||
- VR
|
|
||||||
- custom
|
|
||||||
- May vary by GPU/generation, sample (defaults, below) are from a 6900XT:
|
|
||||||
```
|
|
||||||
amdgpu_profiles:
|
|
||||||
default:
|
|
||||||
pwrmode: 0
|
|
||||||
VR:
|
|
||||||
pwrmode: 4
|
|
||||||
custom:
|
|
||||||
pwrmode: 6
|
|
||||||
```
|
|
||||||
|
|
Loading…
Reference in a new issue