NV::Rules::IFrontend
-
class IFrontend
前端接口。
前端负责通过用户界面、日志或输出文件将消息和结果传递给调用者。
公共类型
-
using Dict = std::map<std::string, double>
-
enum class MarkerKind
标记类型。
在源页面中使用 source_marker 创建的标记的类型。
SASS
标记将与 SASS 指令关联。SOURCE
标记将与源行关联。值
-
enumerator SASS
-
enumerator SOURCE
-
enumerator SASS
-
enum class MsgType
消息类型。
调用 message 时,发送到前端的消息所代表的类型。
MSG_NONE
此消息没有特定类型。MSG_OK
该消息是信息性的。MSG_OPTIMIZATION
该消息代表性能优化的建议。MSG_WARNING
该消息代表警告或可修复的问题。MSG_ERROR
该消息代表错误,可能是在执行规则时发生的错误。值
-
enumerator MSG_NONE
-
enumerator MSG_OK
-
enumerator MSG_OPTIMIZATION
-
enumerator MSG_WARNING
-
enumerator MSG_ERROR
-
enumerator MSG_NONE
-
using RuleId = std::string
-
enum class Severity
焦点指标严重性。
调用 focus_metric 时,焦点指标代表的严重性。规则系统客户端在处理焦点指标时可以使用严重性。
SEVERITY_DEFAULT
默认严重性。SEVERITY_LOW
低严重性。SEVERITY_HIGH
高严重性。值
-
enumerator SEVERITY_DEFAULT
-
enumerator SEVERITY_LOW
-
enumerator SEVERITY_HIGH
-
enumerator SEVERITY_DEFAULT
公共函数
-
virtual bool _generate_table(int message_id, const NV::Rules::TableData &table) = 0
将表格附加到规则结果消息。
建议使用高级 API #generate_table 而不是直接调用此函数。
将表格附加到 ID 为
message_id
的规则结果消息,以及table
中包含的表格数据和配置。
-
virtual bool focus_metric(int message_id, const char *metric_name, double metric_value, Severity severity, const char *info) = 0
规则焦点指标消息。
向前端发出焦点指标消息,例如,指示触发规则输出的关键指标。可以使用其
message_id
与之前的消息关联。severity
可用于指示此指标对结果的影响/严重性。info
字段可以设置为描述性字符串以获取更多信息,例如,导致此指标成为焦点的计算。返回是否可以为message_id
成功设置 focus_metric。
-
virtual void load_chart_from_file(const char *filename) = 0
从
filename
加载 ProfilerSection google protcol buffer 图表。
-
virtual int message(const char *str, const char *name = nullptr) = 0
规则结果消息。
向前端发出消息
str
,使用默认的 MsgType 和可选的名称name
。返回在此规则调用中唯一的 message ID。
-
virtual int message(MsgType type, const char *str, const char *name = nullptr) = 0
规则结果消息。
向前端发出具有特定消息
type
和可选名称name
的消息str
。返回在此规则调用中唯一的 message ID。
-
virtual Dict receive_dict_from_parent(const RuleId &parent_id) = 0
从父规则
parent_id
接收字典。接收使用
send_dict_to_children
发送的 dict[str,float] 类型的字典。如果parent_id
不代表此规则的预先指定的父规则,或者如果父规则尚未执行,则将返回空字典。
-
virtual void send_dict_to_children(const Dict &dict) = 0
将字典
dict
发送到所有子规则。将 dict[str,float] 类型的 Python 字典发送到所有指定此规则为父规则的规则。子规则可以使用
receive_dict_from_parent
检索消息。如果重复调用此函数,则字典会相应更新,从而添加新的键值对,并覆盖预先存在的键的值。
-
virtual void source_marker(const char *str, uint64_t address_or_line, MarkerKind kind, const char *file_name, MsgType type = MsgType::MSG_NONE) = 0
规则源标记。
在源位置
address_or_line
的适当kind
源中创建带有消息str
的源标记。此函数支持多文件程序,这意味着必须指定file_name
。type
表示与此标记关联的紧急程度,是可选的。
-
virtual void source_marker(const char *str, uint64_t address_or_line, MarkerKind kind, MsgType type = MsgType::MSG_NONE) = 0
规则源标记。
在源位置
address_or_line
的适当kind
源中创建带有消息str
的源标记。type
表示与此标记关联的紧急程度,是可选的。
-
virtual bool speedup(int message_id, SpeedupType type, double estimated_speedup) = 0
规则估计加速消息。
向前端发出与 ID 为
message_id
的消息关联的估计加速。当type
为SpeedupType::GLOBAL
时,它表示在遵循规则指南时,工作负载运行时可能实现的成比例减少。当type
为SpeedupType::LOCAL
时,它表示在性能问题的上下文中,硬件使用效率可能提高的幅度。返回是否可以为message_id
成功设置加速。
-
inline virtual ~IFrontend()
-
using Dict = std::map<std::string, double>