powersensor3

PowerSensor is a low-cost, custom-built device that measures the instantaneous power consumption of GPUs and other devices at a high time resolution.

https://github.com/nlesc-recruit/powersensor3

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

PowerSensor is a low-cost, custom-built device that measures the instantaneous power consumption of GPUs and other devices at a high time resolution.

Basic Info
Statistics
  • Stars: 10
  • Watchers: 1
  • Forks: 0
  • Open Issues: 6
  • Releases: 15
Created about 4 years ago · Last pushed 8 months ago
Metadata Files
Readme Contributing License Citation

README.md

PowerSensor3

github url License DOI Research Software Directory CII Best Practices Codacy Badge Device workflow Host workflow Citation metadata

Introduction

PowerSensor3 is a tool that measures the instantaneous power consumption of PCIe cards and SoC development boards like GPUs, Xeon Phis, FPGAs, DSPs, and network cards, at sub-millisecond time scale. It consists of a commodity microcontroller, commodity current and voltage sensors, and (for PCIe devices) a PCIe riser card. The microcontroller reports measurements to the host via USB. A small host library allows an application to determine its own energy efficiency. The high time resolution provides much better insight into energy usage than low-resolution built-in power meters (if available at all), as PowerSensor enables analysis of individual compute kernels.

Hardware

PowerSensor3 uses a modular hardware design with a base PCB containing a microcontroller and optionally a display, and up to four plug-in sensor boards. The PCB design, developed using KiCAD, is openly available here.

The default configuration of PowerSensor3 is an STM32F411 Black Pill microcontroller with SPI-based display, and up to four pairs of voltage and current sensors. Typical usage with a GPU is to measure both the 3.3 V and 12 V power through the PCIe slot, and up to two ATX 12 V connections directly from the power supply to the GPU. The microcontroller interprets the sensor data and reports the power measurements via USB to the host.

Disclaimer

You are about to modify electronic circuits. Improperly connecting wires can be dangerous and may damage computer equipment. We are not responsible for any harm or damage that might occur. Make sure that you understand very well how all cables should be connected. Do not install this tool if you are not absolutely sure what you are doing.

Getting started

Full documentation is available here. To get started:

  1. Clone this repository including submodules: git clone https://github.com/nlesc-recruit/PowerSensor3 --recurse-submodules. If you have alread cloned the repository without submodules, run the following in the root of the repository: git submodule init; git submodule update.
  2. Installation of the physical device and firwmare
  3. Installation of the host library
  4. PowerSensor configuration
  5. PowerSensor user guide

Citation

If you use PowerSensor3 in research or research software, please cite the following paper:

bibtex @inproceedings{powersensor3, title={PowerSensor3: A Fast and Accurate Open Source Power Measurement Tool}, author={Steven van der Vlugt and Leon Oostrum and Gijs Schoonderbeek and Ben van Werkhoven and Bram Veenboer and Krijn Doekemeijer and John W. Romein}, year={2025}, booktitle={IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)}, }

Further reading

Altering the firmware of the device could be necessary in certain use cases. For this please refer to the following documents:

Contributing

If you have a question, found a bug, or want to contribute to the development of PowerSensor3, please have a look at the contribution guidelines

Owner

  • Name: RECRUIT
  • Login: nlesc-recruit
  • Kind: organization
  • Location: Netherlands

Reducing Energy Consumption in Radio-astronomical and Ultrasound Imaging Tools (RECRUIT)

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: PowerSensor3
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
repository-code: "https://github.com/nlesc-recruit/PowerSensor3"
license: Apache-2.0
#software version
version: 1.6.1
authors:
  - given-names: Leon
    family-names: Oostrum
    email: l.oostrum@esciencecenter.nl
    affiliation: Netherlands eScience Center
    orcid: 'https://orcid.org/0000-0001-8724-8372'
  - given-names: John
    family-names: Romein
    affiliation: ASTRON
    orcid: 'https://orcid.org/0000-0002-1915-5067'
  - given-names: Ben
    family-names: van Werkhoven
    affiliation: Netherlands eScience Center
    orcid: 'https://orcid.org/0000-0002-7508-3272'
  - given-names: Quinten
    family-names: Twisk
  - given-names: Gijs
    family-names: Schoonderbeek
    affiliation: ASTRON
    orcid: 'https://orcid.org/0000-0001-9482-1253'
  - given-names: Steven
    family-names: van der Vlugt
    affiliation: ASTRON
    orcid: 'https://orcid.org/0000-0001-6834-4860'

GitHub Events

Total
  • Create event: 26
  • Release event: 4
  • Issues event: 14
  • Watch event: 3
  • Delete event: 23
  • Member event: 1
  • Issue comment event: 3
  • Push event: 49
  • Pull request review event: 1
  • Pull request review comment event: 1
  • Pull request event: 40
Last Year
  • Create event: 26
  • Release event: 4
  • Issues event: 14
  • Watch event: 3
  • Delete event: 23
  • Member event: 1
  • Issue comment event: 3
  • Push event: 49
  • Pull request review event: 1
  • Pull request review comment event: 1
  • Pull request event: 40

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 7
  • Average time to close issues: 4 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 1
  • Pull requests: 7
  • Average time to close issues: 4 months
  • Average time to close pull requests: 12 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • loostrum (14)
Pull Request Authors
  • loostrum (26)
  • dependabot[bot] (5)
  • benvanwerkhoven (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (5) github_actions (1)

Dependencies

.github/workflows/build_device.yml actions
  • actions/checkout v2 composite
.github/workflows/build_host.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/cffconvert.yml actions
  • actions/checkout v2 composite
  • citation-file-format/cffconvert-github-action 2.0.0 composite
.github/workflows/cpplint.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v3 composite
.github/workflows/doxygen.yml actions
  • actions/checkout v2 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
  • mattnotmitt/doxygen-action v1.9 composite
  • peaceiris/actions-gh-pages v3 composite