5.13. CUPTI SASS 指标 API

实现 CUPTI SASS 指标 API 的函数、类型和枚举。

数据结构

CUpti_SassMetricsDisable_Params

cuptiSassMetricsDisable 的参数。

CUpti_SassMetricsEnable_Params

cuptiSassMetricsEnable 的参数。

CUpti_SassMetricsFlushData_Params

cuptiSassMetricsFlushData 的参数。

CUpti_SassMetricsGetDataProperties_Params

cuptiSassMetricsGetDataProperties 的参数。

CUpti_SassMetricsSetConfig_Params

cuptiSassMetricsSetConfig 的参数。

CUpti_SassMetricsUnsetConfig_Params

cuptiSassMetricsUnsetConfig 的参数。

CUpti_SassMetrics_Config

CUpti_SassMetrics_Data

CUpti_SassMetrics_GetMetrics_Params

cuptiSassMetricsGetMetrics 的参数。

CUpti_SassMetrics_GetNumOfMetrics_Params

cuptiSassMetricsGetNumOfMetrics 的参数。

CUpti_SassMetrics_GetProperties_Params

cuptiSassMetricsGetProperties 的参数。

CUpti_SassMetrics_InstanceValue

CUpti_SassMetrics_MetricDetails

枚举

函数

CUptiResult cuptiSassMetricsDisable(CUpti_SassMetricsDisable_Params *pParams)

SASS 指标数据收集禁用 API 将标记范围的结束,在此 API 调用之后启动的任何内核将不会针对 SASS 指标进行分析。

CUptiResult cuptiSassMetricsEnable(CUpti_SassMetricsEnable_Params *pParams)

Sass 指标数据收集启用 API 将标记范围的开始,在此范围之间,内核将针对 SASS 指标进行分析。

CUptiResult cuptiSassMetricsFlushData(CUpti_SassMetricsFlushData_Params *pParams)

将 SASS 指标数据从 CUPTI 内部缓冲区刷新到用户缓冲区。

CUptiResult cuptiSassMetricsGetDataProperties(CUpti_SassMetricsGetDataProperties_Params *pParams)

SASS 指标数据属性 API 将提供关于指标值实例数量和已收集的 SASS 指令数据数量的数据。

CUptiResult cuptiSassMetricsGetMetrics(CUpti_SassMetrics_GetMetrics_Params *pParams)

获取芯片支持的所有 SASS 指标的列表。

CUptiResult cuptiSassMetricsGetNumOfMetrics(CUpti_SassMetrics_GetNumOfMetrics_Params *pParams)

获取芯片支持的 SASS 指标的数量。

CUptiResult cuptiSassMetricsGetProperties(CUpti_SassMetrics_GetProperties_Params *pParams)

获取查询指标的指标属性。

CUptiResult cuptiSassMetricsSetConfig(CUpti_SassMetricsSetConfig_Params *pParams)

为设备设置 SASS 指标数据收集的配置。

CUptiResult cuptiSassMetricsUnsetConfig(CUpti_SassMetricsUnsetConfig_Params *pParams)

取消配置 API 将重置设备的 SASS 指标数据收集配置。

5.13.1.

CUpti_SassMetricsDisable_Params_STRUCT_SIZE
CUpti_SassMetricsEnable_Params_STRUCT_SIZE
CUpti_SassMetricsFlushData_Params_STRUCT_SIZE
CUpti_SassMetricsGetDataProperties_Params_STRUCT_SIZE
CUpti_SassMetricsSetConfig_Params_STRUCT_SIZE
CUpti_SassMetricsUnsetConfig_Params_STRUCT_SIZE
CUpti_SassMetrics_GetMetrics_Params_STRUCT_SIZE
CUpti_SassMetrics_GetNumOfMetrics_Params_STRUCT_SIZE
CUpti_SassMetrics_GetProperties_Params_STRUCT_SIZE
CUpti_SassMetrics_InstanceValue_STRUCT_SIZE

5.13.2. 枚举

enum CUpti_SassMetrics_OutputGranularity

enumerator CUPTI_SASS_METRICS_OUTPUT_GRANULARITY_GPU

SASS 指标数据将在 GPU 级别收集。在 CUpti_SassMetricsGetDataProperties_Params 结构中,numOfInstances 将等于 1。

enumerator CUPTI_SASS_METRICS_OUTPUT_GRANULARITY_SM

SASS 指标数据将在 SM 级别收集。在 CUpti_SassMetricsGetDataProperties_Params 结构中,numOfInstances 将等于 GPU 中 SM 的数量。

enumerator CUPTI_SASS_METRICS_OUTPUT_GRANULARITY_SMSP

SASS 指标数据将在 SM 子分区级别收集。在 CUpti_SassMetricsGetDataProperties_Params 结构中,numOfInstances 将等于 GPU 中 SM 子分区的数量。

enumerator CUPTI_SASS_METRICS_OUTPUT_GRANULARITY_INVALID

5.13.3. 函数

CUptiResult cuptiSassMetricsDisable(CUpti_SassMetricsDisable_Params *pParams)

SASS 指标数据收集禁用 API 将标记范围的结束,在此 API 调用之后启动的任何内核将不会针对 SASS 指标进行分析。

参数

pParams – 指向 CUpti_SassMetricsDisable_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标数据收集

  • CUPTI_ERROR_INVALID_CONTEXT – 如果在此 API 调用之前未创建任何 cuda 上下文

  • CUPTI_ERROR_INVALID_OPERATION – 如果对于 cuda 上下文多次调用此 API 而未调用 cuptiSassMetricsEnable() API 或在调用 cuptiSassMetricsSetConfig() API 调用之前调用。

CUptiResult cuptiSassMetricsEnable(CUpti_SassMetricsEnable_Params *pParams)

Sass 指标数据收集启用 API 将标记范围的开始,在此范围之间,内核将针对 SASS 指标进行分析。

参数

pParams – 指向 CUpti_SassMetricsEnable_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标数据收集

  • CUPTI_ERROR_INVALID_CONTEXT – 如果在此 API 调用之前未创建任何 cuda 上下文

  • CUPTI_ERROR_INVALID_OPERATION – 如果对于 cuda 上下文多次调用此 API 而未调用 cuptiSassMetricsDisable() API 或在调用 cuptiSassMetricsSetConfig() API 调用之前调用。

CUptiResult cuptiSassMetricsFlushData(CUpti_SassMetricsFlushData_Params *pParams)

将 SASS 指标数据从 CUPTI 内部缓冲区刷新到用户缓冲区。

用户需要为检索数据分配缓冲区。可以使用 API cuptiSassMetricsGetDataProperties() 查询收集的记录数。

参数

pParams – 指向 CUpti_SassMetricsFlushData_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标数据收集。

  • CUPTI_ERROR_INVALID_OPERATION – 如果在启用/禁用范围之外调用此 API。

CUptiResult cuptiSassMetricsGetDataProperties(CUpti_SassMetricsGetDataProperties_Params *pParams)

SASS 指标数据属性 API 将提供关于指标值实例数量和已收集的 SASS 指令数据数量的数据。

指标的实例数量将根据用户使用 CUpti_SassMetrics_OutputGranularity 值设置的输出粒度级别而变化。用户需要分配内存以使用 cuptiSassMetricsFlushData() API 检索 SASS 数据。

参数

pParams – 指向 CUpti_SassMetricsGetDataProperties_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标数据收集

  • CUPTI_ERROR_INVALID_OPERATION – 如果在启用/禁用范围之外调用此 API。

CUptiResult cuptiSassMetricsGetMetrics(CUpti_SassMetrics_GetMetrics_Params *pParams)

获取芯片支持的所有 SASS 指标的列表。

参数

pParams – 指向 CUpti_SassMetrics_GetMetrics_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标收集

CUptiResult cuptiSassMetricsGetNumOfMetrics(CUpti_SassMetrics_GetNumOfMetrics_Params *pParams)

获取芯片支持的 SASS 指标的数量。

参数

pParams – 指向 CUpti_SassMetrics_GetNumOfMetrics_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标收集

CUptiResult cuptiSassMetricsGetProperties(CUpti_SassMetrics_GetProperties_Params *pParams)

获取查询指标的指标属性。

对于给定的指标,结果将放入 CUpti_SassMetrics_MetricDetails 中,其中存储指标 ID、指标的描述。

参数

pParams – 指向 CUpti_SassMetrics_GetProperties_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标数据收集

CUptiResult cuptiSassMetricsSetConfig(CUpti_SassMetricsSetConfig_Params *pParams)

为设备设置 SASS 指标数据收集的配置。

用户需要在调用任何 SASS 指标数据收集 API 之前调用此 API。每次设置配置 API 调用之后,在再次为同一设备调用 cuptiSassMetricsSetConfig() API 之前,都需要调用 cuptiSassPatchingUnSetConfig API。

参数

pParams – 指向 CUpti_SassMetricsSetConfig_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_INVALID_CONTEXT – 如果在此 API 调用之前未创建任何 cuda 上下文

  • CUPTI_ERROR_INVALID_OPERATION – 如果在未调用取消配置 API 的情况下为设备多次调用此 API

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标数据收集

CUptiResult cuptiSassMetricsUnsetConfig(CUpti_SassMetricsUnsetConfig_Params *pParams)

取消配置 API 将重置设备的 SASS 指标数据收集配置。

一旦调用此 API,CUPTI 将取消分配所有已分配的内存,并删除 SASS 指标数据收集的所有配置。用户只能为先前已为设备调用 cuptiSassMetricsSetConfig() API 的设备调用此 API。

参数

pParams – 指向 CUpti_SassMetricsSetConfig_Params 的指针

返回值
  • CUPTI_SUCCESS

  • CUPTI_ERROR_INVALID_PARAMETER – 如果任何 pParams 无效

  • CUPTI_ERROR_INVALID_CONTEXT – 如果在此 API 调用之前未创建任何 cuda 上下文

  • CUPTI_ERROR_INVALID_OPERATION – 如果在未调用设置配置 API 的情况下为设备多次调用此 API

  • CUPTI_ERROR_NOT_SUPPORTED – 表示系统/设备不支持 SASS 指标数据收集