A library to access core and uncore frequencies of x86 processors that provides callbacks for msr-safe, x86-adapt, likwid, and sysfs entries
To compile this plugin, you need:
-
GCC compiler
-
CMake 3.9+
-
CMAKE_INSTALL_PREFIX
(default/usr/local
)Installation directory
-
CMAKE_BUILD_TYPE
(defaultDebug
)Build type with different compiler options, can be
Debug
Release
MinSizeRel
RelWithDebInfo
-
X86_ADAPT_LIBRARIES
Libraries for x86_adapt, e.g., -DX86_ADAPT_LIBRARIES=/opt/x86_adapt/lib/libx86_adapt_static.a
X86_ADAPT_INCLUDE_DIRS
Include directories for x86_adapt, e.g., -DX86_ADAPT_INCLUDE_DIRS=/opt/x86_adapt/include
LIKWID_LIBRARIES
Libraries for likwid, e.g.-DLIKWID_LIBRARIES=/opt/likwi/lib/liblikwid.so
-
LIKWID_INCLUDE_DIRS
Include directories for likwid, e.g.
-DLIKWID_INCLUDE_DIRS=/opt/likwid/include
-
X86A_STATIC
(default on)Link
x86_adapt
statically, if it is found
-
Create build directory
mkdir build cd build
-
Invoking CMake
cmake .. (options)
-
Invoking make
make
-
Install
make install
-
Add the installation path to
LD_LIBRARY_PATH
withexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`
See the documentation in
During runtime, the library will try to access the following interfaces:
- msr and msr-safe, provided by the
msr
andmsr-safe
kernel module, available for Intel processors - x86-adapt, provided by the
x86_adapt
kernel module (if found during installation), available for Intel processors - likwid, provided by
likwid
thecpufreq
kernel module (if found during installation) - sysfs cpufreq, provided by the
cpufreq
kernel module. Only available for CPU frequency, but not for uncore frequency. Make sure thatintel_pstate
is deactivated if you want to use this option. Furthermore, check whether you can read and write
/sys/devices/system/cpu/cpu<nr>/cpufreq/scaling_setspeed
Also make sure that/sys/devices/system/cpu/cpu<nr>/cpufreq/scaling_governor
is set to userspace
You can enforce a specific interface by setting the environment variable LIBFREQGEN_CORE_INTERFACE
and LIBFREQGEN_UNCORE_INTERFACE
to one of these values:
likwid
selects likwidmsr
selects access via msr/msr-safesysfs
selects cpufreq sysfs entries (not forLIBFREQGEN_UNCORE_INTERFACE
)x86_adapt
selects x86_adapt
-
Check whether the libraries can be loaded from the
LD_LIBRARY_PATH
. -
Write a mail to the author.
- Robert Schoene (robert.schoene at tu-dresden dot de)
- Andreas Gocht (andreas.gocht at tu-dresden dot de)
- Umbreen Sabir Mian (umbreen.mian at tu-dresden dot de)