CUPTI :: CUPTI Documentation

-->
CUPTI (PDF) - v11.5 (older) - Last updated Oct 11, 2021 - Send Feedback -

## Overview

The CUDA Profiling Tools Interface (CUPTI) enables the creation of profiling and tracing tools that target CUDA applications. CUPTI provides the following APIs: the Activity API, the Callback API, the Event API, the Metric API and the Profiler API. Using these APIs, you can develop profiling tools that give insight into the CPU and GPU behavior of CUDA applications. CUPTI is delivered as a dynamic library on all platforms supported by CUDA.

### What's New

CUPTI contains below changes as part of the CUDA Toolkit 11.5 release.

- A new API `cuptiProfilerDeviceSupported` is introduced to expose overall Profiling API support and specific requirements for a given device. Profiling API must be initialized by calling `cuptiProfilerInitialize` before testing device support.
- PC Sampling struct `CUpti_PCSamplingData` introduces a new field `nonUsrKernelsTotalSamples` to provide information about the number of samples collected for all non-user kernels.
- Activity record `CUpti_ActivityDevice2` for device information has been deprecated and replaced by a new activity record `CUpti_ActivityDevice3`. New record adds a flag `isCudaVisible` to indicate whether device is visible to CUDA.
- Activity record `CUpti_ActivityNvLink3` for NVLINK information has been deprecated and replaced by a new activity record `CUpti_ActivityNvLink4`. New record can accommodate NVLINK port information upto a maximum of 32 ports.
- A new CUPTI API `Checkpoint` is introduced, enabling automatic saving and restoring of device state, and facilitating development of kernel replay tools. This is helpful for User Replay mode of the CUPTI Profiler API, but is not limited to use with CUPTI.