CPU/内存/综合性能评估工具汇总-2:stream

目录

    • 一、概括
    • 二、stream

一、概括

嵌入式开发中对要设计的产品、立项的项目进行设计时,往往需要对关键芯片进行性能评估,本文主要总结基于linux系统的产品在性能评估时的工具使用总结,在aarch64(arm64平台下测试),板卡根文件系统为debian系统。
工具列表如下:

名称作用git源码链接
lmbench带宽测评,反应时间测评https://github.com/redrose2100/lmbench.git
stream内存带宽(每秒通过的字节数)测试https://github.com/jeffhammond/STREAM.git
unixbench测试 unix 系统基本性能,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器.https://github.com/kdlucas/byte-unixbench.git
cyclictest 和 stress-ng实时性测试压力工具 git clone https://github.com/ColinIanKing/stress-ng.git ,测试工具git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git

二、stream

1、编译
修改Makefile为以下

CC ?= gcc
CFLAGS = -O3    -fno-PIC  -mcmodel=large    -fopenmp -DSTREAM_ARRAY_SIZE=200000000 -DNTIMES=30all: stream
clean:rm -f stream  *.ostream: stream.c$(CC)   $(CFLAGS) stream.c -o stream

export CC=aarch64-linux-gnu-gcc
make
2、将编译后的stream拷贝到嵌入式板卡中
3、运行测试
单线程
export OMP_NUM_THREADS=1
./stream > stream-result-1thread.txt

多线程,以8线程为例,这里cpu核数为8,如果是单核单线程的话最大支持到8
export OMP_NUM_THREADS=8
export GOMP_CPU_AFFINITY=0-7
./stream > stream-result-8thread.txt
4、运行出现的问题
提示如下错误

./stream: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory

debian环境下 dpkg -i libgomp1_8.3.0-6_arm64.deb
再次
buildroot环境下编译时打开对此包编译的选项;
5、结果和解释
单线程

-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
Array size = 200000000 (elements), Offset = 0 (elements)
Memory per array = 1525.9 MiB (= 1.5 GiB).
Total memory required = 4577.6 MiB (= 4.5 GiB).
Each kernel will be executed 30 times.The *best* time for each kernel (excluding the first iteration)will be used to compute the reported bandwidth.
-------------------------------------------------------------
Number of Threads requested = 1
Number of Threads counted = 1
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 347944 microseconds.(= 347944 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:           11397.9     0.280894     0.280754     0.281033
Scale:          10245.3     0.312539     0.312339     0.313669
Add:             8855.1     0.542250     0.542060     0.542685
Triad:           8857.6     0.542100     0.541906     0.542925
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
-------------------------------------------------------------

多线程

-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
Array size = 200000000 (elements), Offset = 0 (elements)
Memory per array = 1525.9 MiB (= 1.5 GiB).
Total memory required = 4577.6 MiB (= 4.5 GiB).
Each kernel will be executed 30 times.The *best* time for each kernel (excluding the first iteration)will be used to compute the reported bandwidth.
-------------------------------------------------------------
Number of Threads requested = 8
Number of Threads counted = 8
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 339367 microseconds.(= 339367 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:           14378.2     0.223113     0.222559     0.223810
Scale:          12578.0     0.257082     0.254413     0.260384
Add:            10312.8     0.468002     0.465440     0.470596
Triad:           8938.6     0.542479     0.536994     0.548937
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
-------------------------------------------------------------

说明
关注以下四行的每秒字节数和时间

Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:           14378.2     0.223113     0.222559     0.223810
Scale:          12578.0     0.257082     0.254413     0.260384
Add:            10312.8     0.468002     0.465440     0.470596
Triad:           8938.6     0.542479     0.536994     0.548937

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

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

相关文章

源码编译构建LAMP(企业网站架构部署与优化)

部署LAMP平台 LAMV架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包 括 Linux操作系统,Apache网站服务器、MySQL数据库服务器、P…

【Python】基础语法体系:两种常用语句

个人主页:【😊个人主页】 系列专栏:【❤️Python】 文章目录 前言条件语句动态实例if语句if-else 语句if-elif-else 语句嵌套条件语句 循环语句for循环while循环 动态实例嵌套循环 前言 Python语句是构成Python程序的基本单元,用…

优化VOI(Virtual Operating System Infrastructure,虚拟操作系统基础架构)架构的性能

优化VOI(Virtual Operating System Infrastructure,虚拟操作系统基础架构)架构的性能,可以从多个方面入手,以确保系统能够更高效、更稳定地运行。以下是一些优化建议: 1. 优化硬件资源利用 本地硬件资源最…

JavaScript 基础:掌握JavaScript基础语法(一)

一、JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14。 1)数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 3.14 1001 123e5 2)字符串(String&…

磁力猫官网cilimao,获取磁力链接的操作步骤

磁力猫磁力链接是一种特殊的下载链接,磁力猫磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远…

Innodisk宣布启用第二期研发与生产中心,发力扩展边缘AI解决方案产能

Innodisk 公司于2024年7月9日在台湾宜兰揭幕了其研发与生产中心第二阶段,旨在扩大边缘人工智能(Edge AI)解决方案的生产能力。此举是对边缘AI浪潮所带动的庞大市场需求的直接响应,标志着公司将制造工厂转变为集团AI核心基地的重要…

C++之goto陈述

关键字 goto用于控制程式执行的顺序&#xff0c;使程式直接跳到指定标签(lable) 的地方继续执行。 形式如下 标签可以是任意的识别字&#xff0c;后面接一个冒号。 举例如下 #include <iostream>int main() {goto label_one;label_one: {std::cout << "Lab…

Taro自定义实现本地路径转换为文件

在用Taro写头像上传功能时&#xff0c;因为需要对获得的图片进行剪切成圆形或方形。使用组件剪切完之后返回的是一个本地图片的相对路径。这个时候我们就需要自己实现将本地路径重新转换为二进制文件。 引入两个js文件 mimeMap.js module.exports {"0.001": &quo…

vue3 插件

富文本插件 wangeditor https://www.wangeditor.com/v5/for-frame.html 官网地址 安装 yarn add wangeditor/editor # 或者 npm install wangeditor/editor --saveyarn add wangeditor/editor-for-vuenext # 或者 npm install wangeditor/editor-for-vuenext --save使用impor…

凸包——G - Highest Ratio

G - Highest Ratio 来源&#xff1a;AtCoder Beginner Contest 341-G 题目描述&#xff1a; 给定长度为 N N N 的序列 A ( A 1 , A 2 , … , A N ) A (A_1, A_2, \ldots, A_N) A(A1​,A2​,…,AN​)。 对于每个 k 1 , 2 , … , N k 1, 2, \ldots, N k1,2,…,N&#…

看懂什么是Halo2

目录 Halo2(零知识证明框架)是什么 Halo2概述 Halo2的原理 电路开发 斐波那契数列举例说明 Halo2的应用 结论 PLONK算法是什么 PLONK算法概述 PLONK算法原理 1. 电路描述与约束 2. 多项式表达与验证 3. 初始设置与随机性 PLONK举例说明 PLONK例子:验证简单的…

【漏洞复现】29网课交单平台 SQL注入

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 29网课交单平台是一个在线学习平台&#xff0c;用于帮助学生完成网络课程的学习任务。这个平台提供了包括…

Transformer中的编码器和解码器结构有什么不同?

Transformer背后的核心概念&#xff1a;注意力机制&#xff1b;编码器-解码器结构&#xff1b;多头注意力等&#xff1b; 例如&#xff1a;The cat sat on the mat&#xff1b; 1、嵌入&#xff1a; 首先&#xff0c;模型将输入序列中的每个单词嵌入到一个高维向量中表示&…

前端面试题34(在移动应用中,通用的实时传输协议)

在移动应用中&#xff0c;选择实时传输协议时通常会考虑几个关键因素&#xff1a;网络效率、功耗、实时性、跨平台兼容性以及数据类型&#xff08;如文本、图像、视频&#xff09;。以下是几种常用的实时传输协议及其在移动应用中的适用性&#xff1a; 1. WebSocket WebSocke…

华为od 100问 持续分享-2

我是一名软件开发培训机构老师&#xff0c;我的学生已经有上百人通过了华为OD机试&#xff0c;学生们每次考完试&#xff0c;会把题目拿出来一起交流分享。 重要&#xff1a;2024年5月份开始&#xff0c;考的都是OD统一考试&#xff08;D卷&#xff09;&#xff0c;题库已经整…

AI转绘_animatediff-cli-prompt-travel

这个工具有两种主要模式&#xff1a;它可以直接通过提示创建视频&#xff0c;或者它可以对现有视频进行风格化。还有方法可以提高视频的分辨率。 正如工具名称所示&#xff0c;它的一个主要特点是"提示旅行"。这意味着你可以例如使用特定的提示用于前20帧&#xff0…

Github绑定自己的域名

Github绑定自己的域名 1.注册自己的域名2.在GitHUb上创建一个自己的仓库&#xff0c;添加域名2.1 创建仓库2.2 添加域名2.3 在Setting中将域名添加到Custom domain中 3.添加域名解析获取ip地址4.在阿里云修改域名解析记录5.ping 域名即可成功 详细内容可参该博客&#xff1a; …

算法复杂度

目录 1. 数据结构前言 1.1 数据结构 1.2 算法 2. 算法效率 2.1 复杂度的概念 3. 时间复杂度 3.1 大O的渐进表示法 3.2 时间复杂度计算示例: 3.2.1 示例1 3.2.2 示例2 3.2.3 示例3 3.2.4 示例4 3.2.6 示例6 4. 空间复杂度 4.1 空间复杂度计算示例 4.1.1 示例1 …

Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制

文章目录 Nacos配置中心源码总流程图NacosClient源码分析获取配置注册监听器 NacosServer源码分析配置dump配置发布 Nacos配置中心源码 总流程图 Nacos2.1.0源码分析在线流程图 源码的版本为2.1.0 &#xff0c;并在配置了下面两个启动参数&#xff0c;一个表示单机启动&#…

各种软件启动方式

各种软件启动方式 1. MySQL # 启动 service mysqld start # 关闭 service mysqld stop # 重启 service mysqld restart2. Redis # 启动 service redisd start # 关闭 service redisd stop3. nginx #启动 ./nginx #关闭 ./nginx -s quit #快速关闭 ./nginx -s stop # 重新加…