首页 > 其他分享 >CPU性能测试基准(Dhrystone)学习

CPU性能测试基准(Dhrystone)学习

时间:2024-10-08 11:11:46浏览次数:1  
标签:dhry 基准 Dhrystone 每秒 MIPS DMIPS CPU

简介

Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量。程序是用C语言编写的,因此C编译器的编译效率对测试结果也有很大影响。

Dhrystone是由Reinhold P. Weicker在1984年提出来的一个基准测试程序,其主要目的是测试处理器的整数运算和逻辑运算的性能。Dhrystone首先用Ada语言发布,后来Rick Richardson为Unix开发了用C语言编写的Version 1.1,这个版本也成功的推动了Dhrystone的广泛应用。

Dhrystone标准的测试方法很简单,就是单位时间内跑了多少次Dhrystone程序,其指标单位为DMIPS/MHz。MIPS是Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。DMIPS中的D是Dhrystone的缩写,它表示了在Dhrystone标准的测试方法下的MIPS。

关于DMIPS有一个不得不注意的点,因为历史原因我们把在VAX-11/780机器上的测试结果1757 Dhrystones/s定义为1 DMIPS,因此在其他平台测试到的每秒Dhrystones数应除以1757,才是真正的DMIPS数值,故DMIPS其实表示的是一个相对值。

源码获取

核心程序下载 http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz

核心程序包下载后,在\classic_benchmarks\source_code\dhrystone2\下可找到源代码。详细文件目录如下:

\classic_benchmarks\source_code\dhrystone2
                                          \dhry.h          --关于兼容性的原型定义
                                          \dhry_1.c        --主程序入口
                                          \dhry_2.c        --算法子程序

如果是移植到ARM Cortex-M平台下裸系统运行,一般只需要简单修改dhry.h和dhry_1.c文件即可,Dhrystone本身并没有太多移植工作,其源码本是用作在PC上运行的,而在嵌入式系统里运行仅需要把一些文件I/O的相关代码删除即可,此外就是计时函数和打印函数的重实现。

  • MIPS: million instruction per second,表示每秒多少百万条指令,如 10MIPS ,表示每秒一千万条指令。

  • MIPS/MHz : 表示 CPU 在每 1MHz 的运行速度下可以执行多少个MIPS ,如 10MIPS/MHz,表示如果 CPU 运行在 1MHz 的频率下,每秒可执行一千万条指令,如果 CPU 运行在 5MHz 的频率下,每秒可执行五千万条指令。

  • DMIPS: Dhrystone MIPS,并非字面上每秒百万条指令的意思。它是一个测量CPU运行一个叫Dhrystone(整数运算)的测试程序时表现出来的相对性能高低的一个单位(很多场合人们也习惯用MIPS作为这个性能指标的单位)。

缺陷

  • 它的代码与具有代表性的实际程序代码并不相同。

  • Dhrystone代码量过小,在现代CPU中,它能够被放进指令缓存中,所以它并不能严格的测量取指性能。

  • 它易受编译器影响。

举例来说,在Dhrystone中有大量的字符串复制语句,用来测量字符串复制的性能。然而Dhrystone中字符串的长度不变,并且均开始于自然对齐的边界,这两点便与真实的程序不同。因此一个优化性能好的编译器能够在去掉循环的情形下通过一连串字的移动替代对字符串的复制,这将会块很多,可能会高达30%。所以我们在编译测试程序的时候,如果指定编译器的优化等级的话,我们会发现在不同的优化登记下,表现出来的性能指标会有差别,优化等级越高,性能指标越好

标签:dhry,基准,Dhrystone,每秒,MIPS,DMIPS,CPU
From: https://www.cnblogs.com/linhaostudy/p/18451309

相关文章

  • SQL 查看CPU消耗最多的10个语句
    --详细版,查看CPU消耗最多的10个语句SELECTTOP10[cpu_time],[session_id],[request_id],[start_time]AS'开始时间',[status]AS'状态',[command]AS'命令',dest.[text]AS'sql语句',DB_NAME([database_id])AS'数据库名',[blocking......
  • Intel core 2 QX6600 CPU
    目录简介参数1.基本规格2.热设计功耗(TDP)3.内存支持4.架构与特性5.其他信息参考链接简介Intelcore2QX6600CPU中文名QX是一款IntelExtreme版处理器,具有解锁的倍频,并且在发布时是最快的。双核和四核的非X型号实际上在工作站系列中没有任何作用,除了以更高的速度运......
  • TCPUDP 共用端口问题
    TCP/UDP共用端口问题。转载自:TCP/UDP占用端口问题总结-mengban-博客园(cnblogs.com)1.TCPUDP可以共同占用一个端口号吗?首先明确一点端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序(即进程)通过系统调用与某端口建立连接(binding)后,传输层传给该端口......
  • Meta:LLM语言概念推理基准Linguini
    ......
  • 记一次mysql导致服务器CPU突然暴涨的问题
    9月30号20点,感觉网站后台怎么越来越慢,打开阿里云看了服务器CPU竟然在几天内,一直是99%~100%,今天一天就觉得网站访问慢,还想着优化读取数据,原来CPU早就干爆了。想想有人攻击的话也不至于一直这样,putty上top一下,果然是mysql占满了CPU,大致查找策略如下 1、通过ps命令查找mysql进程......
  • 实时语音交互中文基准首期测评出炉;美取消 SB-1047 法案,大模型厂商大难不死丨 RTE 开发
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • CPU中跟踪后继指令地址的寄存器
    错题考的是计算机系统中CPU中跟踪后继指令地址的寄存器的知识点。正确答案是C.程序计数器(ProgramCounter,PC)。程序计数器(PC)程序计数器是CPU内部的一个小型寄存器,它的作用是存储下一条要执行的指令的地址。在计算机执行程序时,程序计数器起到了非常重要的作用:指令定位:程序计数器......
  • 基于OpenCV的实时年龄与性别识别(支持CPU和GPU)
    关于深度实战社区我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万+粉丝,拥有2篇国家级人工智能发明专利。社区特色:深度实战算法创新获取全部完整项目......
  • 【易错】单周期CPU和多周期CPU区别?
    笔者在做题时发现单周期CPU和多周期CPU是非常容易弄错但又极易使人忽视的一个知识点,故在此记录一下,以供以后复习。单周期CPU和多周期CPU是计算机组成原理中的两种不同的处理器设计方式,它们在指令执行时间和硬件资源利用上有着明显的区别:单周期处理器王道书上所给定义为:笔......
  • 聊聊性能基准测试和容量评估规划
    星球有同学问了一个关于性能测试的问题,我觉得蛮有意思的,遂分享给大家,顺带聊聊我的分析思路和实践经验。问题背景是这样:一个1.0版本的新系统还未上线,需要对其进行性能测试(性能基准),该如何开展工作?其中流量模型如何评估?涉及到缓存的场景如何压测?压测场景的流量配比该如何配置?线上......