SPEC CPU2017的runcpu命令使用

2024-09-06 03:28

本文主要是介绍SPEC CPU2017的runcpu命令使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 基本语法

runcpu [options] [benchmark_list]

  • options: 可选参数,用于控制测试的运行方式、输出格式、配置文件等。
  • benchmark_list: 可以是单个基准测试名称或一组基准测试,如 500.perlbench_rall(表示运行所有基准测试)。例如,
    单独运行 500.perlbench_r
    runcpu 500.perlbench_r
    可以使用通配符或组名来一次运行多个基准测试。例如,运行所有C++基准:
    runcpu CXX
    可以运行所有基准:
    runcpu all

2. 常用选项

  • --config=<filename>:指定配置文件,例如 --config=myconfig.cfg。配置文件定义了编译器设置、优化级别、系统设置等参数,通常位于 config/ 目录下。
  • --tune=<base|peak|all>:选择基准测试的优化模式。优化模式可以是:1、base: 标准优化模式,严格遵守优化规则。2、peak: 更加激进的优化设置。3、all: 同时执行 basepeak 优化。
  • --size=<test|train|ref>:选择基准测试数据集的大小,test使用小型测试数据集(用于快速运行和验证),train使用中等规模的数据集(通常用于调试),ref使用完整的参考数据集(用于正式性能测量)。
  • --reportable:生成符合报告要求的测试结果。此选项用于生成正式的基准测试报告(不能与调试、测试等模式混用)。
  • --action=run:运行指定的基准测试。其他可能的操作包括:1、build:仅编译基准测试,而不执行。2、validate:仅验证基准测试结果是否符合规范。3、clean:清理测试生成的文件。4、setup:为指定的基准测试准备运行环境,但不执行测试。
  • --iterations=<n>:指定基准测试的重复运行次数(默认是 3 次)。增大迭代次数可以提高测试结果的精度。
  • --threads=<n>:为并行基准测试指定线程数(用于 SPECrate 测试)。如果未指定,测试将默认使用系统的核心数。
  • --copies=<n>:为并行基准测试指定并发执行的副本数(多副本模式下每个副本运行一个基准测试)。常用于多核系统的吞吐量测试。
  • --output=filename:指定输出文件名称。默认情况下,输出会保存在result(结果)目录中。
  • --rawformat=format:指定输出的格式。常用的格式包括:1、text:生成文本报告。2、html:生成 HTML 格式的报告。3、pdf:生成 PDF 格式的报告。
  • --loose:允许某些调优选项不符合标准规范。例如,可能允许在 base 调优模式下使用一些 peak 模式的选项。
  • --rebuild:强制重新编译所有基准测试。即使已有编译结果,也会重新编译。
  • --deletework:运行测试后删除临时工作目录。这有助于节省磁盘空间。
  • --setprocgroup:为每个副本/线程分配到单独的 CPU 处理组。这有助于多核处理器环境中优化资源使用。
  • --validonly:仅执行结果验证,而不重新运行基准测试。通常用于对现有结果进行合规性检查。
  • --noaltconfig:禁止使用配置文件中的 altconfig选项。
  • --verbose:启用详细输出,显示更多运行时信息。
  • --logfile=<filename>:将输出日志保存到指定文件中。
  • --feedback:在编译和运行之间使用反馈机制(如果配置文件支持)。
  • --debug:启用调试模式,输出额外的调试信息。这对排查错误或了解运行细节非常有用。

3. 结果查看与处理

特别注意,--reportable--output 是两个不同的参数,它们的作用和用途是不同的:

3.1 --reportable 参数

--reportable 参数用于生成符合 SPEC 基准测试提交标准 的结果报告。它的主要功能是确保测试结果符合SPEC的规范,可以正式提交给SPEC进行认证和审核。

  • 当使用 --reportable 运行基准测试时,系统会强制遵循一些规定,如使用参考数据集(ref)、标准的配置文件、没有超出允许范围的优化选项等。
  • --reportable 的目的是生成正式的、可报告的结果,这些结果可以被用来进行系统性能的对比和发布。
  • 不指定输出文件--reportable 本身不会指定输出文件的位置,它生成的报告会存放在默认的结果目录(通常是 result/ 目录)中。
3.2 --output 参数

--output 参数用于指定测试结果文件的 输出文件名 和路径。

  • 这个参数允许用户自定义保存测试结果的文件名和位置。例如,如果用户想将结果保存到特定的文件或特定的目录,可以使用 --output
  • --output 的结果可以是报告的多种格式(文本、HTML、PDF、CSV 等),具体格式取决于是否与其他参数一起使用,如 --rawformat
  • --output 参数不强制遵循 SPEC 的提交规则,它仅用于控制结果文件的保存和命名,而不改变测试的严格性或规范性。
3.3 区别与用途
  • --reportable 控制的是测试的 合规性 和生成报告的 严格性,用于确保结果可以提交给SPEC。
  • --output 控制的是测试结果的 文件存储位置和名称,用于灵活地管理输出文件。
    这两个参数可以 同时使用,当用户需要生成符合提交标准的报告并且想要自定义输出文件的路径时,可以如下组合,生成一份符合 SPEC 提交要求 的报告,并将其保存为 my_report.txt 文件。
    runcpu --reportable --config=myconfig.cfg --tune=base --size=ref --output=my_report.txt all
3.4 基准测试结果查看、导出和分析
3.4.1 导出结果

导出结果时,用户可以选择多种格式,例如PDF、CSV等,以便进行进一步的分析或分享。
(1) 导出为PDF格式文件
要将结果导出为PDF文件,可以使用 runcpu 命令结合 --rawformat 选项:
runcpu --reportable --rawformat=pdf --output=myresults.pdf
此命令生成的PDF文件将包含最近一次运行的基准测试结果报告。

(2) 导出为CSV格式文件
对于需要进一步数据分析的情况,可以将结果导出为CSV格式,以便导入到数据分析工具中:
runcpu --reportable --rawformat=csv --output=myresults.csv
CSV文件中的数据可以用Excel、Python或其他工具进行详细分析。

3.4.2 查看结果

SPEC CPU2017运行完基准测试后,自动生成的结果会存储在指定的目录中。查看这些结果有多种方式:
(1) 结果目录
测试结果通常存储在安装目录的 result/ 子目录中。每次测试运行都会生成一个新的结果文件夹,文件夹名称通常以时间戳和测试配置命名。例如:
/path/to/cpu2017/result/cpu2017.004.refspeed2024-09-05-12-30-45/

(2) 查看HTML或文本报告

  • HTML文件:可以在浏览器中查看,包含完整的测试结果和图表。打开路径中的 .html 文件即可:
    firefox /path/to/cpu2017/result/cpu2017.004.refspeed2024-09-05-12-30-45.html
  • 文本文件:用 cat 或其他文本编辑工具查看 .txt 文件中的结果:
    cat /path/to/cpu2017/result/cpu2017.004.refspeed2024-09-05-12-30-45.txt

(3) 使用 runcpu 查看结果
用户也可以通过命令行工具 runcpu 直接查看上一次运行的测试结果:
runcpu --reportable last
此命令会显示上一次基准测试运行的详细报告,包含性能分数和相关数据。

3.4.3 深入分析和自定义报告

用户可以根据需要定制输出格式,或生成更详细的报告:
(1) 自定义输出格式
SPEC CPU2017提供了自定义输出格式的选项。通过修改配置文件或使用命令行参数,用户可以定义特定的报告格式。详见SPEC CPU2017的官方文档或 runcpu --help

(2) 反馈机制
通过 --feedback 选项,用户可以在编译和运行之间使用反馈机制,以优化运行。例如:
runcpu --feedback all
该选项可以生成包含反馈优化的结果,用于更深入的性能调优分析。

3.4.4 比较不同测试的结果

比较多次运行的结果是分析性能趋势和验证系统一致性的重要步骤。用户可以手动比较结果目录中的数据,或者编写脚本自动化比较过程。
(1) 手动比较
查看每个测试的结果文件(如 .txt.html),对比不同运行的性能分数、时间和资源消耗。
(2) 自动比较
使用脚本或工具对比多个结果文件中的关键指标,如SPECspeed和SPECrate分数。这样可以方便地生成趋势图或汇总报告。

3.4.5 归档结果

为了长期保存和管理基准测试结果,建议将结果文件打包归档。可以使用以下命令将结果目录打包为压缩文件:
tar -czvf spec_results_backup.tar.gz /path/to/cpu2017/result/
这样会生成一个包含所有结果的压缩文件 spec_results_backup.tar.gz,便于日后参考或恢复。

4. 使用示例

以下是一些常见的使用示例:

示例 1:仅编译基准测试而不运行

runcpu --action=build all
此命令只编译所有基准测试,但不实际运行。

示例 2:运行所有基准测试并使用指定配置

runcpu --config=myconfig.cfg --tune=base --size=ref all
此命令运行使用myconfig.cfg 配置文件,运行所有基准测试,使用标准(base)优化模式和参考数据集(ref)。

示例 3:运行单个基准

runcpu --config=myconfig.cfg --tune=base 500.perlbench_r
此命令使用 myconfig.cfg 配置文件,在 base 模式下运行 500.perlbench_r 基准测试。

示例 4:运行单个基准测试并指定输出结果格式

runcpu --config=myconfig.cfg --tune=peak --size=ref --rawformat=csv --output=result.csv 500.perlbench_r
此命令运行 500.perlbench_r 基准测试,使用峰值(peak)优化,并导出结果为CSV格式。

示例 5:并行运行多个副本

runcpu --config=myconfig.cfg --tune=base --size=ref --copies=4 all
此命令使用 myconfig.cfg 配置文件,运行所有基准测试,使用 base 模式、参考数据集,并同时运行4个副本。

示例 6:多线程和多副本运行

runcpu --config=myconfig.cfg --tune=base --threads=8 --copies=4 all
此命令在 8 个线程和 4 个副本的情况下运行所有基准测试。

示例 7:生成报告

runcpu --reportable --config=myconfig.cfg --tune=base --size=ref all
此命令生成一个可报告的结果,符合 SPEC 提交要求。

示例 8:查看最近运行的结果

runcpu --reportable last
此命令查看最近一次测试运行的结果报告。

5. 总结

通过上述步骤,用户可以高效地查看、导出和分析SPEC CPU2017的基准测试结果,包括:

  • 深入分析:利用自定义输出格式和反馈机制,生成详细报告和优化结果。
  • 比较结果:手动或自动化比较多次运行的结果,分析性能趋势。
  • 归档结果:打包并保存结果文件,方便日后查阅和管理。
    从而深入了解系统性能并进行优化,具体来说,
  • runcpu 是SPEC CPU2017的核心工具,用于运行基准测试和生成报告。
  • 可以通过 --config--tune--size 等参数来控制测试的配置和数据集。
  • 可以通过调整 --threads--copies 等并发选项,可以优化并行基准测试的性能。
  • 可以通过 --reportable--output 等选项导出为不同的格式,具体地,--reportable 用于生成正式、可提交的报告,--output 用于指定测试结果文件的保存路径和文件名。用户可以同时使用这两个参数,确保报告符合提交标准的同时,灵活管理输出文件的命名和位置。
  • 可以使用 --rawformat 将结果设置导出为PDF、CSV等的具体格式,以便分析或分享。
  • 可以通过结果目录中的HTML或文本文件,或使用 runcpu --reportable 查看上次运行结果。

官方参考资料https://www.spec.org/cpu2017/Docs/runcpu.html

这篇关于SPEC CPU2017的runcpu命令使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140871

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti