Overview

CUPTI Python supports a subset of CUPTI C Activity and Callback APIs.

The following CUPTI APIs are not supported:

  • Host Profiling

  • Range Profiling

  • PC Sampling

  • SASS Metrics

  • PM Sampling

  • Profiling

  • Event

  • Metric

  • Checkpoint

The CUPTI Python APIs are implemented as wrappers over the corresponding CUPTI C APIs.

The CUPTI Python APIs use snake case naming (lower case and words separated by underscore). e.g. activity_enable. While the CUPTI C APIs use camel case naming (first character of word is upper case). e.g. cuptiActivityEnable .

Refer the CUPTI C document for details.

Supported CUPTI Activities

Each supported CUPTI Activity Struct corresponds to an equivalent Python class. The activity records are returned through the func_buffer_completed callback as corresponding Python objects. To identify the type of activity record represented by the Python object, refer to the kind field. The table below links each supported Activity Kind to its corresponding Activity Record and equivalent Python class.

Supported Activity Kinds

Activity Record

Python Class

cupti.cupti.ActivityKind.DRIVER

CUpti_ActivityAPI

cupti.cupti.ActivityAPI

cupti.cupti.ActivityKind.MEMCPY

CUpti_ActivityMemcpy6

cupti.cupti.ActivityMemcpy6

cupti.cupti.ActivityKind.MEMCPY2

CUpti_ActivityMemcpyPtoP4

cupti.cupti.ActivityMemcpyPtoP4

cupti.cupti.ActivityKind.MEMSET

CUpti_ActivityMemset4

cupti.cupti.ActivityMemset4

cupti.cupti.ActivityKind.MEMORY_POOL

CUpti_ActivityMemoryPool2

cupti.cupti.ActivityMemoryPool2

cupti.cupti.ActivityKind.MEMORY2

CUpti_ActivityMemory4

cupti.cupti.ActivityMemory4

cupti.cupti.ActivityKind.KERNEL

CUpti_ActivityKernel9

cupti.cupti.ActivityKernel9

cupti.cupti.ActivityKind.CONCURRENT_KERNEL

CUpti_ActivityKernel9

cupti.cupti.ActivityKernel9

cupti.cupti.ActivityKind.ENVIRONMENT

CUpti_ActivityEnvironment

cupti.cupti.ActivityEnvironment

cupti.cupti.ActivityKind.CONTEXT

CUpti_ActivityContext3

cupti.cupti.ActivityContext3

cupti.cupti.ActivityKind.UNIFIED_MEMORY_COUNTER

CUpti_ActivityUnifiedMemoryCounter3

cupti.cupti.ActivityUnifiedMemoryCounter3

cupti.cupti.ActivityKind.FUNCTION

CUpti_ActivityFunction

cupti.cupti.ActivityFunction

cupti.cupti.ActivityKind.MODULE

CUpti_ActivityModule

cupti.cupti.ActivityModule

cupti.cupti.ActivityKind.DEVICE_ATTRIBUTE

CUpti_ActivityDeviceAttribute

cupti.cupti.ActivityDeviceAttribute

cupti.cupti.ActivityKind.CUDA_EVENT

CUpti_ActivityCudaEvent2

cupti.cupti.ActivityCudaEvent2

cupti.cupti.ActivityKind.STREAM

CUpti_ActivityStream

cupti.cupti.ActivityStream

cupti.cupti.ActivityKind.SYNCHRONIZATION

CUpti_ActivitySynchronization2

cupti.cupti.ActivitySynchronization2

cupti.cupti.ActivityKind.EXTERNAL_CORRELATION

CUpti_ActivityExternalCorrelation

cupti.cupti.ActivityExternalCorrelation

cupti.cupti.ActivityKind.GRAPH_TRACE

CUpti_ActivityGraphTrace2

cupti.cupti.ActivityGraphTrace2

cupti.cupti.ActivityKind.JIT

CUpti_ActivityJit2

cupti.cupti.ActivityJit2

cupti.cupti.ActivityKind.NAME

CUpti_ActivityName

cupti.cupti.ActivityName

cupti.cupti.ActivityKind.MARKER

CUpti_ActivityMarker2

cupti.cupti.ActivityMarker2

cupti.cupti.ActivityKind.MARKER_DATA

CUpti_ActivityMarkerData

cupti.cupti.ActivityMarkerData

cupti.cupti.ActivityKind.OVERHEAD

CUpti_ActivityOverhead3

cupti.cupti.ActivityOverhead3

cupti.cupti.ActivityKind.DEVICE

CUpti_ActivityDevice5

cupti.cupti.ActivityDevice5

cupti.cupti.ActivityKind.DEVICE_GRAPH_TRACE

CUpti_ActivityDeviceGraphTrace

cupti.cupti.DeviceGraphTrace

cupti.cupti.ActivityKind.MEM_DECOMPRESS

CUpti_ActivityMemDecompress

cupti.cupti.ActivityMemDecompress

Supported CUPTI Callback Domains

Only the following subset of CUPTI Callback Domains defined in enum CUpti_CallbackDomain from the CUPTI C header file cupti_callbacks.h are supported :

  • CUPTI_CB_DOMAIN_DRIVER_API

  • CUPTI_CB_DOMAIN_RESOURCE

  • CUPTI_CB_DOMAIN_SYNCHRONIZE

  • CUPTI_CB_DOMAIN_STATE