6.100. CUpti_ActivityUnifiedMemoryCounter2

struct CUpti_ActivityUnifiedMemoryCounter2

用于统一内存计数器的活动记录 (在 12.8 版本中已弃用)

此活动记录表示一个统一内存计数器 (CUPTI_ACTIVITY_KIND_UNIFIED_MEMORY_COUNTER)。

公共成员

CUpti_ActivityKind kind

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

CUpti_ActivityUnifiedMemoryCounterKind counterKind

统一内存计数器类型。

uint64_t value

计数器的值。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_HTOD、CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_DTOH、CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THREASHING 和 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_REMOTE_MAP,它是内存区域的大小,以字节为单位。

对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_GPU_PAGE_FAULT,它是同一页面的页错误组的数量。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_CPU_PAGE_FAULT_COUNT,它是导致错误的指令的程序计数器。

uint64_t start

计数器的开始时间戳,单位为纳秒 (ns)。

对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_HTOD 和 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_DTOH,时间戳在 GPU 上活动开始时捕获。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_GPU_PAGE_FAULT 和 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_CPU_PAGE_FAULT_COUNT,时间戳在 CUDA 驱动程序开始处理错误时捕获。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THRASHING,时间戳在 CUDA 驱动程序检测到内存区域抖动时捕获。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THROTTLING,时间戳在 CUDA 驱动程序启动节流操作时捕获。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_REMOTE_MAP,时间戳在 CUDA 驱动程序已将所有必需操作推送到 dstId 指定的处理器时捕获。

uint64_t end

计数器的结束时间戳,单位为纳秒 (ns)。

如果 counterKind 是 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_CPU_PAGE_FAULT_COUNT、CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THRASHING 或 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_REMOTE_MAP,则忽略此字段。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_HTOD 和 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_DTOH,时间戳在 GPU 上活动完成时捕获。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_GPU_PAGE_FAULT,时间戳在 CUDA 驱动程序将导致错误的内存访问重新排队到 GPU 上时捕获。对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THROTTLING,时间戳在 CUDA 驱动程序完成节流操作时捕获

uint64_t address

这是正在传输的页面的虚拟基地址。

对于 CPU 和 GPU 错误,这是发生错误的页面的虚拟地址。

uint32_t srcId

参与内存传输、页错误、抖动、节流或远程映射操作的源 CPU/设备的 ID。

对于 counterKind CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THRASHING,它是为争夺内存区域而竞争的设备 ID 的按位 OR 运算。如果 counterKind 是 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_CPU_PAGE_FAULT_COUNT,则忽略此字段

uint32_t dstId

参与内存传输或远程映射操作的目标 CPU/设备的 ID。

如果 counterKind 是 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_GPU_PAGE_FAULT、CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_CPU_PAGE_FAULT_COUNT、CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THRASHING 或 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THROTTLING,则忽略此字段

uint32_t streamId

导致传输的流的 ID。

此字段的值无效。

uint32_t processId

此记录所属进程的 ID。

uint32_t flags

与此记录关联的标志。

如果 counterKind 是 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_GPU_PAGE_FAULT,请参阅枚举 CUpti_ActivityUnifiedMemoryAccessType;如果 counterKind 是 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_HTOD 或 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_BYTES_TRANSFER_HTOD,请参阅 CUpti_ActivityUnifiedMemoryMigrationCause;如果 counterKind 是 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_REMOTE_MAP,请参阅 CUpti_ActivityUnifiedMemoryRemoteMapCause;如果 counterKind 是 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THRASHING 或 CUPTI_ACTIVITY_UNIFIED_MEMORY_COUNTER_KIND_THROTTLING,请参阅 CUpti_ActivityFlag

uint32_t pad

未定义。

为内部使用保留。