1991|1

501

帖子

4

TA的资源

纯净的硅(高级)

楼主
 

【创龙科技全志A40i开发板】性能综合测试 [复制链接]

 

前言

之前进行了开发环境等的体验,现在对各方面的性能进行一个定性体验。

跑分

打开WSL终端

下载代码

git clone

链接已隐藏,如需查看请登录或者注册

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:~/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin

arm-linux-gnueabihf-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

arm-linux-gnueabihf-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

导入到windows下

cp coremarko0 coremarko3 /mnt/d

 

然后通过串口rz导入到开发板

添加可执行权限

chmod +x coremarko0 coremarko3

 

运行

./coremarko0

./coremarko3

 

结果如下,可以看到优化不同差距较大

root@T3/A40i-Tronlong:~# ./coremarko0

 

2K performance run parameters for coremark.

CoreMark Size    : 666

Total ticks      : 146952831

Total time (secs): 146.952831

Iterations/Sec   : 680.490463

Iterations       : 100000

Compiler version : GCC9.4.0

Compiler flags   : -O0

Memory location  : STACK

seedcrc          : 0xe9f5

[0]crclist       : 0xe714

[0]crcmatrix     : 0x1fd7

[0]crcstate      : 0x8e3a

[0]crcfinal      : 0xd340

Correct operation validated. See README.md for run and reporting rules.

CoreMark 1.0 : 680.490463 / GCC9.4.0 -O0 / STACK

 

root@T3/A40i-Tronlong:~# ./coremarko3

2K performance run parameters for coremark.

CoreMark Size    : 666

Total ticks      : 29362505

Total time (secs): 29.362505

Iterations/Sec   : 3405.703975

Iterations       : 100000

Compiler version : GCC9.4.0

Compiler flags   : -O0

Memory location  : STACK

seedcrc          : 0xe9f5

[0]crclist       : 0xe714

[0]crcmatrix     : 0x1fd7

[0]crcstate      : 0x8e3a

[0]crcfinal      : 0xd340

Correct operation validated. See README.md for run and reporting rules.

CoreMark 1.0 : 3405.703975 / GCC9.4.0 -O0 / STACK

 

 

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

搜索Cortex-A7可以对比同型号CPU的得分。

Cortex - A7 1.2GHz

 

RAM性能测试

WSL中

下载代码

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

cd STREAM/

 

编译

export PATH=$PATH:~/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin

arm-linux-gnueabihf-gcc -O3 -DSTREAM_ARRAY_SIZE=5000000 stream.c -o stream.5M

 

导出到windows下

cp stream.5M /mnt/d

 

然后通过串口rz导入到开发板

添加可执行权限

chmod +x stream.5M

 

运行

./stream.5M

结果如下

root@T3/A40i-Tronlong:~# ./stream.5M

-------------------------------------------------------------

STREAM version $Revision: 5.10 $

-------------------------------------------------------------

This system uses 8 bytes per array element.

-------------------------------------------------------------

Array size = 5000000 (elements), Offset = 0 (elements)

Memory per array = 38.1 MiB (= 0.0 GiB).

Total memory required = 114.4 MiB (= 0.1 GiB).

Each kernel will be executed 10 times.

 The *best* time for each kernel (excluding the first iteration)

 will be used to compute the reported bandwidth.

-------------------------------------------------------------

Your clock granularity/precision appears to be 1 microseconds.

Each test below will take on the order of 52219 microseconds.

   (= 52219 clock ticks)

Increase the size of the arrays if this shows that

you are not getting at least 20 clock ticks per test.

-------------------------------------------------------------

WARNING -- The above is only a rough guideline.

For best results, please be sure you know the

precision of your system timer.

-------------------------------------------------------------

Function    Best Rate MB/s  Avg time     Min time     Max time

Copy:             972.1     0.083436     0.082297     0.084256

Scale:            868.5     0.092398     0.092110     0.092609

Add:              829.7     0.144716     0.144639     0.144788

Triad:            683.4     0.175755     0.175587     0.175917

-------------------------------------------------------------

Solution Validates: avg error less than 1.000000e-13 on all three arrays

 

 

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

 

RAM压力测试

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

WSL中

下载代码

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:~/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin

arm-linux-gnueabihf-gcc -O3 memtester.c tests.c -o memtester

 

导出到WINDOWS下,下载到开发板

cp memtester /mnt/d

 

chmod +x memtester

 

运行

./memtester

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

比如

./memtester 128M 1

128M表示测试RAM大小

1表示测试一次

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

root@T3/A40i-Tronlong:~# ./memtester 128M 1

memtester version 4.5.1 (32-bit)

Copyright (C) 2001-2020 Charles Cazabon.

Licensed under the GNU General Public License version 2 (only).

 

pagesize is 4096

pagesizemask is 0xfffff000

want 128MB (134217728 bytes)

got  128MB (134217728 bytes), trying mlock ...locked.

Loop 1/1:

  Stuck Address       : ok         

  Random Value        : ok

  Compare XOR         : ok

  Compare SUB         : ok

  Compare MUL         : ok

  Compare DIV         : ok

  Compare OR          : ok

  Compare AND         : ok

  Sequential Increment: ok

  Solid Bits          : ok         

  Block Sequential    : ok         

  Checkerboard        : ok         

  Bit Spread          : ok         

  Bit Flip            : ok         

  Walking Ones        : ok         

  Walking Zeroes      : ok         

 

Done.

 

 

EMMC性能测试

 

dmesg | grep mmc

 

4GEMMC

 

[    4.008550] mmc0: new HS200 MMC card at address 0001

[    4.009409] mmcblk0: mmc0:0001 S04111 3.56 GiB

 

和16G的SD卡

[    8.202017] mmc1: new high speed SDHC card at address aaaa

[    8.208872] mmcblk1: mmc1:aaaa SL16G 14.8 GiB

 

EMMC速度为HS200

Speed Mode

 

clock (MHz)

 

Default Speed

 

26

 

Hight Speed SDR

 

52

 

Hight Speed DDR

 

52

 

HS200

 

200

 

HS400

 

200

 

df查看,使用/目录进行读写测试

root@T3/A40i-Tronlong:~# df

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/root              2029971    514680   1406338  27% /

devtmpfs                107996         0    107996   0% /dev

tmpfs                   124604         0    124604   0% /dev/shm

tmpfs                   124604         8    124596   0% /tmp

tmpfs                   124604        12    124592   0% /run

cgroup                  124604         0    124604   0% /sys/fs/cgroup

root@T3/A40i-Tronlong:~#

 

 

不插入SD卡 /挂载在emmc

 

 

bs/count  1GB

 

指令

 

结果

 

 

16k/65536

 

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

 

98.5MB/S

 

4k/262144

 

 

 

 
1k/1048576

 

 

 

 

 

 

16k/65536

 

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

 

27.24MB/S

 

4k/262144

 

 

 

 

1k/1048576

 

 

 

 

root@T3/A40i-Tronlong:/# time dd if=/dev/zero of=/test.bin bs=16k count=65536

65536+0 records in

65536+0 records out

 

real    0m37.581s

user    0m0.080s

sys     0m15.230s

root@T3/A40i-Tronlong:/# time dd if=test.bin of=/dev/null bs=16k count=65536

65536+0 records in

65536+0 records out

 

real    0m10.386s

user    0m0.070s

sys     0m4.040s

root@T3/A40i-Tronlong:/#

 

 

以上仅作参考,实际欸有考虑缓存的影响。

 

SD卡性能测试

插入SD卡后重启,自动挂在到/root到SD卡

 

 

bs/count  1GB

 

指令

 

结果

 

 

16k/65536

 

time dd if=/root/test.bin of=/dev/null bs=16k count=65536

 

21.25MB/S

 

4k/262144

 

 

 

 

 

1k/1048576

 

 

 

 

 

 

16k/65536

 

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

 

11MB/S

 

4k/262144

 

 

 

 

 

1k/1048576

 

 

 

 

 

root@T3/A40i-Tronlong:~# time dd if=/dev/zero of=/root/test.bin bs=16k count=65536

65536+0 records in

65536+0 records out

real    1m32.412s

user    0m0.330s

sys     0m17.700s

root@T3/A40i-Tronlong:~# time dd if=/root/test.bin of=/dev/null bs=16k count=65536

65536+0 records in

65536+0 records out

real    0m48.177s

user    0m0.100s

sys     0m4.350s

 

速度和SD卡本身有关,也没有考虑缓存,所以结果仅作参考。

总结

以上综合对性能进行了测试,感觉性能还是非常不错的,各测试结果仅作参考,因为环境等因素不一样测得结果也会不一样,包括存储的测试方法也不是很科学,比如没有考虑缓存等。上述测试只是一个定性的性能体验,板子的性能是一个综合的体验,需要是面对真是的应用场景才有意义,并且针对场景优化也很重要。

 

 

最新回复

板子的性能是一个综合的体验,需要是面对真是的应用场景才有意义,并且针对场景优化也很重要。 利害了!   详情 回复 发表于 2022-10-6 17:08
点赞 关注
 
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 

板子的性能是一个综合的体验,需要是面对真是的应用场景才有意义,并且针对场景优化也很重要。

利害了!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
TI数控电源diy的上位机软件,可显示曲线等

可以实时显示数据, 数据格式 是FF H8 L8(电压) H8 L8(电流) 曲线绘制没有分格式 单一数据绘制 下面的流程图怎么会多了eewo ...

24Cxx 系列EEPROM通用程序及应用(STM32 应用函数文件)

(论坛到现在对chrome的支持还是非常不好,上传附件失败以及把排版弄乱等,使得我不得不编辑了好几次,幸好还不是用lin ...

【原创】LPC1752读取AT24C08C的原理与实现

本帖最后由 rain_noise 于 2015-3-30 20:08 编辑 1 简介1.1 LPC1752及AT24C08C简介LPC1752是NXP推出的一款Cortex M3的芯片, ...

基于MCU设计嵌入式系统的优化

要求MCU 控制嵌入式系统中越来越多的功能。这些功能通常是实时的,需要定期维护,以满足系统对响应性,性能或可靠性的要求。通常 ...

STM32视频号及B站账号开通啦,你关注了吗?

从2007年起,STM32在大家的陪伴下逐渐壮大,如果没有大家的支持与信任,我们很难走到现在。在未来,我们希望用更加生动的形式与 ...

【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯

偶然心血来潮,想要做一个声音可视化的系列专题。这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不 ...

压电叠堆应用案例|功率放大器驱动超声电机导轨运动

随着压电叠堆及压电相关技术的进一步发展,其应用领域在当今有了更广泛的应用,从声波的传递,再到振动控制以及传感器方面,都能 ...

光纤通信与无线电通信的区别有哪些?

光纤通信和无线电通信是两种不同的通信方式,它们之间的区别如下: 传输介质:光纤通信使用光纤作为传输介质,而无线电通信使 ...

【DigiKey“智造万物,快乐不停”创意大赛】1.准备STM32L152程序+开始写驱动

本帖最后由 laocuo1142 于 2023-12-14 08:40 编辑 基于ST平台的振动状态监控传感器 第一帖:准备STM32L152程序+开始写驱动 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表