Benchmark系列——常用的CPU Benchmark介绍(1)

        本文主要介绍一些常用的CPU benchmark,分上下两篇,本篇主要介绍一些单点benchmark,下一篇将介绍一些系统级的benchmark

a. Dhrystone2.1

下载地址:GitHub - wuhanstudio/dhrystone: "DHRYSTONE" Benchmark Program by Reinhold P. Weicker

测试目标:测试处理器单核整形运算性能,用于评估编译器和CPU处理整数和控制指令的能力;主要测试内核流水线的执行效率

测试原理:通过测试整数指令和控制功能,如赋值、动态数据读写、控制语句、过程调用和参数 传送、整数和逻辑运算等操作,来评判CPU的性能。其中其整数类型的操作数占到 73.2%,字符18.6%,指针5%

分值计算:单位是DMIPS,以VAX100(规定为为1DMIPS的处理器)为基准,其他处理器相对它 (基线1757)的比值

DMIPS = Number_of_runs * CPU频率(MHz)/ (total_cycle_num*1757)

性能分析:CPU整形计算能力,编译器和优化选型,C库都会对性能产生影响

b. Whetstone1.1

下载地址:netlib.org/benchmark/whetstonec

测试目标:测试CPU处理浮点和控制指令的能力

测试原理:选择一些典型指令综合起来形成的测试程序。定义的数据类型包括整型、长整型和双 精度浮点型;整型变量用来控制循环,双精度变量用来执行具体浮点操作;主要是简 单四则运算、数组运算、数组赋值、三角函数运算等浮点操作

性能分析:CPU硬浮点单元、主频、编译器和优化选项均可对性能产生影响

c. CoreMark v1.0

下载地址:GitHub - eembc/coremark: CoreMark® is an industry-standard benchmark that measures the performance of central processing units (CPU) and embedded microcrontrollers (MCU).

测试目标:测试处理器单核/多核整型运算性能,用于评估处理器流水线微架构、基本读写操作、整数运算和控制指令执行的性能, 替代Dhryston

测试原理:包含读写操作、整数操作和控制指令,代码量不超过16KB。用于测试处理器流 水线效率、cache访问和整点运算性。针对最普通的操作构造包括矩阵操作(用 来评估数学运算)、链表操作(用于评估指针操作)、状态机(评估跳转)和 CRC计算(嵌入式中的常用算法)等;相比Dhrystone不会受到编译器和library性 能的较大影响

性能分析:CPU整型计算能力、编译器和优化选

d. LMbench-3.0-a9

下载地址:LMbench - Tools for Performance Analysis

测试目标:处理器单核/多核Cache/DDR带宽时延性能,Linux OS基本操作性能

测试原理:主要包括是三种类型benchmarks:

Bandwidth benchmarks:包括Cached file read/Memory copy/Memory read/Memory write/Pipe/TCP;

Latency benchmarks:包括Context switching/Networking: connection establishment, pipe, TCP, UDP, and RPC hot potato/File system creates and deletes/Process creation/Signal handling/System call overhead/Memory read latency

Miscellanious:测试主频的mhz

性能分析:受CPU本身硬件设计规格影响;OS基本操作性能受内核版本以及配置的影响;编译选项尽量不要优化,优 化等级使用默认的-O即可

e. Stream5.9

下载地址:https://www.cs.virginia.edu/stream/FTP/Code/

测试目标:适用于处理器单核/多核内存带宽性能评测,支持多节点集群系统,评估内存子系统(Memory)带宽性能和基本的vector操作性能

测试原理:Stream基本的思路:建立数据块,用四种不同的操作方式(COPY、SCALE、ADD、 TRIAD)搬移数据块,计算消耗的时间从而得到内存系统的带宽。

COPY:将a数组赋值给b数组,即b[j]=a[j]

SCALE:将a数组乘以常数后赋值给b数组,即b[j]=k*a[j]

ADD:将a数组与b数组相加后赋值给c数组,即c[j]=a[j]+b[j]

TRIAD:将a数组乘以常数,再加上b数组然后赋值给c数组,即c[j]=b[j]+k*a[j] 目前,已经支持OMP机制实现多核性能测试,HPC领域常选用

性能分析:受CPU本身硬件设计规格影响,特别是内存的通道数、内存速率的影响; 尽量采用更多编译优化选项等手段。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bluetangos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值