Sensor plugins

Sensor plugins are plugins used to retreive the energy consumption of the hardware. They are different type of sensor plugins as there are different kind of hardware on which we can retreive energy consumption. In this version of vJoule, there are cpu, ram and gpu plugins implemented.

Information about the plugins can be retreived by running the command :

# vjoule_service --ph plugin_name
# for example

$ vjoule_service --ph rapl

Rapl plugin

The rapl plugin retreive the energy consumption of three kind of hardware, cpu, ram and gpu where here the gpu is the integrated gpu chip. RAPL is usable on intel cores only.

Depending on the machine, gpu and ram may be unavailable, in that case during the configuration warnings will be displayed, and ram and gpu energy consumption retreiving will always return 0.

Warning, there is no perf events on integrated GPU, meaning that the gpu consumption will be acquired for the whole system but will not be divided between cgroups when using the divider core plugin.

Nvidia plugin

The nvidia plugin retreives the consumption of nvidia graphics card using nvml. It can be only be used for the component gpu. This plugin does not take any parameter.

[gpu]
name = "nvidia"

Yocto plugin

The yocto plugin retreives the energy and power consumption of a YoctoWatt smart PDU. It can only be used for the component pdu. This plugin can take the parameter target. This parameter define the uniq identifier of the YoctoWatt PDU, when multiple YoctoWatt are connected to the device performing the reading. If only one smart PDU is connected, this option can simply be ignored.

[pdu]
name = "yocto"
target = "YWATTMK1-276146"

The precision of the yocto plugin is in milliwatt-hours (or 3.6 joules). It has better precision in immediate power consumption, which is why it provides two different metrics. RAPL measurement provides micro-joule measurements, so for really small values it may appear that YoctoWatt has detected 0 consumption, while RAPL measurement has. It is important to note that 3.6J is really small and in no way replicable, experiments should be much longer and consume much more than that to be considered valid (imagine comparing applications with benchmarks that take only 3.6 microseconds).

Combining plugins

When there are a nvidia GPU, there can still be an integrated intel GPU. In that case multiple GPUs consumption are retreivable. To define that in the configuration file, the following can be written.

[gpu:0]
name = "rapl"

[gpu:1]
name = "nvidia"

Both simple and dumper cores are able to manage multiple gpu plugins, but only one cpu, one ram plugin and one pdu plugin can be used at the same time.