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 CUPTI: 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_TESTS
to 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 CUPTI, fmt, googletest and set
CUDA_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 CUDA_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 ..
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.