原创 国产开发板各项性能测试--米尔MYD-YT507H开发板

2022-9-14 15:33 2577 12 12 分类: MCU/ 嵌入式

本篇测评由电子工程世界的优秀测评者“qinyunti”提供。

此次的板卡测试,是米尔MYD-YT507H开发板的各项性能测试。

CoreMark跑分

CoreMark是用在嵌入式系统中用来测量CPU性能的基准程序。该标准于2009年由EEMBC(Embedded Microprocessor Benchmark Consortium 嵌入式微处理器基准协会)组织的Shay Gal-On提出,并且试图将其发展成为工业标准,从而代替陈旧的Dhrystone标准。CoreMark较Dhrystone避免了编译器不同带来的不同。

准备代码

在WSL中打开终端

git clone https://github.com/eembc/coremark.git

cd coremark/

vi simple/core_portme.h

修改

#define COMPILER_FLAGS \

FLAGS_STR /* "Please put compiler flags here (e.g. -o3)" */

#endif

#define COMPILER_FLAGS \

"-O3" /* "Please put compiler flags here (e.g. -o3)" */

#endif

如果-O0编译则改为”-O0”

typedef ee_u32 ee_ptr_int;

改为

typedef unsigned long ee_ptr_int;

编译

export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin

编译

aarch64-linux-gnu-gcc -o coremarko3 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c simple/core_portme.c -DPERFORMANCE_RUN=1 -DITERATIONS=100000 -Isimple -I. -O3

-O0编译则改为

aarch64-linux-gnu-gcc -o coremarko0 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c simple/core_portme.c -DPERFORMANCE_RUN=1 -DITERATIONS=100000 -Isimple -I. -O0

运行

复制程序到windows下

cp coremarko3 /mnt/e

cp coremarko0 /mnt/e

在windows下导入程序到开发板

chmod +x coremarko3

chmod +x coremarko0

./coremarko0

./coremarko3

运行结果如下

-O0 803.034513

-O3 4093.788532

可以看到优化等级的影响巨大。

结果对比

可以从如下地址查看对应处理器的得分。

https://www.eembc.org/coremark/scores.php

和imx8M配置差不多都是1.5G,4核CORTEX-A53.

Imx8M得分是19678.58

我们这里是4093.788532x4=16375.154128 差不太多。

由于跑了操作系统和图形界面,实际上跑裸机的分会更高。

参考

https://www.eembc.org/coremark/

存储性能测试

对于越来越高端的嵌入式芯片,尤其用于汽车人机,AI,边缘计算等场景的高性能CPU,其综合性能是一个关注点,我们之前已经进行过CPU的coremark测试,其性能和国际主流芯片大厂类似芯片是差不多的,板子的性能不仅仅和CPU相关,综合来看的画存储部分也是一个很重要的部分,所以我们针对存储部分进行性能测试。

RAM性能测试

WSL中

git clone https://github.com/qinyunti/STREAM.git

cd STREAM/

export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin

aarch64-linux-gnu-gcc -O3 stream.c -o stream

cp stream /mnt/e 导出到WINDOWS下,下载到开发板

chmod +x stream

./stream

运行结果如下

参考https://www.cs.virginia.edu/stream/ref.html

RAM压力测试

参考 https://pyropus.ca./software/memtester/

wget https://pyropus.ca./software/memtester/old-versions/memtester-4.5.1.tar.gz

tar -xvf memtester-4.5.1.tar.gz

cd memtester-4.5.1/

export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin

aarch64-linux-gnu-gcc -O3 memtester.c tests.c -o memtester

cp memtester /mnt/e

导出到WINDOWS下,下载到米尔MYD-YT507H开发板

chmod +x memtester

./memtester

运行结果如下,默认一直测试下去,可以最后指定测试次数

比如

./memtester 512M 1

512M表示测试RAM大小

1表示测试一次

另外也可以-p直接指定物理地址,适合在板子开发阶段裸机代码直接指定物理地址测试。

对于RAM我们一般会关注其可靠性,一般会考虑在不同温度,电磁环境等进行对比测试,这里条件有限不再测试。

EMMC性能测试

查EMMC版本

其中mmc0: new high speed MMC card at address 0001表示emmc 设备支持的时钟模式:

Speed Mode clock (MHz)

Default Speed 26

Hight Speed SDR 52

Hight Speed DDR 52

HS200 200

HS400 200

SDR:单边沿采样

DDR:双边沿采样

其中mmcblk0boot0,mmcblk0boot1,mmcblk0rpmb为物理分区

所以我们这里x8-bit理论最大吞吐量应该是52MB/S。

输入df回车

我们看到EMMC有两个分区

/dev/mmcblk0p4

/dev/mmcblk0p8

输入mount回车

我们看到两个分区分别挂载在

/根目录

/media

ls /media查看里面没有文件

我们就拿/media /dev/mmcblk0p8作为测试

测试命令

dd if=/dev/mmcblk0p8 of=/dev/null bs=块大小 count=块数量

dd if=/dev/zero of=/media/test.bin bs=块大小 count=块数量

测试记录如下

bs/count 1GB

指令

结果

16k/65536

time dd if=/dev/mmcblk0p8 of=/dev/null bs=16k count=65536

45.124MB/S

4k/262144

time dd if=/dev/mmcblk0p8 of=/dev/null bs=4k count=262144

45.118MB/S

1k/1048576

time dd if=/dev/mmcblk0p8 of=/dev/null bs=1k count=1048576

45.096MB/S

16k/65536

time dd if=/dev/zero of=/media/test.bin bs=16k count=65536

33.524MB/S

4k/262144

time dd if=/dev/zero of=/media/test.bin bs=4k count=262144

33.379MB/S

1k/1048576

time dd if=/dev/zero of=/media/test.bin bs=1k count=1048576

32.395MB/S

从上测试来看读与最大52MB/S的吞吐量差不太多,写的速率也有33MB/S性能是不错的。

SD卡性能测试

与EMMC测试方法类似,并且和SD速率相关这里不再测试。

Qt性能测试

一般对于图形界面程序会关心刷新率,比如Qt程序。

这里通过一个简单的Qt程序测试Qt的性能,通过尽可能快速的绘制不同控件,测试相应时间来测试性能。

代码

WSL中

下载代码

git clone https://github.com/qinyunti/qtperf.git

运行qtcreator

/home/lhj/qtcreator-5.0.0-rc1/bin/qtcreator.sh &

File->Open File or Project...

.pro文件中添加QT += widgets

修改#include 为 #include

Build->Build Project “qtperf4”

提示错误

手动修改/build-qtperf4-YT507H_dev_kit-Debug/Makefile如上红色框中的内容为/home/lhj/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/Qt_5.12.5/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libGLESv2.so

重新编译

将程序拷贝到windows下

cd ../ build-qtperf4-YT507H_dev_kit-Debug/export

cp qtperf4 /mnt/e

导入到开发板

运行

chmod +x qtperf4

LD_LIBRARY_PATH=/usr/local/Qt_5.12.5/lib/:$LD_LIBRARY_PATH

export QT_QPA_EGLFS_INTEGRATION=none

./qtperf4

测试10次的结果如下

比如54mS操作了10次QPushButton

整体而言性能是不错的。

总结

从CoreMark的基础性能测试,包括EMMC、RAM的存储性能测试,以及Qt的显示测试来看,米尔MYD-YT507H开发板的相关性能都是非常高的,可以满足边缘计算,人机交互,智能终端等各类高性能应用场景需求。

想要了解优秀测评者“qinyunti”关于MYD-YT507H开发板测评原文的可以复制下方链接查看:

//bbs.eeworld.com.cn/thread-1211857-1-1.html

http://bbs.eeworld.com.cn/thread-1212023-1-1.html

http://bbs.eeworld.com.cn/thread-1211863-1-1.html

想要了解米尔T507-H处理器开发板可以去米尔官网查看具体的产品介绍:

http://www.myir-tech.com/product/MYC-YT507H.htm

需要购买米尔MYD-YT507H开发板的可以复制下方链接购买:

https://detail.tmall.com/item.htm?id=673629085661

作者: 米尔电子嵌入式, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3881300.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条