这是 PAPI_derived_event_files 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
PAPI_derived_event_files - 描述派生事件定义文件语法。
派生 活动
PAPI 提供了定义事件的能力,这些事件的值将从多个
本土事件。 要在派生事件中使用的本机事件列表和一个公式
描述如何使用它们在事件定义文件中提供。 PAPI 团队提供
一个事件定义文件,它描述了所有支持的 PAPI 预设事件。 PAPI
还允许用户提供描述一组用户的事件定义文件
定义的事件可以扩展 PAPI 通常支持的事件。
此页面记录了可以出现在事件定义中的命令的语法
文件中。
常见问题 规则:
· 空行被忽略。
· 以“#”开头的行是注释(它们也被忽略)。
· 下面< > 中显示的名称表示必须由用户提供的值。
· 如果用户提供的值包含空格,则必须用引号保护它。
命令:
中央处理器,
指定 PMU 名称,该名称控制是否遵循此 PRESET 和 EVENT 命令
应处理行。 无需 PRESET 或 EVENT 即可输入多个 CPU 命令
它们之间的命令以提供 PMU 名称的列表,派生事件到这些 PMU 名称
遵循将适用。 当列表中提供的 PMU 名称与已知的 PMU 名称匹配时
正在运行的系统,随后的事件将被创建。 如果没有 PMU 名称
列表中提供的匹配正在运行的系统上的 PMU 名称,随后的事件
将被忽略。 当新的 CPU 命令跟在 PRESET 或 EVENT 命令之后时,
PMU 列表被重建。
预设, , , ,LDESC," ",SDESC," “,笔记,” ”
声明一个 PAPI 预设派生事件。
事件, , , ,LDESC," ",SDESC," “,笔记,” ”
声明一个用户定义的派生事件。
地点:
pmu名称:
以下事件应适用的 PMU。 支持的 PMU 名称列表
您的系统可以通过在您的系统上运行 papi_component_avail 来获得。
事件名称:
指定用于标识此派生事件的名称。 这个名字应该是唯一的
在您系统上的事件中。
派生类型:
指定被定义的派生事件的种类(参见下面的“派生类型”)。
事件属性:
指定用于计算导出的公式和基本事件列表
事件值。 此字段的语法取决于上面指定的“衍生类型”
(参见下面的“派生类型”)。
长描述:
提供事件的详细描述。
简短描述:
提供事件的简短描述。
注意事项:
提供事件注释。
基本事件 (用过的 下面):
标识此派生事件所基于的事件。 这可能是本地事件
(可能带有事件掩码)、已知的预设事件或已知的用户
事件。
笔记:
PRESET 命令传统上用于 PAPI 提供的预设定义
文件。 EVENT 命令旨在用于用户定义的事件定义文件。 这
代码将它们视为相同的,因此它们可以互换,并且它们都可以用于
事件定义文件。
派生 类型:
这描述了 PRESET 和 EVENT 命令的“衍生类型”字段中允许的值。
它还显示了这些支持的每个派生类型的“eventAttr”字段的语法
命令。 所有派生事件提供一个或多个事件的列表,派生事件
事件基于 (baseEvent)。 一些派生事件提供了一个公式,指定如何
使用列表中的 baseEvents 计算派生事件值。 下面推导出来
支持类型,每个派生事件类型的“eventAttr”参数的语法
显示在括号中。
NOT_DERIVED ( ):
此派生类型为现有事件“baseEvent”定义别名。
派生_添加 ( , ):
这个派生类型定义了一个新事件,它将是两个其他事件的总和。 它有
“baseEvent1”加上“baseEvent2”的值。
派生_PS (PAPI_TOT_CYC, ):
这个派生类型定义了一个新事件,它将报告“baseEvent1”的数量
每秒发生的事件。 它的值为 ((('baseEvent1' * cpu_max_mhz) *
1000000 ) / PAPI_TOT_CYC)。 用户必须提供 PAPI_TOT_CYC 作为第一个事件
事件列表中的两个事件才能正常工作。
DERIVED_ADD_PS (PAPI_TOT_CYC, , ):
这个派生类型定义了一个新事件,它将把两个事件计数器和
然后报告每秒发生的次数。 它的值为 (((('baseEvent1' +
baseEvent2) * cpu_max_mhz) * 1000000 ) / PAPI_TOT_CYC)。 用户必须提供
PAPI_TOT_CYC 作为事件列表中三个事件的第一个事件以使其工作
正确。
派生_CMPD ( ,
这种派生类型的工作方式与 NOT_DERIVED 类型非常相似。 它很少使用,看起来
就像代码只返回从内核返回的单个值一样。 没有
为计算此事件值而完成的计算。 不知道为什么似乎有多个输入事件
需要使用此事件类型。
派生_SUB ( , ):
这个派生类型定义了一个新事件,它将是其他两个之间的差异
事件。 它的值为“baseEvent1”减去“baseEvent2”。
DERIVED_POSTFIX ( , , , ... , ):
这个派生类型定义了一个新事件,它的值是从几个本机
事件使用后缀(反向波兰符号)公式。 它的值是结果
处理后缀公式。 'pfFormula' 的形式为 'N0|N1|N2|5|*|+|-|'
其中“|” 充当标记分隔符,标记 N0、N1 和 N2 位于
分别代表 baseEvent0、baseEvent1 和 baseEvent2 的持有者。
派生_INFIX ( , , , ... , ):
这个派生类型定义了一个新事件,它的值是从几个本机
事件使用中缀(代数符号)公式。 它的值是结果
处理中缀公式。 “ifFormula”的形式为“N0-(N1+(N2*5))”,其中
标记 N0、N1 和 N2 是代表 baseEvent0、baseEvent1 和
baseEvent2 分别。
示例:
在以下示例中,事件 PAPI_SP_OPS、USER_SP_OPS 和 ALIAS_SP_OPS 都将
测量相同的事件并返回相同的值。 他们只是展示了不同的方式
使用 PRESET 和 EVENT 事件定义命令。
· # 以下几行定义共享以下事件的 pmu 名称
· 中央处理器 nhm
· CPU nhm-ex
· # 应为上述任一 pmu 类型定义的事件
· 预设、PAPI_TOT_CYC、NOT_DERIVED、UNHALTED_CORE_CYCLES
· 预设、PAPI_REF_CYC、NOT_DERIVED、UNHALTED_REFERENCE_CYCLES
· PRESET,PAPI_SP_OPS,DERIVED_POSTFIX,N0|N1|3|*|+|,FP_COMP_OPS_EXE:SSE_SINGLE_PRECISION,FP_COMP_OPS_EXE:SSE_FP_PACKED,NOTE,'使用
后缀公式'
· EVENT,USER_SP_OPS,DERIVED_INFIX,N0+(N1*3),FP_COMP_OPS_EXE:SSE_SINGLE_PRECISION,FP_COMP_OPS_EXE:SSE_FP_PACKED,NOTE,'使用
中缀格式的相同公式'
· EVENT,ALIAS_SP_OPS,NOT_DERIVED,PAPI_SP_OPS,LDESC,'预设事件别名PAPI_SP_OPS'
· # 上面 pmu 名称的事件定义结束和新 pmu 部分的开始
名称。
· 中央处理器
使用 onworks.net 服务在线使用 PAPI_derived_event_files