# CUpti_ActivityMemory3 Struct Reference
[CUPTI Activity API]

The activity record for memory. More...

## Data Structures
struct | PACKED_ALIGNMENT
## Data Fields
uint64_t | address
uint64_t | bytes
uint32_t | contextId
uint32_t | correlationId
uint32_t | deviceId
uint32_t | isAsync
CUpti_ActivityKind | kind
CUpti_ActivityMemoryKind | memoryKind
CUpti_ActivityMemoryOperationType | memoryOperationType
struct CUpti_ActivityMemory3::PACKED_ALIGNMENT | memoryPoolConfig
const char * | name
uint64_t | PC
uint32_t | processId
uint32_t | streamId
uint64_t | timestamp

## Detailed Description

This activity record represents a memory allocation and free operation (CUPTI_ACTIVITY_KIND_MEMORY2). This activity record provides separate records for memory allocation and memory release operations. This allows to correlate the corresponding driver and runtime API activity record with the memory operation.

Note: This activity record is an upgrade over CUpti_ActivityMemory enabled using the kind CUPTI_ACTIVITY_KIND_MEMORY. CUpti_ActivityMemory provides a single record for the memory allocation and memory release operations.

## Field Documentation

uint64_t CUpti_ActivityMemory3::address

The virtual address of the allocation.

uint64_t CUpti_ActivityMemory3::bytes

The number of bytes of memory allocated.

uint32_t CUpti_ActivityMemory3::contextId

The ID of the context. If context is NULL, `contextId` is set to CUPTI_INVALID_CONTEXT_ID.

uint32_t CUpti_ActivityMemory3::correlationId

The correlation ID of the memory operation. Each memory operation is assigned a unique correlation ID that is identical to the correlation ID in the driver and runtime API activity record that launched the memory operation.

uint32_t CUpti_ActivityMemory3::deviceId

The ID of the device where the memory operation is taking place.

uint32_t CUpti_ActivityMemory3::isAsync

`isAsync` is set if memory operation happens through async memory APIs.

CUpti_ActivityKind CUpti_ActivityMemory3::kind

The activity record kind, must be CUPTI_ACTIVITY_KIND_MEMORY2

CUpti_ActivityMemoryKind CUpti_ActivityMemory3::memoryKind

The memory kind requested by the user, CUpti_ActivityMemoryKind.

CUpti_ActivityMemoryOperationType CUpti_ActivityMemory3::memoryOperationType

The memory operation requested by the user, CUpti_ActivityMemoryOperationType.

struct CUpti_ActivityMemory3::PACKED_ALIGNMENT CUpti_ActivityMemory3::memoryPoolConfig

The memory pool configuration used for the memory operations.

const char* CUpti_ActivityMemory3::name

Variable name. This name is shared across all activity records representing the same symbol, and so should not be modified.

uint64_t CUpti_ActivityMemory3::PC

The program counter of the memory operation.

uint32_t CUpti_ActivityMemory3::processId

The ID of the process to which this record belongs to.

uint32_t CUpti_ActivityMemory3::streamId

The ID of the stream. If memory operation is not async, `streamId` is set to CUPTI_INVALID_STREAM_ID.

uint64_t CUpti_ActivityMemory3::timestamp

The start timestamp for the memory operation, in ns.