From 36a0bca2f04541bc94778480136d6139349ce36f Mon Sep 17 00:00:00 2001 From: Josh Lay Date: Sat, 22 Apr 2023 12:56:09 -0500 Subject: [PATCH] add dynamic (context aware) temperature sources --- README.md | 5 ++- gpustats.py | 108 +++++++++++++++++++++++++++++++++-------------- screens/main.png | Bin 31423 -> 40437 bytes stats.css | 6 +-- 4 files changed, 83 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 5fe494e..f412f58 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,10 @@ Simple TUI _(using [Textual](https://textual.textualize.io/))_ that shows AMD GPU statistics: - GPU Utilization -- Temperature +- Temperatures _(as applicable)_ + - Edge + - Junction + - Memory - Core clock - Core voltage - Memory clock diff --git a/gpustats.py b/gpustats.py index 5f27a7f..96a02f9 100755 --- a/gpustats.py +++ b/gpustats.py @@ -135,52 +135,71 @@ class GPUStats(App): class MiscDisplay(Static): """A widget to display misc. GPU stats.""" - - # for bringing in the log writing method - misc_stats = reactive({"util_pct": 0, - "temp": 0, - "fan_rpm": 0, - "fan_rpm_target": 0}) + # construct the misc. stats dict; appended by discovered temperature nodes + # used to make a 'reactive' object + fan_stats = reactive({"fan_rpm": 0, + "fan_rpm_target": 0}) + temp_stats = reactive({}) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.timer_misc = None + self.timer_fan = None + self.timer_temp = None def compose(self) -> ComposeResult: - yield Horizontal(Label("Utilization:",), Label("", id="util_pct", classes="statvalue")) - yield Horizontal(Label("Temperature:",), Label("", id="temp_c", classes="statvalue")) + for temp_node in temp_files: + # capitalize the first letter for display + caption = temp_node[0].upper() + temp_node[1:] + yield Horizontal(Label(f'[bold]{caption}[/] temp:',), Label("", id="temp_" + temp_node, classes="statvalue")) yield Horizontal(Label("[underline]Current[/] fan RPM:",), Label("", id="fan_rpm", classes="statvalue")) yield Horizontal(Label("[underline]Target[/] fan RPM:",), Label("", id="fan_rpm_target", classes="statvalue")) def on_mount(self) -> None: """Event handler called when widget is added to the app.""" - self.timer_misc = self.set_interval(1, self.update_misc_stats) + self.timer_fan = self.set_interval(1, self.update_fan_stats) + self.timer_temp = self.set_interval(1, self.update_temp_stats) - def update_misc_stats(self) -> None: - """Method to update the 'misc' values to current measurements. - Utilization % and temperature (C) + def update_fan_stats(self) -> None: + """Method to update the 'fan' values to current measurements. Run by a timer created 'on_mount'""" - self.misc_stats = { - "util_pct": read_stat(src_files['busy_pct']), - "temp": int(int(read_stat(src_files['temp_c'])) / 1000), - "fan_rpm": read_stat(src_files['fan_rpm']), - "fan_rpm_target": read_stat(src_files['fan_rpm_target']) + val_update = { + "fan_rpm": read_stat(src_files['fan_rpm']), + "fan_rpm_target": read_stat(src_files['fan_rpm_target']) } + self.fan_stats = val_update - def watch_misc_stats(self, misc_stats: dict) -> None: + def update_temp_stats(self) -> None: + """Method to update the 'temperature' values to current measurements. + + Run by a timer created 'on_mount'""" + val_update = {} + for temp_node, temp_file in temp_files.items(): + # iterate through the discovered temperature nodes + # ... updating the dictionary with new stats + _content = f'{int(read_stat(temp_file)) / 1000:.0f}C' + val_update[temp_node] = _content + self.temp_stats = val_update + + def watch_fan_stats(self, fan_stats: dict) -> None: """Called when the clocks attribute changes. - Updates label values - Casting inputs to string to avoid type problems w/ int/None""" - self.query_one("#util_pct", Static).update(f"{misc_stats['util_pct']}%") - self.query_one("#temp_c", Static).update(f"{misc_stats['temp']}C") - self.query_one("#fan_rpm", Static).update(f"{misc_stats['fan_rpm']}") - self.query_one("#fan_rpm_target", Static).update(f"{misc_stats['fan_rpm_target']}") + self.query_one("#fan_rpm", Static).update(f"{fan_stats['fan_rpm']}") + self.query_one("#fan_rpm_target", Static).update(f"{fan_stats['fan_rpm_target']}") + + def watch_temp_stats(self, temp_stats: dict) -> None: + """Called when the clocks attribute changes, updates labels""" + for temp_node in temp_files: + # check first if the reactive object has been updated with keys + if temp_node in temp_stats: + stat_dict_item = temp_stats[temp_node] + self.query_one("#temp_" + temp_node, Static).update(stat_dict_item) class ClockDisplay(Static): """A widget to display GPU power stats.""" - clocks = reactive({"sclk": 0, "mclk": 0, "core_voltage": 0}) + core_vals = reactive({"sclk": 0, "mclk": 0, "voltage": 0, "util_pct": 0}) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -188,32 +207,35 @@ class ClockDisplay(Static): def compose(self) -> ComposeResult: yield Horizontal(Label("Core clock:",), Label("", id="clk_core_val", classes="statvalue")) + yield Horizontal(Label("Utilization:",), Label("", id="util_pct", classes="statvalue")) yield Horizontal(Label("Core voltage:",), Label("", id="clk_voltage_val", classes="statvalue")) yield Horizontal(Label("Memory clock:"), Label("", id="clk_memory_val", classes="statvalue")) def on_mount(self) -> None: """Event handler called when widget is added to the app.""" - self.timer_clocks = self.set_interval(1, self.update_clocks) + self.timer_clocks = self.set_interval(1, self.update_core_vals) - def update_clocks(self) -> None: + def update_core_vals(self) -> None: """Method to update GPU clock values to the current measurements. Run by a timer created 'on_mount'""" - self.clocks = { + self.core_vals = { "sclk": format_frequency(read_stat(src_files['core_clock'])), "mclk": format_frequency(read_stat(src_files['memory_clock'])), - "core_voltage": float( + "voltage": float( f"{int(read_stat(src_files['core_voltage'])) / 1000:.2f}" ), + "util_pct": read_stat(src_files['busy_pct']), } - def watch_clocks(self, clocks: dict) -> None: + def watch_core_vals(self, core_vals: dict) -> None: """Called when the clocks attribute changes - Updates label values - Casting inputs to string to avoid type problems w/ int/None""" - self.query_one("#clk_core_val", Static).update(f"{clocks['sclk']}") - self.query_one("#clk_voltage_val", Static).update(f"{clocks['core_voltage']}V") - self.query_one("#clk_memory_val", Static).update(f"{clocks['mclk']}") + self.query_one("#clk_core_val", Static).update(f"{core_vals['sclk']}") + self.query_one("#util_pct", Static).update(f"{core_vals['util_pct']}%") + self.query_one("#clk_voltage_val", Static).update(f"{core_vals['voltage']}V") + self.query_one("#clk_memory_val", Static).update(f"{core_vals['mclk']}") class PowerDisplay(Static): @@ -283,5 +305,27 @@ if __name__ == "__main__": 'fan_rpm': path.join(hwmon_dir, "fan1_input"), 'fan_rpm_target': path.join(hwmon_dir, "fan1_target"), } + # notes: + # assumptions are made that freq{1,2}_input files are sclk/mclk + # contents of files named freq{1,2}_label can determine this reliably + # similarly: + # 'in0_input' has a peer named 'in0_label' + # should contain 'vddgfx' to indicate core voltage + # TODO: implement ^ + # + # determine temperature nodes, construct an empty dict to store them + temp_files = {} + temp_node_labels = glob.glob(path.join(hwmon_dir, "temp*_label")) + for temp_node_label_file in temp_node_labels: + # determine the base node id, eg: temp1 + # construct the path to the file that will label it. ie: edge/junction + temp_node_id = path.basename(temp_node_label_file).split('_')[0] + temp_node_value_file = path.join(hwmon_dir, f"{temp_node_id}_input") + with open(temp_node_label_file, 'r', encoding='utf-8') as _node: + temp_node_name = _node.read().strip() + print(f'found temp: {temp_node_name} (id: {temp_node_id})') + # add the node name/type and the corresponding temp file to the dict + temp_files[temp_node_name] = temp_node_value_file + app = GPUStats() app.run() diff --git a/screens/main.png b/screens/main.png index 06a62a09ff98f347d9d75e9fff87c201ef10b9ef..b469a248ad6d4315cc687f45dcbe8f527ef8f528 100644 GIT binary patch literal 40437 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 #Z#Swg4ZD{9?3m#}A|hGz=+a|Qyq|s?{}tXE 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 R=3ivmBNa^$=Kix+{~wOyjO73T diff --git a/stats.css b/stats.css index 5e0304d..95f74a3 100644 --- a/stats.css +++ b/stats.css @@ -3,8 +3,8 @@ GPUStatsWidget { grid-size: 3; grid-gutter: 2 4; background: $boost; - height: 10; - margin: 1; + height: 11; +/* margin: 1;*/ min-width: 50; padding: 1; } @@ -12,7 +12,7 @@ GPUStatsWidget { /* for colors, see: https://textual.textualize.io/guide/design/#theme-reference */ .box { - padding: 1; + margin: 1; height: 100%; /* border: ascii $primary-background;*/ border: solid $primary-background;