mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2025-02-25 18:55:26 -06:00
feat: use gpu-provided allowed range for voltage offset when it is available
This commit is contained in:
parent
4797ea54f7
commit
57d419c92f
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -41,9 +41,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "amdgpu-sysfs"
|
name = "amdgpu-sysfs"
|
||||||
version = "0.12.10"
|
version = "0.13.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b5aeb473ff5972754ae1f0eed1971bbc0c88904a0282c795d79dec3862e56ae0"
|
checksum = "04b3c8f53aaed3c9a8f9b71c7d261a4343703ed3a5758eda16646e9b57c4e263"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"enum_dispatch",
|
"enum_dispatch",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -683,7 +683,10 @@ impl ClocksConfiguration {
|
|||||||
// Normalize the VDDC curve - make sure all of the values are within the allowed range
|
// Normalize the VDDC curve - make sure all of the values are within the allowed range
|
||||||
table.normalize_vddc_curve();
|
table.normalize_vddc_curve();
|
||||||
|
|
||||||
table.voltage_offset = self.voltage_offset;
|
match self.voltage_offset {
|
||||||
|
Some(offset) => table.set_voltage_offset(offset)?,
|
||||||
|
None => table.voltage_offset = None,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(min_clockspeed) = self.min_core_clock {
|
if let Some(min_clockspeed) = self.min_core_clock {
|
||||||
|
@ -8,7 +8,7 @@ use std::rc::Rc;
|
|||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use tracing::debug;
|
use tracing::debug;
|
||||||
|
|
||||||
const VOLTAGE_OFFSET_RANGE: f64 = 250.0;
|
const DEFAULT_VOLTAGE_OFFSET_RANGE: i32 = 250;
|
||||||
const WARNING_TEXT: &str = "Warning: changing these values may lead to system instability and potentially damage your hardware!";
|
const WARNING_TEXT: &str = "Warning: changing these values may lead to system instability and potentially damage your hardware!";
|
||||||
|
|
||||||
// The AtomicBool stores if the value was changed
|
// The AtomicBool stores if the value was changed
|
||||||
@ -233,12 +233,18 @@ impl ClocksFrame {
|
|||||||
|
|
||||||
if let ClocksTableGen::Vega20(table) = table {
|
if let ClocksTableGen::Vega20(table) = table {
|
||||||
if let Some(offset) = table.voltage_offset {
|
if let Some(offset) = table.voltage_offset {
|
||||||
|
let (min_offset, max_offset) = table
|
||||||
|
.od_range
|
||||||
|
.voltage_offset
|
||||||
|
.and_then(|range| range.into_full())
|
||||||
|
.unwrap_or((-DEFAULT_VOLTAGE_OFFSET_RANGE, DEFAULT_VOLTAGE_OFFSET_RANGE));
|
||||||
|
|
||||||
self.voltage_offset_adjustment
|
self.voltage_offset_adjustment
|
||||||
.0
|
.0
|
||||||
.set_lower(VOLTAGE_OFFSET_RANGE * -1.0);
|
.set_lower(min_offset as f64);
|
||||||
self.voltage_offset_adjustment
|
self.voltage_offset_adjustment
|
||||||
.0
|
.0
|
||||||
.set_upper(VOLTAGE_OFFSET_RANGE);
|
.set_upper(max_offset as f64);
|
||||||
self.voltage_offset_adjustment.0.set_value(offset.into());
|
self.voltage_offset_adjustment.0.set_value(offset.into());
|
||||||
} else {
|
} else {
|
||||||
self.voltage_offset_adjustment.0.set_upper(0.0);
|
self.voltage_offset_adjustment.0.set_upper(0.0);
|
||||||
|
@ -7,7 +7,7 @@ edition = "2021"
|
|||||||
args = ["clap"]
|
args = ["clap"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
amdgpu-sysfs = { version = "0.12.10", features = ["serde"] }
|
amdgpu-sysfs = { version = "0.13.0", features = ["serde"] }
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
indexmap = { version = "*", features = ["serde"] }
|
indexmap = { version = "*", features = ["serde"] }
|
||||||
clap = { version = "4.4.11", features = ["derive"], optional = true }
|
clap = { version = "4.4.11", features = ["derive"], optional = true }
|
||||||
|
Loading…
Reference in New Issue
Block a user