OK527N-C開發板-簡單的性能測試

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 ./buildcp -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-gccmain:*.o${CC} -o dhry2_64 *.o${CC} -O2 -o dhry22_64 *.o${CC} -O3 -o dhry23_64 *.o*.o:*.c${CC} -g -c *.cclean: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-gccmain:${CC} stream.c -o streamclean:rm -f *.o stream

編譯執行后得到可執行文件stream,將其復制到板卡上并執行
在這里插入圖片描述

此外,在編譯程序時還可以啟用-fopenmp選項,它會告訴編譯器生成能利用多線程的代碼,從而可以并行地執行內存讀取和寫入操作,從而更好地模擬真實應用的負載情況,因為現代應用程序往往利用了多核架構的并行處理能力。因此,啟用-fopenmp可以得到更接近實際工作負載下的內存帶寬測量值。啟用-fopenmp選項后的測試結果如下:
在這里插入圖片描述

可以看到板卡的內存性能也很不錯。
之后我們修改Makefile來查看不同編譯優化等級的影響,

CC=aarch64-none-linux-gnu-gccmain:${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 stream3clean: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.pswp.cn/web/38238.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38238.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38238.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CPU占用率飆升至100%:是攻擊還是正常現象?

在運維和開發的日常工作中,CPU占用率突然飆升至100%往往是一個令人緊張的信號。這可能意味著服務器正在遭受攻擊,但也可能是由于某些正常的、但資源密集型的任務或進程造成的。本文將探討如何識別和應對服務器的異常CPU占用情況,并通過Python…

魔行觀察-探魚·鮮青椒爽麻烤魚-開關店監測-時間段:2013年1月 至 2024年6月

今日監測對象:探魚鮮青椒爽麻烤魚,監測時間段:2011年1月 至 2024年6月 本文用到數據源免費獲取地址 魔行觀察http://www.wmomo.com/ 品牌介紹: 探魚建立了產、供、銷一體全鏈條式供應鏈體系,并在低緯珠江口特設潮汐…

大公司圖紙管理的未來趨勢

隨著科技的不斷發展,大公司圖紙管理正朝著更加智能化、自動化和協同化的方向發展。以下是大公司圖紙管理的未來趨勢預測。 1. 智能化管理 利用人工智能和機器學習技術,實現圖紙的自動分類、標注和檢索。通過智能分析算法,預測圖紙的使用趨勢…

NSSCTF-Web題目19(數據庫注入、文件上傳、php非法傳參)

目錄 [LitCTF 2023]這是什么?SQL !注一下 ! 1、題目 2、知識點 3、思路 [SWPUCTF 2023 秋季新生賽]Pingpingping 4、題目 5、知識點 6、思路 [LitCTF 2023]這是什么?SQL !注一下 ! 1、題目 2、知識…

基于Vue的MOBA類游戲攻略分享平臺

你好呀,我是計算機學姐碼農小野!如果有相關需求,可以私信聯系我。 開發語言:Java 數據庫:MySQL 技術:Java技術、SpringBoot框架、B/S模式、Vue.js 工具:MyEclipse、MySQL 系統展示 首頁 用…

在 Windows 上,使用 icacls 命令讓apache 用戶有權訪問

調試免費云服務器,三豐云,用戶權限過程。 在 Windows 上,icacls 命令是一個非常強大的工具,用于修改文件和目錄的權限。然而,需要注意的是,Windows 默認的 Web 服務器(如 IIS)通常運…

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

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 語法參考 lstrip()方法用于截掉字符串左邊的空格或指定的字符。lstrip()方法的語法格式如下: str.lstrip([chars]) 參數說明&#xff…

【算法】Merge Sort 合并排序

Merge Sort概述 分而治之算法 遞歸地將問題分解為多個子問題,直到它們變得簡單易解 將解決方案組合起來,解決原有問題 O(n*log(n))運行時間 基于比較的算法的最佳運行時間 一般原則 合并排序: 1. 將數…

elasticsearch鏡像化安裝部署

1、鏡像安裝 docker network create --driver bridge --subnet192.128.0.0/10 --gateway192.128.1.1 mynetwork docker run -d --netmynetwork --ip192.128.10.1 -p 1000:22 --name redhat-es01 -it c70d72aaebb4 /bin/bash #拉取鏡像 docker pull elasticsearch:7.7.0 #啟動…

【瞎折騰日常】服務器的cpu飆高到1000%了怎么破

一、故障起因 起因是用戶反饋系統很卡,我登錄普羅米修斯一看,發現docker部署得集群下的一個java應用服務器cpu爆了,直接沖到了1000%以上了,接著就是各種接口超時報警等,趕緊打開對應的服務器查看進程情況,這會使用jstack和top命令定位哪個線程占用的cpu比較大,定位代碼問…

橢流線法設計配光器

橢流線法設計配光器 一、設計原理 1、邊光原理 邊光原理是非成像光學中的一個基礎原理,其內容可以表述為:來自光源邊緣的光線經過若干有序正則光學曲面后依然落在投射光斑的邊緣,而來自光源內部的光線也將落在光斑內部。這里的邊緣包含兩層…

PyTorch(七)模型的保存與加載

#d 兩種保存方式比較 僅保存模型參數 優點: 更加靈活,只保存模型的參數,不保存模型的結構,可以在不同的模型結構中加載參數(只要參數匹配)。文件大小通常比保存整個模型小。安全性更高,因為不直接執行pic…

機械拆裝-基于Unity-總體設計

前言 在工業設計和制造領域,零部件的拆裝技術是一個重要的應用場景,比如我們在工程訓練課程中經歷的摩托車發動機拆裝課程,是機械類學生的必修課程。虛擬拆裝系統模擬和仿真了模型的拆裝過程,雖然SolidWorks等機械設計軟件能夠解決…

性能調優 性能監控

1.影響性能考慮點包括: 數據庫、應用程序、中間件(tomcat、nginx)、網絡和操作系統等方面。 首先考慮自己的應用屬于 CPU密集型 還是 IO密集型 cpu密集型 計算,排序,分組查詢,各種算法 IO密集型 網絡傳輸,磁盤讀…

大創項目推薦 題目:基于機器視覺opencv的手勢檢測 手勢識別 算法 - 深度學習 卷積神經網絡 opencv python

文章目錄 1 簡介2 傳統機器視覺的手勢檢測2.1 輪廓檢測法2.2 算法結果2.3 整體代碼實現2.3.1 算法流程 3 深度學習方法做手勢識別3.1 經典的卷積神經網絡3.2 YOLO系列3.3 SSD3.4 實現步驟3.4.1 數據集3.4.2 圖像預處理3.4.3 構建卷積神經網絡結構3.4.4 實驗訓練過程及結果 3.5 …

zabbix報警機制,主動監控

zabbix思路流程 主動監控 默認zabbix使用的是被動監控,主被動監控都是針對被監控主機而言的。被動監控:Server向Agent發起請求,索取監控數據。此種模式常用主動監控:Agent向Server發起連接,向Server匯報 配置web2使用…

STM32智能家居掌上屏實戰:從WiFi連接到MQTT通信,打造你的家庭物聯網網關

摘要: 本文深入探討一種基于STM32的智能家居掌上屏設計方案,詳細闡述其硬件架構、軟件設計以及通信協議等關鍵技術細節。該方案利用WiFi構建局域網,實現與各類傳感器、執行器的便捷交互,并通過TFT彩屏提供直觀的控制和數據展示,旨…

[數據庫原理]事務

如有錯誤,歡迎指正!!! 期末考了沖突可串行化

動態順序表實現通訊錄

系列文章目錄 【數據結構】順序表 文章目錄 系列文章目錄前言一、通訊錄的功能要求二、通訊錄的代碼實現1. 新建文件2. 創建通訊錄的結構體3. 對順序表文件進行修改4. 通訊錄具體功能實現4.1. 通訊錄的初始化和銷毀4.2. 增加聯系人信息(尾插)4.3. 查找指…

SpringBoot + 虛擬線程,性能炸裂!

一、什么是虛擬線程 虛擬線程是Java19開始增加的一個特性,和Golang的攜程類似,一個其它語言早就提供的、且如此實用且好用的功能,作為一個Java開發者,早就已經望眼欲穿了。 二、虛擬線程和普通線程的區別 “虛擬”線程&#xf…