Libkineto is an in-process profiling library, part of the Kineto performance tools project.
The library provides a way to collect GPU traces and metrics from the host process, either via the library public API or by sending a signal, if enabled.
Currently only NVIDIA GPUs are supported.
Libkineto uses the standard CMAKE-based build flow.
Libkineto requires gcc 5+ and:
- NVIDIA MUPTI: used to collect traces and metrics from NVIDIA GPUs.
- fmt: used for its convenient and lightweight string formatting functionality.
- googletest: required to build and run Kineto's tests.
- googletest is not required if you don't want to run Kineto tests.
By default, building of tests is on. Turn it off by setting
KINETO_BUILD_TESTSto off.
- googletest is not required if you don't want to run Kineto tests.
By default, building of tests is on. Turn it off by setting
You can download NVIDIA MUPTI, fmt, googletest and set
MUSA_SOURCE_DIR, FMT_SOURCE_DIR, GOOGLETEST_SOURCE_DIR respectively for
cmake to find these libraries. If the fmt and googletest variables are not set, cmake will
build the git submodules found in the third_party directory.
If MUSA_SOURCE_DIR is not set, libkineto will fail to build.
# Check out repo and sub modules
git clone --recursive https://github.com/pytorch/kineto.git
# Build libkineto with cmake
cd kineto/libkineto
mkdir build && cd build
# cmake with MUPTI disabled
cmake ..
# or cmake with MUPTI enabled(change the following paths according to your situation)
cmake -DMUSA_SOURCE_DIR=/usr/local/musa -DMUPTI_INCLUDE_DIR=/usr/local/musa/include -DMUSA_mupti_LIBRARY=/usr/local/musa/lib/libmupti.so ..
make
To run the tests after building libkineto (if tests are built), use the following command:
make test
make install
We will provide a high-level overview, design philosophy and brief descriptions of various parts of Libkineto in upcoming blogs.
We strive to keep our source files readable. The best and up-to-date documentation is available in the source files.
Libkineto is BSD licensed, as detailed in the LICENSE file.