nvgpu (NVIDIA GPUs)

Documentation under construction (last update: 03/11/2025)

The complete documentation will be available within the next few days.

Introduction

nvgpu is a system module for analysing activity of NVIDIA GPUs running CUDA-based programs. It looks into the runtime length of CUDA runtime and driver APIs at the moment, but the module will be improved as time goes.

Quick start

  1. Download the module from GitHub along with its Adaptyst Analyser counterpart.
  2. Make sure that you satisfy the Adaptyst core requirements + the ones below:
  3. Build and install nvgpu by running cmake in the directory where you have cloned the repository followed by cmake --build . and cmake --install .. If you want to change the module installation path (its default value is determined by your Adaptyst installation), run CMake with -DINSTALL_PATH=<new path> as the first step.
  4. Add nvgpu to your system graph definition file. If you want, you can include the cuda_api_type option to specify which CUDA API you want to trace (runtime, driver, or both; it’s both by default).
  5. Assuming that your CUDA-based program is written in C/C++, add the following lines to your CUDA-based code:
#include <adaptyst/inject.h>

// ...

adaptyst_region_start("your region name");

// Your CUDA-based code region

adaptyst_region_end("your region name");

// ...
  1. Compile your CUDA-based program while linking against libadaptyst_inject.so (usually by adding the -ladaptyst_inject compiler flag; if you use CMake, use the adaptyst::adaptyst_inject target).
  2. Install the nvgpu Adaptyst Analyser counterpart as you usually do with new modules in Adaptyst Analyser.
  3. Run Adaptyst with your compiled program and open the results in Adaptyst Analyser. Enjoy!