Green-Software-Foundation/if-plugins

Model Plugin - GPU TDP Finder

burtchell opened this issue · 1 comments

NOTE: This is my proposal for the 2024 Carbon Hack. I'll update each field as I get more familiar with the Impact Framework and its currently-supported plugins.

  • What:

A model that fetches/forwards GPU TDP (measured or estimated) and outputs the energy.

  • Why:

The use of general-purpose GPUs is omnipresent in many applications. The impact framework does not yet have an official way to explicitly account for GPU impact on carbon. This plugin will provide similar functionality as the TDP Finder Plugin, but for GPUs.

  • DoD:
  • Does the model meet the specification?
  • Does the model have complete test coverage, including edge cases, happy path and error cases?
  • Is the code documented?

Config

TBD.

Inputs

List the variables this model expects in an input input

  • gpu/name: The name of a GPU (If not providing gpu/tdp (see below), it must be in the database of supported GPUs).
  • gpu/tdp: Optional. The observed TDP of the GPU.

Outputs

List the variables this model exports out as an impact

  • gpu/tdp: If not provided as an input, and the gpu/name was valid, the model will output the official TDP according to manufacturer specifications.
  • gpu/energy: (TDP->Energy model to-be-determined.) The energy usage of this GPU in kWh.

Behavior

What does the model do to turn the inputs into outputs? List any important equations or references.

TBD.

Assumptions

What are the core assumptions this model makes?

TBD.

Limitations

In what situations is this model limited in it's function, behaviour, accuracy etc...

TBD.

Example

Provide at least one example of some input config and inputs. This is in pimpl format not rimpl format, so the config is the global config and all parameters must be present on the input.

TBD.

Input

config:
 key: value
inputs: 
  - timestamp: 2023-07-06T00:00
    duration: 3600

Output

config:
 key: value
inputs: 
  - timestamp: 2023-07-06T00:00
    duration: 3600
    yyyy: zzzz
outputs: 
  - timestamp: 2023-07-06T00:00
    duration: 3600
    yyyy: zzzz
    aaaa: bbbb

Accidentally created this issue in the wrong repository. Cloning it in Green-Software-Foundation/if-unofficial-plugins now.