dhrystone和coremark测试比较

article/2025/9/21 23:14:43

关于dhrystone测试,请参考博客

Dhrystone DMIPS跑分原理以及CPU&NPU等效算力分析_papaofdoudou的博客-CSDN博客_dhrystone测试结果怎么看

比较

coremark环境搭建

caozilong@caozilong-Vostro-3268:~/Workspace/coremark$ git clone https://gitcode.net/mirrors/eembc/coremark.git 
正克隆到 'coremark'...
remote: Enumerating objects: 374, done.
remote: Counting objects: 100% (374/374), done.
remote: Compressing objects: 100% (190/190), done.
remote: Total 374 (delta 218), reused 295 (delta 175), pack-reused 0
接收对象中: 100% (374/374), 497.54 KiB | 517.00 KiB/s, 完成.
处理 delta 中: 100% (218/218), 完成.
caozilong@caozilong-Vostro-3268:~/Workspace/coremark$ cd coremark/
caozilong@caozilong-Vostro-3268:~/Workspace/coremark/coremark$ make
make XCFLAGS=" -DPERFORMANCE_RUN=1" load run1.log
make[1]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make port_prebuild
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_prebuild”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make link
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
cc -O2 -Ilinux -Iposix -I. -DFLAGS_STR=\""-O2 -DPERFORMANCE_RUN=1  -lrt"\" -DITERATIONS=0 -DPERFORMANCE_RUN=1 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c posix/core_portme.c -o ./coremark.exe -lrt
Link performed along with compile
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make port_postbuild
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_postbuild”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make port_preload
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_preload”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
echo Loading done ./coremark.exe
Loading done ./coremark.exe
make port_postload
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_postload”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make port_prerun
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_prerun”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
./coremark.exe  0x0 0x0 0x66 0 7 1 2000 > ./run1.log
make port_postrun
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_postrun”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make[1]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make XCFLAGS=" -DVALIDATION_RUN=1" load run2.log
make[1]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make port_preload
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_preload”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
echo Loading done ./coremark.exe
Loading done ./coremark.exe
make port_postload
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_postload”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make port_prerun
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_prerun”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
./coremark.exe  0x3415 0x3415 0x66 0 7 1 2000  > ./run2.log
make port_postrun
make[2]: 进入目录“/home/caozilong/Workspace/coremark/coremark”
make[2]: 对“port_postrun”无需做任何事。
make[2]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
make[1]: 离开目录“/home/caozilong/Workspace/coremark/coremark”
Check run1.log and run2.log for results.
See README.md for run and reporting rules.
caozilong@caozilong-Vostro-3268:~/Workspace/coremark/coremark$ 

编译生成了coremark.exe,可以单独执行

使用QEMU运行

qemu-x86_64   ./coremark.exe 

可以看到,使用模拟器后,分数降低了很多

caozilong@caozilong-Vostro-3268:~/Workspace/coremark/coremark$ qemu-x86_64 ./coremark.exe 
warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 15239
Total time (secs): 15.239000
Iterations/Sec   : 7218.321412
Iterations       : 110000
Compiler version : GCC7.5.0
Compiler flags   : -O2 -DPERFORMANCE_RUN=1  -lrt
Memory location  : Please put data memory location here(e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x33ff
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 7218.321412 / GCC7.5.0 -O2 -DPERFORMANCE_RUN=1  -lrt / Heap

gem5的测试结果

./build/X86/gem5.opt configs/example/se.py -c ~/Workspace/coremark/coremark/coremark.exe
caozilong@caozilong-Vostro-3268:~/Workspace/gem5$ ./build/X86/gem5.opt configs/example/se.py -c ~/Workspace/coremark/coremark/coremark.exe 
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.gem5 version 21.2.1.0
gem5 compiled Oct  1 2022 21:53:41
gem5 started Oct  1 2022 22:49:47
gem5 executing on caozilong-Vostro-3268, pid 10229
command line: ./build/X86/gem5.opt configs/example/se.py -c /home/caozilong/Workspace/coremark/coremark/coremark.exeGlobal frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file and pdf.
build/X86/mem/mem_interface.cc:793: warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
**** REAL SIMULATION ****
build/X86/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting simulation...
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/mem_state.cc:443: info: Increasing stack size by one page.
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...)
build/X86/sim/syscall_emul.cc:86: warn: ignoring syscall rt_sigaction(...)(further warnings will be suppressed)
build/X86/sim/syscall_emul.cc:86: warn: ignoring syscall rt_sigprocmask(...)(further warnings will be suppressed)
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 13768
Total time (secs): 13.768000
Iterations/Sec   : 2905.287623
Iterations       : 40000
Compiler version : GCC7.5.0
Compiler flags   : -O2 -DPERFORMANCE_RUN=1  -lrt
Memory location  : Please put data memory location here(e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x25b5
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 2905.287623 / GCC7.5.0 -O2 -DPERFORMANCE_RUN=1  -lrt / Heap
Exiting @ tick 17592221426500 because exiting with last active thread context

普通PC/服务器如何判断CPU性能

可以使用unixbench工具测试普通PC/服务器的CPU性能,这个工具会以打分的形式提供处理的单核和多核性能。安装方法 sudo apt install unixbench即可。


结束


http://chatgpt.dhexx.cn/article/K1tsj3lK.shtml

相关文章

Lichee_RV学习系列---移植dhrystone

Lichee_RV学习系列文章目录 Lichee_RV学习系列—认识Lichee_RV、环境搭建和编译第一个程序 文章目录 Lichee_RV学习系列文章目录一、dhrystone简介二、dhrystone源码下载三、dhrystone移植1、移植官方源码2、移植GitHub开源代码a:修改Makefile文件b:编译…

痞子衡嵌入式:微处理器CPU性能测试基准(Dhrystone)

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是微处理器CPU性能测试基准Dhrystone。 在嵌入式系统行业用于评价CPU性能指标的标准主要有三种:Dhrystone、MIPS、CoreMark,其中Dhrystone是一种古老的却历时30年而不衰的嵌入式系统处理器测试基准,至今仍为…

浅谈HashMap 的底层原理

本文整理自漫画:什么是HashMap? -小灰的文章 。已获得作者授权。 HashMap 是一个用于存储Key-Value 键值对的集合,每一个键值对也叫做Entry。这些个Entry 分散存储在一个数组当中,这个数组就是HashMap 的主干。 HashMap 数组每一个元素的初…

HashMap底层原理与面试题

文章目录 1 类图2 属性2.1 常见属性介绍2.2 底层数据结构2.3 重要常量2.4 链表和树的问题1 为什么不直接采用红黑树?2 为什么采用红黑树,而不是AVL平衡树? 3 构造器3.1 常用构造器 4 put方法4.1 put操作的整体思路4.2 树操作(略&a…

HashMap底层原理全解析

作为面试中的高频题目&#xff0c;我相信每一个java程序员都有必要搞懂HashMap的底层原理和实现细节&#xff0c;废话不多说直接开撸。 首先简单说一下HashMap的实现原理&#xff1a; 首先有一个Node<k,v>类型的数组&#xff0c;当添加一个键值对(key-value)时&#xf…

HashMap 底层原理///HashMap详解

HashMap超详细探讨 总述从集合出发探讨HashMapCollection接口继承树Map接口继承树 从Map接口来&#xff0c;一步一步深入其中Map接口概述Map接口&#xff1a;常用方法Map接口 Map实现类之一&#xff1a;HashMapHashMap的存储结构HashMap源码中的重要常量JDK 1.8之前JDK 1.8总结…

HashMap底层原理(图文并茂,简单易懂)

大家先看下这张图片&#xff1a; 1、HashMap是基于哈希表实现的&#xff0c;而哈希表的底层是数组加上链表的形式。 2、数组内存连续查询效率高&#xff0c;链表内存分散增删改效率高&#xff0c;哈希表采用此种存储数据的形式极大的提高操作数据的效率。 3、哈希表的默认长…

HashMap底层数据结构

HashMap集合&#xff1a; 底层是哈希表/散列表的数据结构 HashMap集合&#xff1a;1、HashMap集合底层是哈希表/散列表的数据结构。2、哈希表是一个怎样的数据结构呢&#xff1f;哈希表是一个数组和单向链表的结合体。数组&#xff1a;在查询方面效率很高&#xff0c;随机增删方…

HashMap底层数据结构(数组+链表+红黑树)

回顾一下HashMap的底层数据结构 HashMap底层实现JDK<1.7数组链表&#xff0c;JDK>1.8数组链表红黑树&#xff1b;HashMap这一个类型底层涉及到3中数据类型&#xff0c;数组、链表、红黑树&#xff0c;其中查询速度最快的是数组&#xff0c;时间复杂度是O(1),链表数据量少…

Java HashMap底层实现

HashMap 是 Java 使用频率最高的用于映射&#xff08;键值对&#xff09;处理的数据类型。JDK1.8 对 HashMap 底层的实现进行了优化&#xff0c;例如引入红黑树的数据结构和扩容的优化等。在JDK1.8以前HashMap是由数组链表的数据结构组成的。 Java为数据结构中的映射定义了一个…

java----hashmap底层原理

概述 在Java集合中&#xff0c;Map是一种特殊的集合&#xff0c;原因在于这种集合容器并不是保存单个元素&#xff0c;而是保存一个一个的Key-Vaue键值对.HashMap是基于哈希表的Map接口的实现,在项目开发中使用广泛,下面就对HashMap的源码进行解析. Hashmap的特点 1.HashMap…

HashMap底层数据结构详解

一、HashMap底层数据结构 JDK1.7及之前&#xff1a;数组链表JDK1.8&#xff1a;数组链表红黑树 关于HashMap基本的大家都知道&#xff0c;但是为什么数组的长度必须是2的指数次幂&#xff0c;为什么HashMap的加载因子要设置为0.75&#xff0c;为什么链表长度大于等于8时转成了…

复习一波HashMap底层实现原理解析

HashMap是JAVA中最常见的集合类框架&#xff0c;也是java语言中非常典型的数据结构&#xff0c;同时也是我们需要掌握的数据结构&#xff0c;更重要的也是面试题必问之一。 我们常见的有集合数据有三种结构&#xff1a;1、数组结构 2、链表结构 3、哈希表结构 下面我们来看看各…

HashMap的底层实现

1. HashMap概述&#xff1a; HashMap是基于哈希表的Map接口的非同步实现&#xff08;Hashtable跟HashMap很像&#xff0c;唯一的区别是Hashtalbe中的方法是线程安全的&#xff0c;也就是同步的&#xff09;。此实现提供所有可选的映射操作&#xff0c;并允许使用null值和null键…

HashMap底层特性全解析

文章目录 一、前言二、HashMap2.1 HashMap数据结构2.2 HashMap线程不安全2.3 哈希冲突 三、JDK1.7中HashMap的实现3.1 基本元素Entry3.2 插入逻辑3.2.1 插入逻辑3.2.2 新建节点添加到链表 3.3 数组扩容逻辑3.4 null处理3.5 辨析扩容、树化和哈希冲突 四、JDK1.8中HashMap的实现…

HashMap底层

1、HashMap底层数据结构 JDK1.7的底层是 数组链表&#xff1b; JDK1.8之后 数组 链表 红黑树&#xff1b; 数组特点&#xff1a;具有随机访问的特点&#xff0c;能达到O(1)的时间复杂度&#xff0c;数组查询快&#xff0c;增删比较麻烦&#xff1b; 链表特点&#xff1a;…

HashMap底层实现和原理(源码解析)

Note&#xff1a;文章的内容基于JDK1.7进行分析&#xff0c;1.8做的改动文章末尾进行讲解。 大家可以看一下:https://www.imooc.com/article/267756 一、先来熟悉一下我们常用的HashMap 1、概述 HashMap基于Map接口实现&#xff0c;元素以键值对的方式存储&#xff0c;并且…

HashMap 底层原理

前言 HashMap 源码和底层原理在现在面试中是必问的。因此&#xff0c;我们非常有必要搞清楚它的底层实现和思想&#xff0c;才能在面试中对答如流&#xff0c;跟面试官大战三百回合。文章较长&#xff0c;介绍了很多原理性的问题&#xff0c;希望对你有所帮助~ 正文 **说明&a…

HashMap底层原理剖析(面试收藏!!!)

HashMap HashMap底层原理剖析(超详细&#xff01;&#xff01;&#xff01;)一、散列表结构二、什么是哈希&#xff1f;三、HashMap原理讲解3.1继承体系图3.2Node数据结构分析3.3底层存储结构3.4put数据原理分析3.5什么是哈希碰撞&#xff1f;3.6JDK8为什么引入红黑树&#xff…

HashMap底层原理

文章目录 1.HashMap的概念2.底层数据结构2.JDK1.8之前存在的问题&#xff1f;3.问题&#xff1a;加载因子为什么默认值为0.75f &#xff1f;4.问题&#xff1a;如果得到key的hash值&#xff08;哈希码&#xff09;5.问题&#xff1a;如何得到插入元素在数组中的下标6.问题&…