Skip to main content

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)

Source distribution for HeliosGPUController 2.0.1
File Size Uploaded
HeliosGPUController-2.0.1.tar.gz 10.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for HeliosGPUController 2.0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0

2 release files

1.5

2 release files

1.4

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page