Variorum Cap Functions¶
Variorum provides the following high-level functions for applying an upper-bound on a particular control dial.
Defined in variorum/variorum.h
.
-
int
variorum_cap_each_socket_power_limit
(int socket_power_limit)¶ Cap the power limits for all sockets within the node.
- Supported Architectures:
AMD EPYC Milan
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
- Return
0 if successful or if feature has not been implemented or is not supported, otherwise -1
- Parameters
[in] socket_power_limit
: Desired power limit for each socket.
-
int
variorum_cap_best_effort_node_power_limit
(int node_power_limit)¶ Cap the power limit of the node.
- Supported Architectures:
IBM Power9
AMD EPYC Milan
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Cascade Lake
Intel Cooper Lake
- Return
0 if successful or if feature has not been implemented or is not supported, otherwise -1
- Parameters
[in] node_power_limit
: Desired power limit for the node.
-
int
variorum_cap_gpu_power_ratio
(int gpu_power_ratio)¶ Cap the power shifting ratio for the GPU (uniform on both sockets).
- Supported Architectures:
IBM Power9 (same ratio on both sockets)
- Architectures that do not have API support:
AMD EPYC Milan
ARM Juno r2
Intel Sandy Bridge
Intel Ivy Bridge
Intel Haswell
Intel Broadwell
Intel Skylake
Intel Kaby Lake
Intel Ice Lake
Intel Cascade Lake
Intel Cooper Lake
NVIDIA Volta
- Return
0 if successful or if feature has not been implemented or is not supported, otherwise -1
- Parameters
[in] gpu_power_ratio
: Desired power ratio (percentage). for the processor and GPU.
-
int
variorum_cap_each_gpu_power_limit
(int gpu_power_limit)¶ Cap the power usage identically of each GPU on the node.
- Supported Architectures:
NVIDIA Volta, Ampere
AMD Instinct (MI-50 onwards)
- Return
0 if successful, otherwise -1
- Parameters
[in] gpu_power_limit
: Desired power limit in watts for each GPU on the node.
-
int
variorum_cap_each_core_frequency_limit
(int cpu_freq_mhz)¶ Cap the CPU frequency for all cores within a socket.
- Supported Architectures:
AMD EPYC Milan
Intel Skylake
Intel Cascade Lake
Intel Cooper Lake
- Return
0 if successful or if feature has not been implemented or is not supported, otherwise -1
- Parameters
[in] cpu_freq_mhz
: Desired CPU frequency for each core in MHz.
-
int
variorum_cap_socket_frequency_limit
(int socketid, int socket_freq_mhz)¶ Cap the frequency of the target processor.
- Supported Architectures:
ARM Juno r2
AMD EPYC Milan
- Return
0 if successful or if feature has not been implemented or is not supported, otherwise -1
- Parameters
[in] socketid
: Target socket ID.[in] socket_freq_mhz
: Desired socket frequency in MHz.