首页 >> 大全

Dhrystone基准测试程序在Google Pixel4上运行跑分教程

2023-09-18 大全 32 作者:考证青年

记录一下实验过程,方便后续回顾

一、简介

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

但其也有许多不足,不仅不适合于作为嵌入式系统的测试向量,甚至在其大多数场合下都不适合进行应用。还有许多漏洞,例如:易被非法利用、人为痕迹明显、代码长度太短、缺乏验证及标准的运行规则等。该程序是用C编写的,容易受到编译器影响,不同优化选项下,测试的性能并不一致。代码量小,在现代CPU中,它能够被放进指令缓存中,所以它并不能严格的测量取指性能。

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

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

二、源码

可以直接移植官方版本的,但是如果移植官方的会有比较多的错误。

比如:

网上有多个版本的,这里使用的是包含dry.h、dry1.c和dry2.c的源码。并且该版本修复了一些已知的错误。基于.2版本。

怎么测试手机跑分__arm上运行opencv程序

三、编译 1.修改文件

需要做的就是简单修改文件即可编译代码:设置交叉工具链、把一些没有要的代码注释掉,下面是我简单修改后的文件。

注意:CTOOL:=arm-linux-- 和 CCL:=/usr 要修改为自己的安装路径

安装32位gcc编译器 sudo apt-get gcc-arm-linux-

.PHONY: run clean
# Set compilation tool chain
CTOOL:=arm-linux-gnueabi-
CCL:=/usr
CC:=${CCL}/bin/${CTOOL}gcc
CFLAGS=-O3run: dry2 dry2nr dry2o
#	./dry2 ${1-50000} 2>/dev/null
#	./dry2nr ${1-50000} 2>/dev/null
#	./dry2o ${1-50000} 2>/dev/nulldry2: dry.h dry1.c dry2.c${CC} -c ${CFLAGS} dry1.c -o dry1.o -static${CC} ${CFLAGS} dry2.c dry1.o ${LFLAGS} -o dry2 -staticdry2nr: dry.h dry1.c dry2.c${CC} -c -DREG ${CFLAGS} dry1.c -o dry1.o -static${CC} -DREG ${CFLAGS} dry2.c dry1.o ${LFLAGS} -o dry2nr -staticdry2o: dry.h dry1.c dry2.c${CC} -c -O ${CFLAGS} dry1.c -o dry1.o -static${CC} -O ${CFLAGS} dry2.c dry1.o ${LFLAGS} -o dry2o -staticclean:rm -f dry1.o dry2 dry2nr dry2o

使用make进行编译,多线程make -j8,这里可以根据电脑实际配置修改,不加-j也很快。

ps:其他编译方式

cc编译
cc -c  dry.c -o dry1.o
cc -DPASS2  dry.c dry1.o  -o dry2gcc编译
gcc -c  dry.c -o dry1.o
gcc -DPASS2  dry.c dry1.o  -o dry2sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install gcc-aarch64-linux-gnuarm32位编译(使用32位编译)
arm-linux-gnueabi-gcc -c  dry.c -o dry1.o
arm-linux-gnueabi-gcc -DPASS2  dry.c dry1.o  -o dry2 -staticarm64位编译
aarch64-linux-gnu-gcc -c  dry.c -o dry1.o
aarch64-linux-gnu-gcc -DPASS2  dry.c dry1.o  -o dry2 -static

通过上一步编译得到三个可执行文件,分别是dry2、、dry2o

这三个文件的区别就是编译的时候使用了不同的参数。

dry2:普通的编译

:编译加了-DREG

dry2o:编译添加了-O,优化了代码

四、运行

要运行在手机上,需要通过adb将编译得到的可执行程序push到手机上。然后给其增加权限。

我这里把一整个文件夹都传过来了。

adb push D:\xxx\Dry /data/local/tmp
chmod 777 dry2 dry2nr dry2o

通过adb shell进入文件系统,找到可执行程序,直接运行即可。

flame:/data/local/tmp/Dry # ./dry2oDhrystone Benchmark, Version C, Version 2.2
Program compiled without 'register' attribute
Using times(), HZ=100Trying 50000 runs through Dhrystone:
Measured time too small to obtain meaningful resultsTrying 500000 runs through Dhrystone:
Measured time too small to obtain meaningful resultsTrying 5000000 runs through Dhrystone:
Measured time too small to obtain meaningful resultsTrying 50000000 runs through Dhrystone:
Final values of the variables used in the benchmark:Int_Glob:            5should be:   5
Bool_Glob:           1should be:   1
Ch_1_Glob:           Ashould be:   A
Ch_2_Glob:           Bshould be:   B
Arr_1_Glob[8]:       7should be:   7
Arr_2_Glob[8][7]:    50000010should be:   Number_Of_Runs + 10
Ptr_Glob->Ptr_Comp:          0x83e360should be:   (implementation-dependent)Discr:             0should be:   0Enum_Comp:         2should be:   2Int_Comp:          17should be:   17Str_Comp:          DHRYSTONE PROGRAM, SOME STRINGshould be:   DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob->Ptr_Comp:          0x83e360should be:   (implementation-dependent), same as aboveDiscr:             0should be:   0Enum_Comp:         1should be:   1Int_Comp:          18should be:   18Str_Comp:          DHRYSTONE PROGRAM, SOME STRINGshould be:   DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc:           5should be:   5
Int_2_Loc:           13should be:   13
Int_3_Loc:           7should be:   7
Enum_Loc:            1should be:   1
Str_1_Loc:           DHRYSTONE PROGRAM, 1'ST STRINGshould be:   DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc:           DHRYSTONE PROGRAM, 2'ND STRINGshould be:   DHRYSTONE PROGRAM, 2'ND STRINGMicroseconds for one run through Dhrystone:        0.0
Dhrystones per Second:                        24271844

最后的得分就是:/1757/xxMHz

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了