Compare commits
5 commits
81943ed387
...
3d2a88c12b
Author | SHA1 | Date | |
---|---|---|---|
3d2a88c12b | |||
1a72de4828 | |||
aa64363d29 | |||
70b9ae6469 | |||
743e98caa7 |
5 changed files with 50 additions and 46 deletions
|
@ -1,2 +1,4 @@
|
|||
[defaults]
|
||||
nocows = True
|
||||
stdout_callback = yaml
|
||||
retry_files_enabled = False
|
||||
|
|
41
host_vars/localhost.yml
Normal file
41
host_vars/localhost.yml
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
# note: 'gpu_*' vars only apply with the 'custom' suffixed profiles created by this tooling
|
||||
# profiles based on the 'default' amdgpu power profile mode use default clocks
|
||||
#
|
||||
# the connected AMD GPU is automatically discovered - assumes one
|
||||
# on swap to other AMD cards to avoid instability:
|
||||
# 'rm -rfv /etc/tuned/*amdgpu*'
|
||||
#
|
||||
# default 500, for best performance: near maximum. applies with 'overclock' tuned profile
|
||||
gpu_clock_min: "500"
|
||||
|
||||
# gpu_clock_max: "2675" # default somewhere around 2529 to 2660.
|
||||
gpu_clock_max: "2750"
|
||||
|
||||
gpumem_clock_static: "1075"
|
||||
|
||||
gpu_power_multi:
|
||||
default: 0.869969040247678 # 281W - real default
|
||||
# overclock: 0.928792569659443 # 300W - slight boost
|
||||
overclock: 1.0 # 323W - full board capability
|
||||
# optional, applies offset (+/-) to GPU voltage by provided mV
|
||||
# only counts for peak and overlock profiles
|
||||
# gpu_mv_offset: "-20"
|
||||
|
||||
gpu_mv_offset: "+125" # add 125mV or 0.125V
|
||||
# gpu_mv_offset: "+50" # add 50mV or 0.05V
|
||||
# gpu_mv_offset: "+75" # add 75mV or 0.075V
|
||||
# '-50' undervolts GPU core voltage 50mV or 0.05V; untested - here be dragons/instability
|
||||
|
||||
# optional kernel parameters to set as well
|
||||
sysctl: # quote ints/cast to string to avoid surprises
|
||||
kernel.dmesg_restrict: '0' # allow regular users to see the kernel ring buffer
|
||||
net.core.default_qdisc: fq # congestion control
|
||||
net.ipv4.tcp_congestion_control: bbr2 # cong. control part 2
|
||||
net.core.rmem_max: '33554432'
|
||||
net.core.wmem_max: '33554432'
|
||||
dev.raid.speed_limit_min: '2000000'
|
||||
dev.raid.speed_limit_max: '6000000'
|
||||
vm.compaction_proactiveness: '30' # improve THP allocation latency, compact in background
|
||||
vm.page_lock_unfairness: '1' # make page lock theft slightly more fair
|
||||
vm.max_map_count: '1048576' # allow some games to run (eg: DayZ)
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
lab:
|
||||
hosts:
|
||||
localhost:
|
||||
workstation:
|
||||
ansible_connection: local
|
||||
|
|
20
playbook.yml
20
playbook.yml
|
@ -5,26 +5,6 @@
|
|||
# role prepares/modifies 'tuned' with AMD GPU power/clock parameters
|
||||
# creates a new tuned profile made for each permutation of (base) 'tuned' profile + AMD powerplay profile
|
||||
- role: tuned_amdgpu
|
||||
# note: 'gpu_*' vars only apply with the 'custom' suffixed profiles created by this tooling
|
||||
# profiles based on the 'default' amdgpu power profile mode use default clocks
|
||||
#
|
||||
# the connected AMD GPU is automatically discovered - assumes one
|
||||
# on swap to other AMD cards to avoid instability:
|
||||
# 'rm -rfv /etc/tuned/*amdgpu*'
|
||||
gpu_clock_min: "750" # default 500, for best performance: near maximum. applies with 'overclock' tuned profile
|
||||
gpu_clock_max: "2675" # default somewhere around 2529 to 2660
|
||||
gpumem_clock_static: "1075"
|
||||
gpu_power_multi:
|
||||
default: 0.869969040247678 # 281W - real default
|
||||
overclock: 0.928792569659443 # 300W - slight boost
|
||||
# overclock: 1.0 # 323W - full board capability
|
||||
# optional, applies offset (+/-) to GPU voltage by provided mV
|
||||
# gpu_mv_offset: "-25"
|
||||
# gpu_mv_offset: "+50" # add 50mV or 0.05V
|
||||
gpu_mv_offset: "+25" # add 25mV or 0.025V
|
||||
# '-50' undervolts GPU core voltage 50mV or 0.05V
|
||||
# mostly untested, there be dragons/instability
|
||||
#
|
||||
# list of source tuned profiles available on Fedora (TODO: should dynamically discover)
|
||||
base_profiles:
|
||||
- balanced
|
||||
|
|
|
@ -2,35 +2,16 @@
|
|||
include={{ item.1 }}
|
||||
summary={{ item.1 }} + TCP/RAID tweaks + AMDGPU {{ item.0 }}
|
||||
|
||||
{% if sysctl is defined %}
|
||||
[sysctl]
|
||||
# allow regular users to see the kernel ring buffer
|
||||
kernel.dmesg_restrict=0
|
||||
net.core.default_qdisc=fq
|
||||
# 'bbr2' requires a [modified] supporting kernel - stock Fedora kernels do *not* support it (currently)
|
||||
# eg: 'kernel-xanmode-edge' from COPR 'rmnscnce/kernel-xanmod'
|
||||
net.ipv4.tcp_congestion_control=bbr2
|
||||
net.core.rmem_max=33554432
|
||||
net.core.wmem_max=33554432
|
||||
dev.raid.speed_limit_min=1000000
|
||||
dev.raid.speed_limit_max=6000000
|
||||
# improve THP allocation latency, compact in background
|
||||
vm.compaction_proactiveness=30
|
||||
# make page lock theft slightly more fair
|
||||
vm.page_lock_unfairness=1
|
||||
# allow some games to run (eg: DayZ)
|
||||
vm.max_map_count=1048576
|
||||
{% for _sysctl, value in sysctl.items() %}
|
||||
{{ _sysctl }}={{ value }}
|
||||
{% endfor %}
|
||||
|
||||
{% endif %}
|
||||
# reference/execute AMDGPU control script
|
||||
# used because some sysfs interfaces are transactional
|
||||
# cannot be set by a single param in 'tuned'/[sysfs]
|
||||
[gpuclockscript]
|
||||
type=script
|
||||
script=${i:PROFILE_DIR}/amdgpu-clock.sh
|
||||
|
||||
# for SSDs with no RPM, set no IO scheduler
|
||||
[ssdnosched]
|
||||
type=disk
|
||||
devices_udev_regex=(ID_ATA_ROTATION_RATE_RPM=0)
|
||||
# elevator=none
|
||||
elevator=kyber
|
||||
# elevator=mq-deadline
|
||||
|
|
Loading…
Reference in a new issue