Public Repository

Last pushed: a year ago
Short Description
Docker version of the PowerAPI's sampling for learning the CPU power model
Full Description

PowerAPI: Sampling

This image is used to build a CPU power model.

Usage

You have first to create a data volume to store the configuration files (conf directory) for PowerAPI.
It will include all parameters needed to PowerAPI for configuring its internal components.
The different parameters to set up are described inside the Wiki.

We assume that a data volume powerapi-sampling-conf is created on the host system.

The --privileged option is used to get the root access to the host machine,
the --net=host option is mandatory to be able to use the PowerSPY bluetooth power meter inside a container, and the --pid=host is required to be able to get an access to the running apps of the host machine.

docker run --rm --privileged --net=host --pid=host \
 --volumes-from powerapi-sampling-conf \
spirals/powerapi-sampling

Example of a sampling configuration file

sampling.conf
powerspy.mac = "00:0B:CE:07:1E:9B"

powerapi.cpu.topology = [
  { core = 0, indexes = [0, 4] }
  { core = 1, indexes = [1, 5] }
  { core = 2, indexes = [2, 6] }
  { core = 3, indexes = [3, 7] }
]

powerapi.sampling.dvfs = true
powerapi.sampling.turbo = true

powerapi.cycles-polynom-regression.cpu-base-frequency = 0.133
powerapi.cycles-polynom-regression.cpu-max-frequency = 2.66
powerapi.cycles-polynom-regression.unhalted-cycles-event = "CPU_CLK_UNHALTED:THREAD_P"
powerapi.cycles-polynom-regression.ref-cycles-event = "CPU_CLK_UNHALTED:REF_P"

interval = 1s
powerapi.actors.timeout = 15s
powerapi.sampling.interval = ${interval}
powerspy.interval = ${interval}
powerapi.sampling.steps = [100, 25]
powerapi.sampling.step-duration = 10
Docker Pull Command
Owner
spirals