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.
_ _ _ ___ ___ _ _ ___ _ _ _
( ) ( ) (_ ) _ ( _`\ ( _`\ ( ) ( ) ( _`\ ( )_ (_ ) (_ )
| |_| | __ | | (_) _ ___ | ( (_)| |_) )| | | | | ( (_) _ ___ | ,_) _ __ _ | | | | __ _ __
| _ | /'__`\ | | | | /'_`\ /',__) | |___ | ,__/'| | | | | | _ /'_`\ /' _ `\| | ( '__)/'_`\ | | | | /'__`\( '__)
| | | |( ___/ | | | |( (_) )\__, \ | (_, )| | | (_) | | (_( )( (_) )| ( ) || |_ | | ( (_) ) | | | | ( ___/| |
(_) (_)`\____)(___)(_)`\___/'(____/ (____/'(_) (_____) (____/'`\___/'(_) (_)`\__)(_) `\___/'(___)(___)`\____)(_)
Metadata
Release files for HeliosGPUController 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| HeliosGPUController-2.0.1.tar.gz | 10.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| HeliosGPUController-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.8 kB
Release files / HeliosGPUController-2.0.1.tar.gz
| Download URL | HeliosGPUController-2.0.1.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2cbd56c08746ab9661e874c9f31a5a82f3a9c9096fcd77583d78bd0998393806
|
|
BLAKE2b-256 checksum How to use checksums |
b7992e0ad14668c376f57e47928d090797c2ac72cdcc9d4509285309f22d0130
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|
Release files / HeliosGPUController-2.0.1-py3-none-any.whl
| Download URL | HeliosGPUController-2.0.1-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a648901bd1a0f30e7707e740d101dc983279003c95cd828d4f1a8d444a85554
|
|
BLAKE2b-256 checksum How to use checksums |
786343e3d9dc45098463cc5ac8bc2b31be0712bceff6165101e8b1e0157af503
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|