Variorum Print Functions
Variorum provides the following high-level functions for printing
the value of various features. For each feature, there is a print
and
print_verbose
API, which will print the metrics in different output
formats. The print
API prints the output in tabular format that can be
filtered and parsed by a data analysis framework, such as R
or Python
.
The print_verbose
API prints the output in verbose format that is more
human-readable (with units, titles, etc.). See Examples for sample
output formats supported by Variorum.
Defined in variorum/variorum.h
.
-
int variorum_print_verbose_power(void)
Print power usage data in long format.
- Supported Architectures:
AMD EPYC Milan
AMD Radeon Instinct GPUs (MI50 onwards)
ARM Juno r2
IBM Power9
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Sapphire Rapids
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_power(void)
Print power usage data in CSV format.
- Supported Architectures:
AMD EPYC Milan
AMD Radeon Instinct GPUs (MI50 onwards)
ARM Juno r2
IBM Power9
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Sapphire Rapids
Intel Arctic Sound
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_verbose_power_limit(void)
Print power limits for all known domains in long format.
- Supported Architectures:
AMD EPYC Milan
AMD Radeon Instinct GPUs (MI50 onwards)
IBM Power9
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Sapphire Rapids
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_power_limit(void)
Print power limits for all known domains in CSV format.
- Supported Architectures:
AMD EPYC Milan
AMD Radeon Instinct GPUs (MI50 onwards)
IBM Power9
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Sapphire Rapids
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_verbose_thermals(void)
Print thermal data in long format.
- Supported Architectures:
AMD Radeon Instinct GPUs (MI50 onwards)
ARM Juno r2
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_thermals(void)
Print thermal data in CSV format.
- Supported Architectures:
AMD Radeon Instinct GPUs (MI50 onwards)
ARM Juno r2
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Arctic Sound
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_verbose_counters(void)
Print performance counter data in long format.
- Supported Architectures:
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_counters(void)
Print performance counter data in CSV format.
- Supported Architectures:
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_verbose_frequency(void)
Print current operating frequency (APERF/MPERF and PERF_STATUS) in long format.
- Supported Architectures:
AMD EPYC Milan
AMD Radeon Instinct GPUs (MI50 onwards)
ARM Juno r2
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_frequency(void)
Print current operating frequency (APERF/MPERF and PERF_STATUS) in CSV format.
- Supported Architectures:
AMD EPYC Milan
AMD Radeon Instinct GPUs (MI50 onwards)
ARM Juno r2
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Arctic Sound
NVIDIA Volta
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_hyperthreading(void)
Print if hyperthreading is enabled or disabled.
- Returns:
0 if successful, otherwise -1
-
void variorum_print_topology(void)
Print architecture topology in long format.
-
int variorum_print_features(void)
Print list of features available on a particular architecture.
- Supported Architectures:
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Sapphire Rapids
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_turbo(void)
Print if turbo is enabled or disabled. If enabled, then print discrete frequencies in turbo range (i.e., max turbo ratio).
- Supported Architectures:
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_verbose_gpu_utilization(void)
Print verbose GPU streaming multi-processor and memory utilization.
- Supported Architectures:
AMD Radeon Instinct GPUs (MI50 onwards)
NVIDIA Volta
- Architectures that do not have API support:
AMD EPYC Milan
IBM Power9
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_gpu_utilization(void)
Print CSV-formatted GPU streaming multi-processor and memory utilization.
- Supported Architectures:
AMD Radeon Instinct GPUs (MI50 onwards)
NVIDIA Volta
- Architectures that do not have API support:
AMD EPYC Milan
IBM Power9
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_available_frequencies(void)
Print list of available frequencies from p-states, turbo, AVX, etc. ranges.
- Supported Architectures:
ARM Juno r2
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_print_energy(void)
Print if core and socket energy is available.
- Supported Architectures:
AMD EPYC Milan
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_poll_power(FILE *output)
Collect power limits and energy usage for both the package and DRAM domains.
- Supported Architectures:
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
- Parameters:
output – [in] Location for output (stdout, stderr, filename).
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
int variorum_monitoring(FILE *output)
Collect power limits and energy usage for both the package and DRAM domains, fixed counters, TSC, APERF, and MPERF.
- Supported Architectures:
IBM Power9
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
Intel Sapphire Rapids
- Parameters:
output – [in] Location for output (stdout, stderr, filename).
- Returns:
0 if successful or if feature has not been implemented or is not supported, otherwise -1
-
char *variorum_get_current_version(void)