6.43. CUpti_ActivityKernel7
-
struct CUpti_ActivityKernel7
内核的活动记录。
(在 CUDA 11.8 中已弃用)
此活动记录表示内核执行 (CUPTI_ACTIVITY_KIND_KERNEL 和 CUPTI_ACTIVITY_KIND_CONCURRENT_KERNEL),但 CUPTI 不再生成。内核活动现在使用 CUpti_ActivityKernel9 活动记录报告。
公开成员
-
CUpti_ActivityKind kind
活动记录类型,必须为 CUPTI_ACTIVITY_KIND_KERNEL 或 CUPTI_ACTIVITY_KIND_CONCURRENT_KERNEL。
-
uint8_t requested
内核请求的缓存配置。
该值是 cuda.h 中 CUfunc_cache 枚举值之一。
-
uint8_t executed
用于内核的缓存配置。
该值是 cuda.h 中 CUfunc_cache 枚举值之一。
-
union CUpti_ActivityKernel7::[anonymous] cacheConfig
对于计算能力为 7.0+ 的设备,如果设置了 field isSharedMemoryCarveoutRequested,则 cacheConfig 值不会更新。
用于内核的共享内存配置。
该值是 cuda.h 中 CUsharedconfig 枚举值之一。
-
uint16_t registersPerThread
每个执行内核的线程所需的寄存器数量。
-
CUpti_ActivityPartitionedGlobalCacheConfig partitionedGlobalCacheRequested
为内核请求的分区全局缓存。
需要分区全局缓存才能在某些芯片上启用缓存,例如计算能力为 5.2 的设备。
-
CUpti_ActivityPartitionedGlobalCacheConfig partitionedGlobalCacheExecuted
为内核执行的分区全局缓存。
需要分区全局缓存才能在某些芯片上启用缓存,例如计算能力为 5.2 的设备。如果启动的占用率要求不支持缓存,则可以自动禁用分区全局缓存。
-
uint64_t start
内核执行的开始时间戳,以纳秒为单位。
如果开始和结束时间戳的值都为 0,则表示无法收集内核的时间戳信息。
-
uint64_t end
内核执行的结束时间戳,以纳秒为单位。
如果开始和结束时间戳的值都为 0,则表示无法收集内核的时间戳信息。
-
uint64_t completed
内核执行的完成时间戳,以纳秒为单位。
它表示所有子内核和内核本身的完成。值 CUPTI_TIMESTAMP_UNKNOWN 表示完成时间未知。
-
uint32_t deviceId
内核正在执行的设备的 ID。
-
uint32_t contextId
内核正在执行的上下文的 ID。
-
uint32_t streamId
内核正在执行的流的 ID。
-
int32_t gridX
内核的 X 维度网格大小。
-
int32_t gridY
内核的 Y 维度网格大小。
-
int32_t gridZ
内核的 Z 维度网格大小。
-
int32_t blockX
内核的 X 维度块大小。
-
int32_t blockY
内核的 Y 维度块大小。
-
int32_t blockZ
内核的 Z 维度网格大小。
int32_t staticSharedMemory
int32_t dynamicSharedMemory
-
为内核保留的动态共享内存,以字节为单位。
uint32_t localMemoryPerThread
-
为每个线程保留的本地内存量,以字节为单位。
uint32_t localMemoryTotal
-
为内核保留的本地内存总量,以字节为单位。
uint32_t correlationId
内核的相关 ID。
-
每个内核执行都分配有一个唯一的 correlation ID,该 ID 与启动内核的驱动程序或运行时 API 活动记录中的 correlation ID 相同。
int64_t gridId
内核的网格 ID。
-
每个内核在运行时都会分配一个唯一的网格 ID。
const char *name
内核的名称。
-
此名称在表示同一内核的所有活动记录之间共享,因此不应修改。
void *reserved0
未定义。
-
保留供内部使用。
uint64_t queued
内核在命令缓冲区中排队的时间戳,以纳秒为单位。
值 CUPTI_TIMESTAMP_UNKNOWN 表示无法收集内核的排队时间。默认情况下不收集此时间戳。使用 API cuptiActivityEnableLatencyTimestamps() 启用收集。
-
命令缓冲区是 CUDA 驱动程序写入的缓冲区,用于将内核启动、内存复制等命令发送到 GPU。所有 CUDA 内核的启动相对于主机都是异步的,主机通过将命令写入命令缓冲区来请求启动,然后返回而不检查 GPU 的进度。
uint64_t submitted
包含内核启动的命令缓冲区提交到 GPU 的时间戳,以纳秒为单位。
-
值 CUPTI_TIMESTAMP_UNKNOWN 表示无法收集内核的提交时间。默认情况下不收集此时间戳。使用 API cuptiActivityEnableLatencyTimestamps() 启用收集。
uint8_t launchType
指示内核是通过常规启动还是通过单/多设备协同启动执行的。
uint8_t isSharedMemoryCarveoutRequested
uint8_t sharedMemoryCarveoutRequested
为函数请求的共享内存分割值,占总资源的百分比。
-
仅当设置了 field isSharedMemoryCarveoutRequested 时,该值才会更新。
void *reserved0
未定义。
uint32_t sharedMemoryExecuted
-
驱动程序设置的共享内存大小。
uint64_t graphNodeId
通过图形启动 API 启动此内核的图形节点的唯一 ID。
-
如果内核不是通过图形启动 API 启动的,则此字段为 0。
CUpti_FuncShmemLimitConfig shmemLimitConfig
内核的共享内存限制配置。
-
此字段显示用户是否选择了更高的每个块动态共享内存限制。
uint32_t graphId
通过图形启动 API 启动此内核的图形节点的唯一 ID。
-
通过图形启动 API 启动此内核的图形的唯一 ID。
CUaccessPolicyWindow *pAccessPolicyWindow
指向访问策略窗口的指针。
-
结构 CUaccessPolicyWindow 在 cuda.h 中定义。
uint32_t channelID
-
内核在其上启动的硬件通道的 ID。
CUpti_ChannelType channelType
-
CUpti_ActivityKind kind