# CUpti_PCSamplingData Struct Reference
[CUPTI PC Sampling API]

Collected PC Sampling data.

## Data Fields

size_t | collectNumPcs
uint64_t | droppedSamples
uint64_t | nonUsrKernelsTotalSamples
CUpti_PCSamplingPCData * | pPcData
| collectNumPcs
uint64_t | rangeId
size_t | remainingNumPcs
size_t | size
size_t | totalNumPcs
uint64_t | totalSamples

## Field Documentation

size_t CUpti_PCSamplingData::collectNumPcs

[w] Number of PCs to be collected

uint64_t CUpti_PCSamplingData::droppedSamples

[r] Number of samples that were dropped by hardware due to backpressure/overflow.

uint64_t CUpti_PCSamplingData::nonUsrKernelsTotalSamples

[r] Number of samples collected across all non user kernels PCs. It includes samples for non-user kernels. It includes counts for all non selected stall reasons as well. CUPTI does not provide PC records for non-user kernels.

CUpti_PCSamplingPCData* CUpti_PCSamplingData::pPcData

[r] Profiled PC data This data struct should have enough memory to collect number of PCs mentioned in

uint64_t CUpti_PCSamplingData::rangeId

[r] Unique identifier for each range. Data collected across multiple ranges in multiple buffers can be identified using range id.

size_t CUpti_PCSamplingData::remainingNumPcs

[r] Number of PCs available for collection

size_t CUpti_PCSamplingData::size

[w] Size of the data structure. CUPTI client should set the size of the structure. It will be used in CUPTI to check what fields are available in the structure. Used to preserve backward compatibility.

size_t CUpti_PCSamplingData::totalNumPcs

[r] Number of PCs collected

uint64_t CUpti_PCSamplingData::totalSamples

[r] Number of samples collected across all PCs. It includes samples for user modules, samples for non-user kernels and dropped samples. It includes counts for all non selected stall reasons. CUPTI does not provide PC records for non-user kernels. CUPTI does not provide PC records for instructions for which all selected stall reason metrics counts are zero.