emission tracking library
Project description
Eco2AI
About Eco2AI
The Eco2AI is a python library for CO2 emission tracking. It monitors energy consumption of CPU & GPU devices and estimates equivalent carbon emissions taking into account the regional emission coefficient. The Eco2AI is applicable to all python scripts and all you need is to add the couple of strings to your code. All emissions data and information about your devices are recorded in a local file.
Every single run of Tracker() accompanies by a session description added to the log file, including the following elements:
- project_name
- experiment_description
- start_time
- duration(s)
- power_consumption(kWTh)
- CO2_emissions(kg)
- CPU_name
- GPU_name
- OS
- country
Installation
To install the eco2ai library, run the following command:
pip install eco2ai
Use examples
The eco2ai interface is quite simple. Here is the simplest usage example:
import eco2ai
tracker = eco2ai.Tracker(project_name="YourProjectName", experiment_description="training the <your model> model")
tracker.start()
<your gpu &(or) cpu calculations>
tracker.stop()
The eco2ai also supports decorators. As soon as the decorated function is executed, the information about the emissions will be written to the emission.csv file:
from eco2ai import track
@track
def train_func(model, dataset, optimizer, epochs):
...
train_func(your_model, your_dataset, your_optimizer, your_epochs)
For your convenience, every time you instantiate the Tracker object with your custom parameters, these settings will be saved until the library is deleted. Eeach new tracker will be created with your custom settings (if you create a tracker with new parameters, they will be saved instead of the old ones). For example:
import eco2ai
tracker = eco2ai.Tracker(
project_name="YourProjectName",
experiment_description="training <your model> model",
file_name="emission.csv"
)
tracker.start()
<your gpu &(or) cpu calculations>
tracker.stop()
...
# now, we want to create a new tracker for new calculations
tracker = eco2ai.Tracker()
# now, it's equivalent to:
# tracker = eco2ai.Tracker(
# project_name="YourProjectName",
# experiment_description="training the <your model> model",
# file_name="emission.csv"
# )
tracker.start()
<your gpu &(or) cpu calculations>
tracker.stop()
You can also set parameters using the set_params() function, as in the example below:
from eco2ai import set_params, Tracker
set_params(
project_name="My_default_project_name",
experiment_description="We trained...",
file_name="my_emission_file.csv"
)
tracker = Tracker()
# now, it's equivelent to:
# tracker = Tracker(
# project_name="My_default_project_name",
# experiment_description="We trained...",
# file_name="my_emission_file.csv"
# )
tracker.start()
<your code>
tracker.stop()
Important note
If for some reasons it is not possible to define country, then emission coefficient is set to 436.529kg/MWh, which is global average. Global Electricity Review
For proper calculation of gpu and cpu power consumption, you should create a "Tracker" before any gpu or CPU usage.
Create a new “Tracker” for every new calculation.
Feedback
If you have any problems working with our tracker, please make comments on document
In collaboration with AIRI
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.