geopm_pio_nvml(7) – IOGroup providing signals and controls for NVIDIA GPUs
Description
The NVMLIOGroup implements the geopm::IOGroup(3) interface to provide hardware signals and controls for NVIDIA GPUs.
Requirements
To use the GEOPM NVML signals and controls GEOPM must be compiled against the NVML libraries and must be run on a system with hardware supported by NVML. To compile against the NVML libraries geopm must be configured using the –enable-nvml flag. The optional –with-nvml flag may be used to indicate the path of the required libraries.
Signals
NVML::GPU_CORE_FREQUENCY_STATUSNVIDIA Streaming Multiprocessor (SM) frequency in hertz.
Aggregation: average
Domain: gpu
Format: double
Unit: hertz
NVML::GPU_UTILIZATION:Fraction of time the GPU operated on a kernel in the last set of driver samples.
Aggregation: average
Domain: gpu
Format: double
Unit: n/a
NVML::GPU_POWER:GPU power usage in watts.
Aggregation: sum
Domain: gpu
Format: double
Unit: watts
NVML::GPU_UNCORE_FREQUENCY_STATUSGPU memory frequency in hertz.
Aggregation: average
Domain: gpu
Format: double
Unit: hertz
NVML::GPU_CORE_THROTTLE_REASONSGPU clock throttling reasons. Refer to NVIDIA NVML documentation for encoding information.
Aggregation: average
Domain: gpu
Format: double
Unit: n/a
NVML::GPU_TEMPERATUREGPU Temperature in degrees Celsius.
Aggregation: average
Domain: gpu
Format: double
Unit: celsius
NVML::GPU_ENERGY_CONSUMPTION_TOTALGPU energy consumption in joules since the driver was loaded.
Aggregation: sum
Domain: gpu
Format: double
Unit: joules
NVML::GPU_PERFORMANCE_STATEGPU performance state, defined by the NVML API as a value from 0 to 15.
Aggregation: expect_same
Domain: gpu
Format: double
Unit: n/a
NVML::GPU_PCIE_RX_THROUGHPUTGPU PCIE receive throughput in bytes per second over a 20 millisecond period.
Aggregation: sum
Domain: gpu
Format: double
Unit: bytes/second
NVML::GPU_PCIE_TX_THROUGHPUTGPU PCIE transmit throughput in bytes per second over a 20 millisecond period.
Aggregation: sum
Domain: gpu
Format: double
Unit: bytes/second
NVML::GPU_CPU_ACTIVE_AFFINITIZATIONGPU associated with the specified cpu as determined by querying active processes on the GPU. If no GPUs map to the CPU -1 is returned. If multiple GPUs map to the CPU, NAN is returned.
Aggregation: expect_same
Domain: cpu
Format: double
Unit: n/a
NVML::GPU_UNCORE_UTILIZATIONFraction of time the GPU memory was accessed in the last set of driver samples.
Aggregation: average
Domain: gpu
Format: double
Unit: n/a
NVML::GPU_CORE_FREQUENCY_MAX_AVAILStreaming Multiprocessor maximum frequency in hertz.
Aggregation: expect_same
Domain: gpu
Format: double
Unit: hertz
NVML::GPU_CORE_FREQUENCY_MIN_AVAILStreaming Multiprocessor minimum frequency in hertz.
Aggregation: expect_same
Domain: gpu
Format: double
Unit: hertz
NVML::GPU_CORE_FREQUENCY_STEPThe Streaming Multiprocessor frequency step size in hertz. The average step size is provided in the case where the step size is variable.
Aggregation: expect_same
Domain: gpu
Format: double
Unit: hertz
Controls
Every control is exposed as a signal with the same name. The relevant signal aggregation information is provided below.
NVML::GPU_CORE_FREQUENCY_MIN_CONTROLSets the minimum frequency request for the Streaming Multiprocessor.
Aggregation: expect_same
Domain: gpu_chip
Format: double
Unit: hertz
NVML::GPU_CORE_FREQUENCY_MAX_CONTROLSets the minimum frequency request for the Streaming Multiprocessor.
Aggregation: expect_same
Domain: gpu_chip
Format: double
Unit: hertz
NVML::GPU_CORE_FREQUENCY_RESET_CONTROLResets Streaming Multiprocessor frequency min and max limits to default values. Parameter provided is unused.
Aggregation: expect_same
Domain: gpu
Format: double
Unit: n/a
NVML::GPU_POWER_LIMIT_CONTROLSets GPU power limit in watts.
Aggregation: double
Domain: gpu
Format: sum
Unit: watts
Aliases
This IOGroup provides the following high-level aliases:
Signal Aliases
GPU_POWERMaps to
NVML::GPU_POWER.GPU_CORE_FREQUENCY_STATUSMaps to
NVML::GPU_CORE_FREQUENCY_STATUS.GPU_CORE_FREQUENCY_MIN_AVAILMaps to
NVML::GPU_CORE_FREQUENCY_MIN_AVAIL.GPU_CORE_FREQUENCY_MAX_AVAILMaps to
NVML::GPU_CORE_FREQUENCY_MAX_AVAIL.GPU_CORE_FREQUENCY_STEPMaps to
NVML::GPU_CORE_FREQUENCY_STEP.GPU_ENERGYMaps to
NVML::GPU_ENERGY_CONSUMPTION_TOTAL.GPU_TEMPERATUREMaps to
NVML::GPU_TEMPERATURE.GPU_UTILIZATIONMaps to
NVML::GPU_UTILIZATION.
Control Aliases
GPU_CORE_FREQUENCY_MAX_CONTROLMaps to
NVML::GPU_CORE_FREQUENCY_MAX_CONTROLGPU_CORE_FREQUENCY_MIN_CONTROLMaps to
NVML::GPU_CORE_FREQUENCY_MIN_CONTROLGPU_POWER_LIMIT_CONTROLMaps to
NVML::GPU_POWER_LIMIT_CONTROL
See Also
NVML API, geopm(7), geopm::IOGroup(3), geopmwrite(1), geopmread(1), geopm::Agg(3)