Helios GPU Controller dynamically reduces Graphics Processing Unit (GPU) clock speeds by leveraging insights from the current energy mix and meteorological data. Data is obtained by the SMARD API and Forecast.Solar. The goal is to reduce power consumption of non-renewable sources.
Project description
Helios version: 2.0
This is the code for the Helios GPU Controller
Developers:
Lasse Müller, Bao Tran Nguyen, Berkehan Ünal
Usage
Requirements
Our solution was developed using Python. To run the software, these are the prerequisites:
- Operating system distribution of Windows or Linux
- Python >=3.8
- Preferably a virtual environment
Installation of Software and Dependencies
A development copy of the project's repository or software can be created using the following command.
$ git clone https://github.com/automl-private/MLProject_Mueller-Nguyen-Uenal_Helios
To include the package into a virtual environment directly, consider installing with:
$ pip install HeliosGPUController
Include in the code: from helios_gpu_controller.HeliosGPUController import HeliosGPUController
Config File
An example config file can be found in src/helios_gpu_controller/conf.yaml These are the configuration parameters
- use_helios_on_init: If set to false, GPU throttling won't be enabled by instantiating HeliosGPUController, but only with calling throttle_gpu() method
- devices: List of all devices that the HeliosGPUController has access to
- min_clock_speed_percent: minimum GPU clock frequency in percent. Helios recommendation: 0.5. Going higher than 0.5 reduces Helios' effectiveness.
- update_rate: Update Rate in minutes. The update rate determines, how often the GPU clock frequency is updated.
- using_solar_panels: Enable Helios solar
- avg_power_consumption_per_year: Average power consumption of your household. In kWh
- max_power_of_home_pc: Maximum power consumption of your computer. In Watts
- declination: Declination of your solar panels
- azimuth: Azimuth of your solar panels. 0 - south, 90 - west, 180 - north, 270 - east
- peak_kw: Peak Output of your photovoltaic system
- need_user_permission: if set to true, prompt a permission window, before Helios reduces your GPU frequency
Code Execution
Helios GPU controller runs in a subprocess and does not interfere with the main program loop. When use_helios_on_init is set to True, the Controller is executed automatically on init. To run Helios, use the following code snippets:
When use_helios_on_init is set to True:
Execute: gpu_controller = HeliosGPUController("conf.yaml")
After the program finishes: gpu_controller.stop_helios()
When use_helios_on_init is set to False:
Execute: gpu_controller = HeliosGPUController("conf.yaml")
To throttle GPU manually: gpu_controller.throttle_gpu()
After the program finishes: gpu_controller.stop_helios()
License
This project is licensed under the MIT License.
_ _ _ ___ ___ _ _ ___ _ _ _
( ) ( ) (_ ) _ ( _`\ ( _`\ ( ) ( ) ( _`\ ( )_ (_ ) (_ )
| |_| | __ | | (_) _ ___ | ( (_)| |_) )| | | | | ( (_) _ ___ | ,_) _ __ _ | | | | __ _ __
| _ | /'__`\ | | | | /'_`\ /',__) | |___ | ,__/'| | | | | | _ /'_`\ /' _ `\| | ( '__)/'_`\ | | | | /'__`\( '__)
| | | |( ___/ | | | |( (_) )\__, \ | (_, )| | | (_) | | (_( )( (_) )| ( ) || |_ | | ( (_) ) | | | | ( ___/| |
(_) (_)`\____)(___)(_)`\___/'(____/ (____/'(_) (_____) (____/'`\___/'(_) (_)`\__)(_) `\___/'(___)(___)`\____)(_)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file HeliosGPUController-2.0.1.tar.gz.
File metadata
- Download URL: HeliosGPUController-2.0.1.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cbd56c08746ab9661e874c9f31a5a82f3a9c9096fcd77583d78bd0998393806
|
|
| MD5 |
4ec4bd67e9ae36b50d391571cf748486
|
|
| BLAKE2b-256 |
b7992e0ad14668c376f57e47928d090797c2ac72cdcc9d4509285309f22d0130
|
File details
Details for the file HeliosGPUController-2.0.1-py3-none-any.whl.
File metadata
- Download URL: HeliosGPUController-2.0.1-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a648901bd1a0f30e7707e740d101dc983279003c95cd828d4f1a8d444a85554
|
|
| MD5 |
369480d168295eb6082f7ac61eb79cd6
|
|
| BLAKE2b-256 |
786343e3d9dc45098463cc5ac8bc2b31be0712bceff6165101e8b1e0157af503
|