OK527N-C开发板-简单的性能测试

news2024/12/21 22:09:41

OK527N-C

CoreMark

获取CoreMark源码

首先使用Git克隆仓库:

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

修改Makefile

首先复制文件夹

cp -rf posix ok527

之后修改ok527文件夹下的core_portme.mak文件,将CC修改如下

CC = aarch64-none-linux-gnu-gcc

交叉编译

make PORT_DIR=ok527

编译结束后会报错,但是已经生成了交叉编译的coremark.exe可执行程序。这是由于架构不同,该交叉编译的程序并不能在电脑上直接运行。
在这里插入图片描述

将文件夹下的coremark.exe复制到板卡上,执行

chmod 777 coremark.exe
./coremark.exe

在这里插入图片描述

多核

make PORT_DIR=ok527 XCFLAGS="-DMULTITHREAD=4 -DUSE_FORK -pthread"

在这里插入图片描述

Dhrystone(单核性能测试工具)

首先下载源码(http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz)并解压

tar -vxf classic_benchmarks.tar.gz

之后新建一个编译文件夹,复制相关源码到此,并新建Makefile文件

cd classic_benchmarks
mkdir ./build
cd ./build

cp -rf ../source_code/common_64bit/cpuidc64.c ./
cp -rf ../source_code/common_64bit/cpuidh.h ./
cp -rf ../source_code/dhrystone2/dhry.h ./
cp -rf ../source_code/dhrystone2/dhry_1.c ./
cp -rf ../source_code/dhrystone2/dhry_2.c ./
touch Makefile

将如下内容复制到Makefile文件中并保存

CC=aarch64-none-linux-gnu-gcc

main:*.o
        ${CC} -o dhry2_64 *.o
        ${CC} -O2 -o dhry22_64 *.o
        ${CC} -O3 -o dhry23_64 *.o

*.o:*.c
        ${CC} -g -c *.c

clean:
        rm -f *.o dhry2_64 dhry22_64 dhry23_64

此外由于source_code/common_64bit/cpuida64.asm代码并不适配aarch64-none-linux-gnu-as汇编器,所以我们在复制的时候没有复制此文件,并且需要注释掉 cpuidc64.c中的_cpuida() 、_calculateMHz() 两个汇编函数。
最后执行编译

make clean
make

在这里插入图片描述

生成的三个可执行文件分别为dhry2_64(无优化等级)、dhry22_64(优化等级2)、dhry23_64(优化等级3)。这里我们将dhry2_64复制到板卡中并运行,得到的结果如下
在这里插入图片描述

Stream

STREAM是一种内存带宽测试工具,主要用于评估计算机系统的内存子系统性能,特别是其读写速度和带宽。它通过一系列简单但计算密集型的操作来模拟对连续内存区域的访问,以此来测量系统的实际内存带宽性能。
STREAM测试主要提供以下四种指标:

  1. Copy (复制):测量一个数组中的数据复制到另一个数组的速度。这项测试代表了简单的数据移动操作,如内存拷贝。
  2. Scale (尺度变换):测量将数组中的每个元素乘以一个常数的速度。这代表了需要读取、修改并重新写回内存的数据操作。
  3. Add (矢量求和):测量将两个数组的相应元素相加,并将结果存储到第三个数组中的速度。这代表了常见的向量加法操作。
  4. Triad (复合矢量求和):测量将一个数组的元素与另一个数组的元素相加,然后将结果乘以一个常数,并存储到第三个数组中的速度。这是最复杂的一项测试,因为它涉及读取、计算和写回三个数组的操作。

首先下载源码(http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz),并在同一目录下新建Makefile,并将以下内容复制进去

CC=aarch64-none-linux-gnu-gcc

main:
        ${CC} stream.c -o stream
        
clean:
        rm -f *.o stream

编译执行后得到可执行文件stream,将其复制到板卡上并执行
在这里插入图片描述

此外,在编译程序时还可以启用-fopenmp选项,它会告诉编译器生成能利用多线程的代码,从而可以并行地执行内存读取和写入操作,从而更好地模拟真实应用的负载情况,因为现代应用程序往往利用了多核架构的并行处理能力。因此,启用-fopenmp可以得到更接近实际工作负载下的内存带宽测量值。启用-fopenmp选项后的测试结果如下:
在这里插入图片描述

可以看到板卡的内存性能也很不错。
之后我们修改Makefile来查看不同编译优化等级的影响,

CC=aarch64-none-linux-gnu-gcc

main:
        ${CC} stream.c -fopenmp -o stream
        ${CC} stream.c -fopenmp -O1 -o stream1
        ${CC} stream.c -fopenmp -O2 -o stream2
        ${CC} stream.c -fopenmp -O3 -o stream3
        
clean:
        rm -f *.o stream

交叉编译后分别得到无优化、优化等级1、优化等级2、优化等级3的程序,将其下载到板卡中进行测试。

  1. 无优化
    在这里插入图片描述

  2. 优化等级1
    在这里插入图片描述

  3. 优化等级2
    在这里插入图片描述

  4. 优化等级3
    在这里插入图片描述

可以看到当为优化等级1时效果最好,O2和O3都会导致部分指标有一定的衰减。

ELFBoard

下面以搭载i.MX6ULL芯片的ELFBoard为例进行单核性能比对测试。

coremark

在这里插入图片描述

Dhrystone

在这里插入图片描述

可以看到在单核性能上T527N就比i.MX6ULL大约高了三倍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1888007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp地图点击获取位置

主页面 <view class"right-content" click.stop"kilometer(item)"><view class"km">{{item.distance||0}}km</view><image src"../../static/map.png" mode""style"width: 32rpx; height: 32rpx…

模块电源(九):DC-DC工作模式和调制方法

DC-DC 需要在一定的开关频率下工作&#xff0c;并需要一个控制电路配合来稳定 DCDC 的输出电压。因此&#xff0c;针对不同的控制方案&#xff0c;需要设计不同的 DC-DC 工作模式和调制方法来使其稳定工作。 一、工作模式 一个 DC-DC 电路中&#xff0c;开关管导通阶段的电感电…

【前端】HTML+CSS复习记录【5】

文章目录 前言一、padding、margin、border&#xff08;边框边距&#xff09;二、样式优先级三、var&#xff08;使用 CSS 变量更改多个元素样式&#xff09;四、media quary&#xff08;媒体查询&#xff09;系列文章目录 前言 长时间未使用HTML编程&#xff0c;前端知识感觉…

【高中数学/基本不等式】已知a,b皆为正实数,且a+b=2 求:1/a+4/b的最小值?(2011年重庆理科卷第七题)

【题目】 已知a,b皆为正实数&#xff0c;且ab2 求&#xff1a;1/a4/b的最小值&#xff1f; 【解答】 解法一&#xff1a;基本不等式法 由ab2可推知a/2b/21 1/a4/b(a/2b/2)/a(2a2b)/b1/2b/2a2a/b22.5b/2a2a/b >2.52倍根号下&#xff08;b/2a*2a/b&#xff09;2.52*14.…

力扣双指针算法题目:双数之和,三数之和,四数之和

目录 一&#xff1a;双数之和 1.题目&#xff1a; 2.思路解析 3.代码 二&#xff1a;三数之和 1.题目 2.思路解析 3&#xff0c;代码 三&#xff1a;四数字之和 1.题目 2.思路解析 3.代码 一&#xff1a;双数之和 1.题目&#xff1a; 输入一个递增排序的数组和一…

基于Java的家政预约系统设计与实现

作者介绍&#xff1a;计算机专业研究生&#xff0c;现企业打工人&#xff0c;从事Java全栈开发 主要内容&#xff1a;技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流&#xff08;SCI论文两篇&#xff09; 上点关注下点赞 生活越过…

提高候选人的招聘感受:成功的策略

大约78%的候选人表示&#xff0c;他们的整体应聘体验表明企业对员工的关注。然而&#xff0c;超过一半的候选人透露&#xff0c;他们在招聘过程中有过负面的候选人经历&#xff0c;80%的候选人在经历了令人失望的招聘过程后会公开与他人分享他们的不良经历。 但也有一线希望&am…

Swift 中强大的 Key Paths(键路径)机制趣谈(上)

概览 小伙伴们可能不知道&#xff1a;在 Swift 语言中隐藏着大量看似“其貌不扬”实则却让秃头码农们“高世骇俗”&#xff0c;堪称卧虎藏龙的各种秘技。 其中&#xff0c;有一枚“不起眼”的小家伙称之为键路径&#xff08;Key Paths&#xff09;。如若将其善加利用&#xff…

STM32 中断编程入门

目录 一、中断系统 1、中断的原理 2、中断类型 外部中断 定时器中断 DMA中断 3、中断处理函数 中断标志位清除 中断服务程序退出 二、实际应用 中断控制LED 任务要求 代码示例 中断控制串口通信 任务要求1 代码示例 任务要求2 代码示例 总结 学习目标&…

什么是文档透明加密|好用的文档透明加密软件有哪些?

在当今日益数字化和信息化的时代&#xff0c;数据安全问题愈发受到企业和个人的关注。文档作为信息的重要载体&#xff0c;其安全性不言而喻。为了保障文档的机密性和完整性&#xff0c;文档透明加密技术应运而生。本文将对文档透明加密进行详细介绍&#xff0c;并探讨一些好用…

6月份上海二手房卖疯了,暴涨四成,反价房东被抛弃

6月份刚刚结束&#xff0c;北京、上海两大城市的房市成交情况纷纷出炉&#xff0c;从成交量来看上海房市明显比北京火热许多&#xff0c;同时与其他城市类似&#xff0c;消费者偏向于二手房。 6月份上海二手房往前高达2.6万套&#xff0c;环比增加超四成&#xff0c;创下2021年…

粤港联动,北斗高质量国际化发展的重要机遇

今年是香港回归27周年&#xff0c;也是《粤港澳大湾区发展规划纲要》公布5周年&#xff0c;5年来各项政策、平台不断为粤港联动增添新动能。“十四五”时期的粤港澳大湾区&#xff0c;被国家赋予了更重大的使命&#xff0c;国家“十四五”《规划纲要》提出&#xff0c;以京津冀…

用MySQL+node+vue做一个学生信息管理系统(二):创建MySQL数据表、创建HTML用户列表页面

MySQL代码 CREATE DATABASE students;USE students;CREATE TABLE student( id INT COMMENT 学号, name VARCHAR(32) COMMENT 姓名, sex VARCHAR(8) COMMENT 性别, class VARCHAR(64) COMMENT 班级 )SHOW TABLES;下面介绍一下Vue框架的element-ui的使用方法&#xff0c;这里就不…

【哈尔滨二级等保测评需要测哪些指标】

为了保证系统的安全性、稳定性和遵从性&#xff0c;哈尔滨二级等保评估要求对评估指标进行全面的评估。下面就是对哈尔滨等保二级考核所需要的考核指标的具体说明&#xff0c;并按各个维度分点表达与总结&#xff1a; 一、物理安全要求 物理安全是信息系统的根本&#xff0c;…

go-zero微服务教程(一、基本介绍与安装)

系列文章目录 第一章 go-zero基本介绍与安装 文章目录 一、基本介绍1.1 参考1.2 什么是微服务1.3 什么是go-zero1.4 为什么选择go-zero1.5 go-zero的整体架构1.6 go-zero的特点 二、安装2.1 go-zero需要安装的组件2.2 安装 protoc 及代码生成插件2.3 安装用于生成 go 和 grpc 相…

工业触摸一体机优化MES应用开发流程

工业触摸一体机在现代工业生产中扮演着至关重要的角色&#xff0c;它集成了智能触摸屏和工业计算机的功能&#xff0c;广泛应用于各种生产场景中。而制造执行系统&#xff08;MES&#xff09;作为工业生产管理的重要工具&#xff0c;对于提高生产效率、降低成本、优化资源利用具…

XTDrone-固定翼无人机编队跟踪无人车-配置教程

配置使用ROS版本为Neotic 1 配置 1.1 加载固定翼无人机编队跟踪控制工程文件 cp -r ~/XTDrone/coordination/fixed_wing_formation_control ~/catkin_ws/src 1.2 加载一些用到的功能包 sudo apt-get install ros-noetic-serial #根据自己的ROS版本修改 sudo apt-get insta…

[图解]SysML和EA建模住宅安全系统-07-to be块定义图

1 00:00:00,180 --> 00:00:06,820 我们来看&#xff0c;这是之前的那张图&#xff0c;现有的 2 00:00:08,290 --> 00:00:09,160 我们怎么做 3 00:00:09,170 --> 00:00:11,280 你看&#xff0c;我们之前 4 00:00:11,290 --> 00:00:15,600 在现状&#xff0c;as i…

lstrip()方法——截掉字符串左边的空格或指定的字符

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 lstrip()方法用于截掉字符串左边的空格或指定的字符。lstrip()方法的语法格式如下&#xff1a; str.lstrip([chars]) 参数说明&#xff…

多语言模型(Multilingual Models)用于推理(Inference)

在深入探讨多语言模型&#xff08;Multilingual Models&#xff09;用于推理&#xff08;Inference&#xff09;的详细内容时&#xff0c;我们需要首先理解多语言模型的基本概念、它们如何工作、为什么它们在现代自然语言处理&#xff08;NLP&#xff09;中变得如此重要&#x…