--- - hosts: localhost name: "Configure 'tuned' with AMD GPU control" roles: # 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 gpu_clock_min: "500" # default 500 gpu_clock_max: "2615" # default 2529 gpumem_clock_static: "1075" gpu_power_multi: default: 0.789473684210526 # 255W - slightly reduced, maintains clocks well overclock: 0.869969040247678 # 281W - real default, board supports up to 323W (1.0) # optional, applies offset (+/-) to GPU voltage by provided mV # gpu_mv_offset: "-25" # '-50' undervolts GPU core voltage 50mV or 0.05V # # list of source tuned profiles available on Fedora (TODO: should dynamically discover) base_profiles: - balanced - desktop - latency-performance - network-latency - network-throughput - powersave - virtual-host # # mapping of typical Navi generation power profiles from: # /sys/class/drm/card*/device/pp_power_profile_mode # ref: https://www.kernel.org/doc/html/v4.20/gpu/amdgpu.html#pp-power-profile-mode # 'pwr_cap_multi' is multiplied against board *limit* to determine profile wattage; 0.5 = 50% # values below reflect my 6900XT # amdgpu_profiles: # default: # pwrmode: 0 # pwr_cap_multi: 0.789473684210526 # 255W - slightly reduced, maintains clocks well # 3D: # pwrmode: 1 # pwr_cap_multi: 0.869969040247678 # 281W - default # powersave: # pwrmode: 2 # pwr_cap_multi: 0.869969040247678 # VR: # pwrmode: 4 # pwr_cap_multi: 0.869969040247678 # compute: # pwrmode: 5 # pwr_cap_multi: 0.869969040247678 # custom: # pwrmode: 6 # pwr_cap_multi: 1.0 # 323W - full capability # both dictionaries are merged to create new 'tuned' profiles. eg: # 'balanced-amdgpu-default', 'balanced-amdgpu-3D', 'balanced-amdgpu-video'