nvgpu (NVIDIA GPUs)

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 of user-specified code regions at the moment, but the module will be improved over time.

Your feedback is more than welcome! Please see here how you can get in touch with us.

Installation

Requirements

First of all, make sure you satisfy the Adaptyst core requirements.

nvgpu requires CUDA with CUPTI (which should be included in CUDA by default). The earliest tested version is 12.5, but this is a guideline only: the module may work with older toolkits as well.

If you build from source, you also need:

Manually from source

Please clone the GitHub repository at the tag of your choice (it’s usually the newest one from here) and run cmake <path to your repository> in a separate directory (as either non-root or root, non-root recommended) followed by cmake --build . (as either non-root or root, non-root recommended) and cmake --install . (as root unless you run the installation for a non-system module directory).

Here are the CMake options you can use/change for nvgpu:

  • INSTALL_PATH: indicates the path where nvgpu should be installed (default: the value provided by Adaptyst via ADAPTYST_MODULE_PATH in CMake, this is usually /opt/adaptyst/modules)

Container images

Container images temporarily unavailable

Due to the new modular release of Adaptyst, container images are currently being redesigned and will be available again soon. Sorry for any inconvenience caused!

Adaptyst Analyser module

The module for Adaptyst Analyser can be found on GitHub. As for all modules, the Adaptyst Analyser part is independent of the Adaptyst one and can be installed via adaptyst-analyser by cloning the repository at the tag of your choice (it’s usually the newest one from here) and running adaptyst-analyser <path to the cloned repository>.

Usage

nvgpu utilises the code regionisation feature of Adaptyst to determine what parts of your program to analyse in terms of NVIDIA GPU activity. Once you define your code regions and add nvgpu to your system graph, the module should do its job automatically and produce results that can be inspected e.g. in Adaptyst Analyser.

Options

NameTypeDefault valueExplanation
cuda_api_typeOne of: runtime, driver, or bothbothCUDA API type to trace

Features for Adaptyst Analyser

When you open the module window in Adaptyst Analyser, you will see the timeline of your code regions, where the time axis is synchronised with other modules so that you can make direct time-based comparisons.

Each region block contains a number describing the percentage of its runtime spent on CUDA API calls. When you right-click the block, you will see a breakdown of CUDA API function runtimes there arranged in a stack-like way (as some CUDA driver API calls are made inside CUDA runtime API functions).