Socket
Socket
Sign inDemoInstall

HeliosGPUController

Package Overview
Dependencies
Maintainers
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

HeliosGPUController

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.


Maintainers
3

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.

 _   _         _                       ___    ___    _   _     ___                  _                _    _                
( ) ( )       (_ )  _                 (  _`\ (  _`\ ( ) ( )   (  _`\               ( )_             (_ ) (_ )              
| |_| |   __   | | (_)   _     ___    | ( (_)| |_) )| | | |   | ( (_)   _     ___  | ,_) _ __   _    | |  | |    __   _ __ 
|  _  | /'__`\ | | | | /'_`\ /',__)   | |___ | ,__/'| | | |   | |  _  /'_`\ /' _ `\| |  ( '__)/'_`\  | |  | |  /'__`\( '__)
| | | |(  ___/ | | | |( (_) )\__, \   | (_, )| |    | (_) |   | (_( )( (_) )| ( ) || |_ | |  ( (_) ) | |  | | (  ___/| |   
(_) (_)`\____)(___)(_)`\___/'(____/   (____/'(_)    (_____)   (____/'`\___/'(_) (_)`\__)(_)  `\___/'(___)(___)`\____)(_)                                                                                                                                                                                                                                                

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc