NV::Rules::IAction
-
class IAction
Action 接口。
表示一个活动,例如在单个范围内执行的 CUDA 内核,为此收集了零个或多个指标
公共类型
公共函数
-
virtual IMetric *add_double_metric(const char *value_name, IMetric::ValueKind value_kind, double value) = 0
向此 action 添加单个浮点指标。
向此 action 添加一个名为
value_name
且类型为value_kind
的浮点指标- 返回
新的 IMetric
-
virtual IMetric *add_integer_metric(const char *value_name, IMetric::ValueKind value_kind, uint64_t value) = 0
向此 action 添加单个整数指标。
向此 action 添加一个名为
value_name
且类型为value_kind
的整数指标。- 返回
新的 IMetric
-
virtual IMutableMetric *add_metric(const char *value_name) = 0
向此 action 添加单个可变指标。
向此 action 添加一个名为
value_name
的单个可变指标。该指标未初始化任何类型或值,之后需要分配适当的值和/或实例。IMutableMetric 提供以下接口void set_double(IMetric::ValueKind value_kind, double value)
如果值已设置,则返回 true,否则返回 false。为指标分配 value_kind 类型的浮点值。可接受的类型为 FLOAT、DOUBLE 或 ANY(实现会内部选择类型)
bool set_double(size_t instance, IMetric::ValueKind value_kind, double value)
如果实例值已设置,则返回 true,否则返回 false。为指标分配 value_kind 类型的实例浮点值。可接受的类型为 FLOAT、DOUBLE 或 ANY(实现会内部选择类型)
void set_uint64(IMetric::ValueKind value_kind, uint64_t value)
如果值已设置,则返回 true,否则返回 false。为指标分配 value_kind 类型的整数值。可接受的类型为 UINT32、UINT64 或 ANY(实现会内部选择类型)
bool set_uint64(size_t instance, IMetric::ValueKind value_kind, uint64_t value)
如果实例值已设置,则返回 true,否则返回 false。为指标分配 value_kind 类型的实例整数值。可接受的类型为 UINT32、UINT64 或 ANY(实现会内部选择类型)
void set_string(IMetric::ValueKind value_kind, const char* value)
如果值已设置,则返回 true,否则返回 false。为指标分配 value_kind 类型的字符串值。可接受的类型为 STRING 或 ANY(实现会内部选择类型)
bool set_string(size_t instance, IMetric::ValueKind value_kind, const char* value)
如果实例值已设置,则返回 true,否则返回 false。为指标分配 value_kind 类型的实例字符串值。可接受的类型为 STRING 或 ANY(实现会内部选择类型)
IMutableMetric *mutable_correlation_ids()
返回一个新的可变指标对象,表示指标实例值的关联 ID。关联 ID 用于将实例值与它们的值所代表的“实例”相关联。在返回的新指标对象中,关联 ID 是该对象的实例值。
- 返回
新的 IMutableMetric
-
virtual IMetric *add_string_metric(const char *value_name, IMetric::ValueKind value_kind, const char *value) = 0
向此 action 添加单个字符串指标。
向此 action 添加一个名为
value_name
且类型为value_kind
的字符串指标- 返回
新的 IMetric
-
virtual IMetric *metric_by_name(const char *metric_name) = 0
通过名称获取单个指标。
通过
metric_name
获取单个 IMetric
-
virtual std::set<std::string> metric_names() = 0
获取指标名称的集合。
获取此 action 可用的指标集合
-
virtual INvtxState *nvtx_state() = 0
获取与此 action 关联的 NVTX 状态。
- 返回
如果此 action 有任何 NVTX 状态可用,则返回一个新的 INvtxState 对象。
-
virtual std::string ptx_by_pc(uint64_t address) = 0
获取此 action 中函数地址的 PTX。
获取此 action 中函数
address
的 PTX。该地址应为绝对地址,即从源相关指标的关联 ID 中获得。- 返回
PTX 字符串。如果此地址没有关联的 PTX,则返回空字符串
-
virtual std::string sass_by_pc(uint64_t address) = 0
获取此 action 中函数地址的反汇编 SASS。
获取此 action 中函数
address
的反汇编 SASS。该地址应为绝对地址,即从源相关指标的关联 ID 中获得。SASS 可能包含反汇编程序生成的格式化空格。- 返回
SASS 字符串。如果此地址没有关联的 SASS,则返回空字符串
-
virtual std::map<std::string, std::string> source_files() = 0
获取与 action 关联的源文件。
获取与此 action 关联的源文件及其内容的映射。如果某个文件的内容不可用(例如,因为它尚未导入到报告中),则文件名将映射到空字符串。
- 返回
从文件名到文件内容的映射
-
virtual ISourceInfo *source_info(uint64_t address) = 0
获取此 action 中函数地址的源信息。
获取此 action 中
address
的源信息。地址通常作为源相关指标的关联 ID 获得。- 返回
如果可用,则返回一个新的 ISourceInfo 对象
-
virtual WorkloadType workload_type() = 0
获取工作负载类型。
获取 action 代表的工作负载类型。
-
inline virtual ~IAction()
-
virtual IMetric *add_double_metric(const char *value_name, IMetric::ValueKind value_kind, double value) = 0