5.9. CUPTI Profiler Host API

实现 CUPTI Profiler Host API 的函数、类型和枚举。

数据结构

CUpti_Profiler_Host_ConfigAddMetrics_Params

cuptiProfilerHostConfigAddMetrics 的参数。

CUpti_Profiler_Host_Deinitialize_Params

cuptiProfilerHostDeinitialize 的参数。

CUpti_Profiler_Host_EvaluateToGpuValues_Params

cuptiProfilerHostEvaluateToGpuValues 的参数。

CUpti_Profiler_Host_GetBaseMetrics_Params

cuptiProfilerHostGetSupportedMetrics 的参数。

CUpti_Profiler_Host_GetConfigImageSize_Params

cuptiProfilerHostGetConfigImageSize 的参数。

CUpti_Profiler_Host_GetConfigImage_Params

cuptiProfilerHostGetConfigImage 的参数。

CUpti_Profiler_Host_GetMaxNumHardwareMetricsPerPass_Params

cuptiProfilerHostGetMaxNumHardwareMetricsPerPass 的参数。

CUpti_Profiler_Host_GetMetricProperties_Params

cuptiProfilerHostGetMetricProperties 的参数。

CUpti_Profiler_Host_GetNumOfPasses_Params

cuptiProfilerHostGetNumOfPasses 的参数。

CUpti_Profiler_Host_GetRangeName_Params

cuptiProfilerHostGetRangeName 的参数。

CUpti_Profiler_Host_GetSubMetrics_Params

cuptiProfilerHostGetSubMetrics 的参数。

CUpti_Profiler_Host_GetSupportedChips_Params

cuptiProfilerHostGetSupportedChips 的参数。

CUpti_Profiler_Host_Initialize_Params

cuptiProfilerHostInitialize 的参数。

枚举

函数

CUptiResult cuptiProfilerHostConfigAddMetrics(CUpti_Profiler_Host_ConfigAddMetrics_Params *pParams)

将指标添加到分析器主机对象,以生成配置映像。

CUptiResult cuptiProfilerHostDeinitialize(CUpti_Profiler_Host_Deinitialize_Params *pParams)

反初始化并销毁分析器主机对象 (CUpti_Profiler_Host_Object)。

CUptiResult cuptiProfilerHostEvaluateToGpuValues(CUpti_Profiler_Host_EvaluateToGpuValues_Params *pParams)

评估存储在计数器数据中的范围索引的指标值。

CUptiResult cuptiProfilerHostGetBaseMetrics(CUpti_Profiler_Host_GetBaseMetrics_Params *pParams)

获取芯片支持的基本指标列表。

CUptiResult cuptiProfilerHostGetConfigImage(CUpti_Profiler_Host_GetConfigImage_Params *pParams)

获取添加到分析器主机对象的指标的配置映像。

CUptiResult cuptiProfilerHostGetConfigImageSize(CUpti_Profiler_Host_GetConfigImageSize_Params *pParams)

获取添加到分析器主机对象的指标的配置映像的大小。

CUptiResult cuptiProfilerHostGetMaxNumHardwareMetricsPerPass(CUpti_Profiler_Host_GetMaxNumHardwareMetricsPerPass_Params *pParams)

获取芯片单次pass中可以调度的最大硬件指标数(指标名称不包含 sass 关键字)。

CUptiResult cuptiProfilerHostGetMetricProperties(CUpti_Profiler_Host_GetMetricProperties_Params *pParams)

获取指标的属性。

CUptiResult cuptiProfilerHostGetNumOfPasses(CUpti_Profiler_Host_GetNumOfPasses_Params *pParams)

获取配置映像中计划的指标进行分析所需的pass数。

CUptiResult cuptiProfilerHostGetRangeName(CUpti_Profiler_Host_GetRangeName_Params *pParams)

获取存储在计数器数据中的范围索引的范围名称。

CUptiResult cuptiProfilerHostGetSubMetrics(CUpti_Profiler_Host_GetSubMetrics_Params *pParams)

获取指标支持的子指标列表。

CUptiResult cuptiProfilerHostGetSupportedChips(CUpti_Profiler_Host_GetSupportedChips_Params *pParams)

获取支持的芯片列表。

CUptiResult cuptiProfilerHostInitialize(CUpti_Profiler_Host_Initialize_Params *pParams)

创建并初始化分析器主机对象 (CUpti_Profiler_Host_Object)。

类型定义

5.9.1.

CUpti_Profiler_Host_ConfigAddMetrics_Params_STRUCT_SIZE
CUpti_Profiler_Host_Deinitialize_Params_STRUCT_SIZE
CUpti_Profiler_Host_EvaluateToGpuValues_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetBaseMetrics_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetConfigImageSize_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetConfigImage_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetMaxNumHardwareMetricsPerPass_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetMetricProperties_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetNumOfPasses_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetRangeName_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetSubMetrics_Params_STRUCT_SIZE
CUpti_Profiler_Host_GetSupportedChips_Params_STRUCT_SIZE
CUpti_Profiler_Host_Initialize_Params_STRUCT_SIZE

5.9.2. 枚举

enum CUpti_MetricType

enumerator CUPTI_METRIC_TYPE_COUNTER
enumerator CUPTI_METRIC_TYPE_RATIO
enumerator CUPTI_METRIC_TYPE_THROUGHPUT
enumerator CUPTI_METRIC_TYPE__COUNT
enum CUpti_ProfilerType

enumerator CUPTI_PROFILER_TYPE_RANGE_PROFILER
enumerator CUPTI_PROFILER_TYPE_PM_SAMPLING
enumerator CUPTI_PROFILER_TYPE_PROFILER_INVALID

5.9.3. 函数

CUptiResult cuptiProfilerHostConfigAddMetrics(CUpti_Profiler_Host_ConfigAddMetrics_Params *pParams)

将指标添加到分析器主机对象,以生成配置映像。

配置映像将包含调度指标以收集分析数据所需的必要信息。注意:PM 采样仅支持单pass配置映像。

参数

pParams – 指向 CUpti_Profiler_Host_ConfigAddMetrics_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_INVALID_METRIC_NAME – 如果指标名称无效或芯片不支持

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostDeinitialize(CUpti_Profiler_Host_Deinitialize_Params *pParams)

反初始化并销毁分析器主机对象 (CUpti_Profiler_Host_Object)。

参数

pParams – 指向 CUpti_Profiler_Host_Deinitialize_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostEvaluateToGpuValues(CUpti_Profiler_Host_EvaluateToGpuValues_Params *pParams)

评估存储在计数器数据中的范围索引的指标值。

参数

pParams – 指向 CUpti_Profiler_Host_EvaluateToGpuValues_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_INVALID_METRIC_NAME – 如果指标名称无效或芯片不支持

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetBaseMetrics(CUpti_Profiler_Host_GetBaseMetrics_Params *pParams)

获取芯片支持的基本指标列表。

参数

pParams – 指向 CUpti_Profiler_Host_GetBaseMetrics_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetConfigImage(CUpti_Profiler_Host_GetConfigImage_Params *pParams)

获取添加到分析器主机对象的指标的配置映像。

用户将传递已分配的缓冲区以存储配置映像。

参数

pParams – 指向 CUpti_Profiler_Host_GetConfigImage_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetConfigImageSize(CUpti_Profiler_Host_GetConfigImageSize_Params *pParams)

获取添加到分析器主机对象的指标的配置映像的大小。

用户需要分配缓冲区以存储配置映像。

参数

pParams – 指向 CUpti_Profiler_Host_GetConfigImageSize_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetMaxNumHardwareMetricsPerPass(CUpti_Profiler_Host_GetMaxNumHardwareMetricsPerPass_Params *pParams)

获取芯片单次pass中可以调度的最大硬件指标数(指标名称不包含 sass 关键字)。

虽然这代表了理论上限,但实际限制可能会阻止特定指标集达到此阈值。此外,最大可实现值取决于相关芯片的特性和架构。

使用 cuptiProfilerHostGetNumOfPasses API 获取收集配置映像中计划的指标的分析数据所需的实际pass数。

参数

pParams – 指向 CUpti_Profiler_Host_GetMaxNumHardwareMetricsPerPass_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetMetricProperties(CUpti_Profiler_Host_GetMetricProperties_Params *pParams)

获取指标的属性。

参数

pParams – 指向 CUpti_Profiler_Host_GetMetricProperties_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_INVALID_METRIC_NAME – 如果指标名称无效或芯片不支持

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetNumOfPasses(CUpti_Profiler_Host_GetNumOfPasses_Params *pParams)

获取配置映像中计划的指标进行分析所需的pass数。

参数

pParams – 指向 CUpti_Profiler_Host_GetNumOfPasses_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetRangeName(CUpti_Profiler_Host_GetRangeName_Params *pParams)

获取存储在计数器数据中的范围索引的范围名称。

在 Range profiler 中,对于 Auto range 模式,范围名称将是根据执行顺序分配给内核的数值。对于用户范围模式,范围名称将基于用户使用 Push range API 提供的范围名称。

参数

pParams – 指向 CUpti_Profiler_Host_GetRangeName_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetSubMetrics(CUpti_Profiler_Host_GetSubMetrics_Params *pParams)

获取指标支持的子指标列表。

参数

pParams – 指向 CUpti_Profiler_Host_GetSubMetrics_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_INVALID_METRIC_NAME – 如果指标名称无效或芯片不支持

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostGetSupportedChips(CUpti_Profiler_Host_GetSupportedChips_Params *pParams)

获取支持的芯片列表。

参数

pParams – 指向 CUpti_Profiler_Host_GetSupportedChips_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

CUptiResult cuptiProfilerHostInitialize(CUpti_Profiler_Host_Initialize_Params *pParams)

创建并初始化分析器主机对象 (CUpti_Profiler_Host_Object)。

参数

pParams – 指向 CUpti_Profiler_Host_Initialize_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_UNKNOWN – 对于任何内部错误

5.9.4. 类型定义

typedef struct CUpti_Profiler_Host_Object CUpti_Profiler_Host_Object