6.62. CUpti_ActivityMemory4

struct CUpti_ActivityMemory4

内存的活动记录。

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

注意:此活动记录是 CUpti_ActivityMemory 的升级版本,后者通过类型 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。

如果上下文为 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_ActivityMemory4::[anonymous]::[anonymous] pool

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

processId 有效 if memoryPoolType is CUPTI_ACTIVITY_MEMORY_POOL_TYPE_IMPORTED, CUpti_ActivityMemoryPoolType

uint64_t utilizedSize

内存池的已使用大小。

utilizedSize 对 CUPTI_ACTIVITY_MEMORY_POOL_TYPE_LOCAL 有效,CUpti_ActivityMemoryPoolType

struct CUpti_ActivityMemory4::[anonymous] memoryPoolConfig

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

const char *source

内存分配请求来自的共享对象或二进制文件。