0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3566的CoreMark测试

发烧电子爱好者 来源:发烧电子爱好者 作者:发烧电子爱好者 2023-10-09 17:52 次阅读

EEMBC 的 CoreMark® 评分是一种比较通用的基准测试方式,用于测量嵌入式系统中使用的微控制器MCU)和中央处理单元(CPU)的性能,可以帮助人们比较不同的 CPU 架构的性能表现。

wKgZomUgKL2AFRLWAABNNOAuKAU937.png

CoreMark 基准评分特点

CRC 算法具有双重功能,在链表元素中包含的数据上执行16位CRC,以验证操作正确,保证操作正确并提供自我检查机制。

为了确保编译器不能在编译时预先计算结果,基准测试中的每个操作都会产生一个在编译时不可用的值。此外,基准测试中定时部分使用的所有代码都是基准测试本身的一部分(没有库调用)。

CoreMark 是一种基于 C 语言的 CPU 性能评测工具,其目标是为了提供一个可重复、可移植且各平台间性能得分可比较的基准测试。CoreMark 包含多个小型测试,旨在模拟实际应用程序中常见的操作和趋势。

一、下载&编译

既然基于C,那就直接在板上编译好了。git clone https://github.com/eembc/coremark.git直接把代码从gethub上撸下来,可能网络故障,需要多试几次。

wKgaomUgKVOAcHMuAAEP-rKHttQ761.png

本地编译好办,先看看gcc版本。

linaro@linaro-alip:~/coremark$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/8/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --disable-libphobos --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 8.3.0 (Debian 8.3.0-6)

免去交叉编译的麻烦,直接make即可。

linaro@linaro-alip:~/coremark$ make
make XCFLAGS=" -DPERFORMANCE_RUN=1" load run1.log
make[1]: Entering directory '/home/linaro/coremark'
make port_prebuild
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_prebuild'.
make[2]: Leaving directory '/home/linaro/coremark'
make link
make[2]: Entering directory '/home/linaro/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]: Leaving directory '/home/linaro/coremark'
make port_postbuild
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_postbuild'.
make[2]: Leaving directory '/home/linaro/coremark'
make port_preload
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_preload'.
make[2]: Leaving directory '/home/linaro/coremark'
echo Loading done ./coremark.exe
Loading done ./coremark.exe
make port_postload
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_postload'.
make[2]: Leaving directory '/home/linaro/coremark'
make port_prerun
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_prerun'.
make[2]: Leaving directory '/home/linaro/coremark'
./coremark.exe  0x0 0x0 0x66 0 7 1 2000 > ./run1.log

make port_postrun
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_postrun'.
make[2]: Leaving directory '/home/linaro/coremark'
make[1]: Leaving directory '/home/linaro/coremark'
make XCFLAGS=" -DVALIDATION_RUN=1" load run2.log
make[1]: Entering directory '/home/linaro/coremark'
make port_preload
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_preload'.
make[2]: Leaving directory '/home/linaro/coremark'
echo Loading done ./coremark.exe
Loading done ./coremark.exe
make port_postload
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_postload'.
make[2]: Leaving directory '/home/linaro/coremark'
make port_prerun
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_prerun'.
make[2]: Leaving directory '/home/linaro/coremark'
./coremark.exe  0x3415 0x3415 0x66 0 7 1 2000  > ./run2.log
make port_postrun
make[2]: Entering directory '/home/linaro/coremark'
make[2]: Nothing to be done for 'port_postrun'.
make[2]: Leaving directory '/home/linaro/coremark'
make[1]: Leaving directory '/home/linaro/coremark'
Check run1.log and run2.log for results.
See README.md for run and reporting rules.

生成coremark.exe ,奇怪了,这种.exe命名不是windows才有的吗?Linux/GNU很少用这种方式。anyway,先看看可执行文件。

linaro@linaro-alip:~/coremark$ file coremark.exe
coremark.exe: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=ba590f0bbe7fe0273ccd6026c9fa18352507e4c0, not stripped

二、跑分

./coremark.exe跑跑,估计等过10s的样子。

wKgZomUgKxCAYaRPAAF83sswXMM319.png

GCC8.3.0 -O2 -lrt / Heap 级别上,跑了接近7000分。

三、对比

这个成绩怎么样呢?来对比下。

wKgZomUgLA-AXae6AACncCLFkkE004.png

对比起来还是挺不错的,再来看看常见开发板的跑分情况。

wKgaomUgLD-AbjttAAJDpEBtQOc646.png

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    5149

    浏览量

    126437
  • 基准测试
    +关注

    关注

    0

    文章

    19

    浏览量

    7582
  • 编译
    +关注

    关注

    0

    文章

    652

    浏览量

    32800
  • RK3566
    +关注

    关注

    0

    文章

    144

    浏览量

    4778
收藏 人收藏

    评论

    相关推荐

    RK3566芯片有哪些功能呢

    RK3566芯片是什么? RK3566芯片有哪些功能呢?
    发表于 03-02 10:32

    RK3566是什么?RK3566芯片有何功能

    瑞芯微RK3566芯片是一款专为消费类行业应用打造的通用型SoC。CPU采用4核A55架构处理器,集成G52图形处理器,内置独立的NPU,运行安卓11和Linux系统。RK3566主要面向平板电脑
    发表于 04-20 16:21

    ROC RK3566 PC固件Buildroot

    电子发烧友网站提供《ROC RK3566 PC固件Buildroot.txt》资料免费下载
    发表于 09-21 14:55 8次下载
    ROC <b class='flag-5'>RK3566</b> PC固件Buildroot

    ROC RK3566 PC固件RK3566/RK3568 NorFlash2eMMCLoader

    电子发烧友网站提供《ROC RK3566 PC固件RK3566/RK3568 NorFlash2eMMCLoader.txt》资料免费下载
    发表于 09-21 14:51 45次下载
    ROC <b class='flag-5'>RK3566</b> PC固件<b class='flag-5'>RK3566</b>/<b class='flag-5'>RK</b>3568 NorFlash2eMMCLoader

    ROC RK3566 PC固件Ubuntu

    电子发烧友网站提供《ROC RK3566 PC固件Ubuntu.txt》资料免费下载
    发表于 09-21 14:50 10次下载
    ROC <b class='flag-5'>RK3566</b> PC固件Ubuntu

    RK3568和RK3566的区别

    RK3568和RK3566的区别 RK3568和RK3566是两种不同的芯片,都是由Rockchip公司推出的。它们都是面向高性能应用市场的芯片,具有相似的性能规格和功能特点。但是在某
    的头像 发表于 08-15 17:25 1.7w次阅读

    rk3566处理器属于什么档次?

    rk3566处理器属于什么档次? RK3566处理器是一款由瑞芯微公司推出的高性能处理器,在硬件配置和性能上都表现出了很强大的实力。目前市场上已经有了很多的RK3566处理器,相信大多数人都对这款
    的头像 发表于 08-15 17:25 3.2w次阅读

    rk3566相当于骁龙什么芯片?

    rk3566相当于骁龙什么芯片? RK3566相当于骁龙什么芯片?这是一个许多人都很关心的问题。以前,RK3566和骁龙系列芯片之间存在明显的性能差距,但是最近新版本的RK3566芯片
    的头像 发表于 08-15 17:43 1.2w次阅读

    rk3566rk3399的区别

    rk3566rk3399的区别 Rockchip是中国芯片设计企业,其旗下产品包括rk3566rk3399芯片,这两种芯片都具有高性能和低成本的优点,但在一些细节上还是存在一定的差
    的头像 发表于 08-15 17:44 1.4w次阅读

    rk3566rk3588的区别

    rk3566rk3588的区别 Rockchip是一家在中国市场上广受推崇的半导体公司。该公司开发了一系列芯片,最近推出了两款全新的处理器—RK3566RK3588。这两款处理器的
    的头像 发表于 08-15 17:44 1.2w次阅读

    rk3566rk3326的区别

    rk3566rk3326的区别 Rockchip公司是一家专注于设计和制造先进半导体技术的公司。它的产品广泛应用于智能手机、平板电脑、智能家居、车载娱乐系统、工业控制系统等各个领域。在这些领域
    的头像 发表于 08-15 17:44 8158次阅读

    rk3566rk3568的区别

    rk3566rk3568的区别 随着科技的不断推进和更新换代,人们所接触到的电子产品也随之呈现不断变化的趋势。而在这些产品中,处理器就显得尤为重要。目前市场上较为常见的主流处理器均有自己的特点
    的头像 发表于 08-15 17:44 1.1w次阅读

    rk3566有多少引脚?

    rk3566有多少引脚? RK3566是Rockchip公司推出的一款集成了四核Cortex-A55和一个NPU加速器的高性能嵌入式处理器。这款处理器集成了丰富的接口,满足了众多应用场景的需求
    的头像 发表于 08-15 17:44 2252次阅读

    rk3566是什么架构芯片?

    rk3566是什么架构芯片? RK3566是一款RK系列芯片中最新的产品之一,由国内知名芯片设计公司瑞芯微半导体开发。它采用了新一代的Cortex-A55处理器,在性能和功耗方面有了大幅提升。同时
    的头像 发表于 08-15 17:44 1.2w次阅读

    rk3566相当于高通什么芯片?

    rk3566相当于高通什么芯片? RK3566是一款功能强大、用途广泛的片上系统(SoC),由中国无晶圆厂半导体公司Rockchip开发。RK3566RK35xx系列的一部分,旨在实
    的头像 发表于 08-15 17:44 1.4w次阅读