6.61. CUpti_ActivityMemory3

struct CUpti_ActivityMemory3

内存的活动记录。

此活动记录表示内存分配和释放操作 (CUPTI_ACTIVITY_KIND_MEMORY2)。此活动记录为内存分配和内存释放操作提供单独的记录。这允许将相应的驱动程序和运行时 API 活动记录与内存操作相关联。

注意:此活动记录是 CUpti_ActivityMemory2 的升级版本,使用类型 CUPTI_ACTIVITY_KIND_MEMORY 启用。CUpti_ActivityMemory 为内存分配和内存释放操作提供单个记录。

公共成员

CUpti_ActivityKind kind

活动记录类型,必须为 CUPTI_ACTIVITY_KIND_MEMORY2。

CUpti_ActivityMemoryOperationType memoryOperationType

用户请求的内存操作,CUpti_ActivityMemoryOperationType

CUpti_ActivityMemoryKind memoryKind

用户请求的内存种类,CUpti_ActivityMemoryKind

uint32_t correlationId

内存操作的相关 ID。

每个内存操作都分配有一个唯一的 correlation ID,该 ID 与启动内存操作的驱动程序和运行时 API 活动记录中的 correlation ID 相同。

uint64_t address

分配的虚拟地址。

内存池的基地址。

uint64_t bytes

分配的内存字节数。

uint64_t timestamp

内存操作的起始时间戳,单位为纳秒。

uint64_t PC

内存操作的程序计数器。

uint32_t processId

此记录所属进程的 ID。

uint32_t deviceId

发生内存操作的设备的 ID。

uint32_t contextId

上下文的 ID。

如果 context 为 NULL,则 contextId 设置为 CUPTI_INVALID_CONTEXT_ID。

uint32_t streamId

流的 ID。

如果内存操作不是异步的,则 streamId 设置为 CUPTI_INVALID_STREAM_ID。

const char *name

变量名。

此名称在表示同一符号的所有活动记录之间共享,因此不应修改。

uint32_t isAsync

如果内存操作通过异步内存 API 发生,则设置 isAsync

uint32_t pad1

未定义。

保留供内部使用。

CUpti_ActivityMemoryPoolType memoryPoolType

内存池的类型,CUpti_ActivityMemoryPoolType

uint32_t pad2

未定义。

保留供内部使用。

uint64_t releaseThreshold

内存池的释放阈值(以字节为单位)。

releaseThreshold 对于 CUPTI_ACTIVITY_MEMORY_POOL_TYPE_LOCAL 有效,CUpti_ActivityMemoryPoolType

union CUpti_ActivityMemory3::[anonymous]::[anonymous] pool

内存池的大小(以字节为单位)和内存池的 processId,如果 memoryPoolType 是 CUPTI_ACTIVITY_MEMORY_POOL_TYPE_LOCAL,则 size 有效,CUpti_ActivityMemoryPoolType

如果 memoryPoolType 是 CUPTI_ACTIVITY_MEMORY_POOL_TYPE_IMPORTED,则 processId 有效,CUpti_ActivityMemoryPoolType

uint64_t utilizedSize

内存池的已使用大小。

utilizedSize 对于 CUPTI_ACTIVITY_MEMORY_POOL_TYPE_LOCAL 有效,CUpti_ActivityMemoryPoolType

struct CUpti_ActivityMemory3::[anonymous] memoryPoolConfig

用于内存操作的内存池配置。