本文來源電子發燒友社區,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2287285_1_1.html
前言
準備工作
整數運算性能測試Dhrystone
修改代碼
編譯運行
測試結果
結果對比
浮點運算性能測試whetstone
修改代碼
編譯運行
測試結果
結果對比
Linpack浮點
修改代碼
編譯運行
測試結果
結果對比
livermore數值計算
修改代碼
編譯運行
測試結果
結果對比
前言
能按照https://bbs.elecfans.com/jishu_2286643_1_1.html介紹的進行應用開發
下載代碼
http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz
解壓文件夾,并導入到開發板的~目錄下。
Dhrystone是于1984年由Reinhold P. Weicker設計的一套綜合的基準程序,該程序用來測試CPU(整數)計算性能。其輸出結果為每秒鐘運行Dhrystone的次數,即每秒鐘迭代主循環的次數。
代碼結構
代碼位于source_code文件夾下
common_64bit/
common_32bit
|
//getSecs()
local_time()
start_time()
end_time()
getDetails()
|
|
|
|
|
ldhrystone2/dhry_2.c
|
算法無需修改
|
|
|
|
|
ldhrystone2/dhry_1.c
|
main按需修改
|
|
|
|
|
l將common_64bit/cpuidh.h復制到dhrystone2下
l將common_64bit/cpuidc64.c復制到dhrystone2下
1.注釋掉int getDetails()函數,我們這里不獲取CPU對應的信息。
l修改dhry_1.c
因為沒有實現getDetails,注釋掉如下代碼.
#if 0
getDetails();
for (i=1; i<10; i++)
{
printf("%sn", configdata);
}
printf("n");
fprintf (Ap, " #####################################################nn");
for (i=1; i<10; i++)
{
fprintf(Ap, "%s n", configdata);
}
fprintf (Ap, "n");
printf("##########################################n");
#endif
如下地方語法錯誤
#endif "Register option Selected."改為
#endif // "Register option Selected."
前面添加接口函數申明
void local_time();
void start_time();
void end_time();
兩處printf ("Ptr_Comp: * %dn", (int) Ptr_Glob->Ptr_Comp);改為
printf ("Ptr_Comp: * %pn", Ptr_Glob->Ptr_Comp);
編譯運行
gcc *.c -o test
./test
打印如下
提高優化等級
gcc *.c -o test -O3
./test
打印如下
測試結果會添加到文件Dhry.txt中
測試結果
|
默認
|
-O3
|
DMIPS
|
627.69
|
1964.01
|
|
|
|
http://www.roylongbottom.org.uk/dhrystone%20results.htm
可以看到和Atom N455 32b接近。
浮點運算性能測試whetstone
修改代碼
代碼結構
代碼位于source_code文件夾下
common_64bit/
common_32bit
|
CPU相關信息獲取和時間測量接口
|
//getSecs()
local_time()
start_time()
end_time()
getDetails()
|
|
|
|
whetstone/whets.c
|
main按需修改
|
|
|
|
|
l將common_64bit/cpuidh.h復制到whetstone下
l將common_64bit/cpuidc64.c復制到whetstone下
1.注釋掉int getDetails()函數,我們這里不獲取CPU對應的信息。
lWhets.c
注釋掉以下代碼
#if 0
getDetails();
for (i=1; i<10; i++)
{
printf("%sn", configdata);
}
local_time();
printf("n");
printf("##########################################n");
printf("%s Precision C Whetstone Benchmark %s, %sn", Precision, opt, timedaa
y);
#endif
前面添加接口函數申明
void local_time();
void start_time();
void end_time();
在#include "cpuidh.h"后包含math.h
#include "cpuidh.h"
#include
編譯運行
gcc *.c -o test -lm
./test打印如下
提高優化等級
gcc *.c -o test -lm -O3
./test
打印如下
測試結果會記錄到文件whets.txt中
測試結果
默認
-O3
MWIPS
347.498
833.258
結果對比
http://www.roylongbottom.org.uk/whetstone%20results.htm
看到和Pentium III相當
Linpack是國際上使用最廣泛的測試高性能計算機系統浮點性能的基準測試。通過對高性能計算機采用高斯消元法求解一元N次稠密線性代數方程組的測試,評價高性能計算機的浮點計算性能。Linpack的結果按每秒浮點運算次數(flops)表示。
修改代碼
代碼結構
代碼位于source_code文件夾下
common_64bit/
common_32bit
CPU相關信息獲取和時間測量接口
//getSecs()
local_time()
start_time()
end_time()
getDetails()
linpack/linpack.c
main按需修改
l將common_64bit/cpuidh.h復制到linpack下
l將common_64bit/cpuidc64.c復制到linpack下
1.注釋掉int getDetails()函數,我們這里不獲取CPU對應的信息。
llinpack.c
注釋掉以下代碼
#if 0
getDetails();
for (i=1; i<10; i++)
{
printf("%sn", configdata);
}
printf("n");
printf("##########################################n");
#endif
前面添加接口函數申明
void local_time();
void start_time();
void end_time();
在#include "cpuidh.h"后包含string.h
#include "cpuidh.h"
#include
main原型函數添加返回類型int
gcc *.c -o test
./test打印如下
提高優化等級
gcc *.c -o test -O3
./test
打印如下
測試結果會記錄到文件Linpack.txt中
測試結果
默認
-O3
MFLOPS
40.19
123.77
http://www.roylongbottom.org.uk/linpack%20results.htm
和Celeron A相當
修改代碼
代碼結構
代碼位于source_code文件夾下
common_64bit/
common_32bit
CPU相關信息獲取和時間測量接口
//getSecs()
local_time()
start_time()
end_time()
getDetails()
livermore_loops/lloops.c
main按需修改
l將common_64bit/cpuidh.h復制到livermore_loops下
l將common_64bit/cpuidc64.c復制到livermore_loops下
1.注釋掉int getDetails()函數,我們這里不獲取CPU對應的信息。
llloops.c
注釋掉以下代碼
#if 0
getDetails();
for (i=1; i<10; i++)
{
printf("%sn", configdata);
}
printf("n");
fprintf (outfile, " #####################################################n\
n");
for (i=1; i<10; i++)
{
fprintf(outfile, "%s n", configdata);
}
fprintf (outfile, "n");
#endif
前面添加接口函數申明
void local_time();
void start_time();
void end_time();
在#include "cpuidh.h"后包含string.h
#include "cpuidh.h"
#include
main原型函數添加返回類型int
gcc *.c -o test -lm
./test打印如下
測試結果會記錄到文件LLloops.txt中
默認
-O3
MFLOPS
82.47
結果對比
http://www.roylongbottom.org.uk/livermore%20loops%20results.htm
與Pentium Pro相當
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
RISC-V
+關注
關注
45文章
2271瀏覽量
46133 -
賽昉科技
+關注
關注
3文章
152瀏覽量
14275
發布評論請先 登錄
相關推薦
預售啟動!昉·星光 2 AI套件正式發布,基于RISC-V構建AI算力
計算、工業智能、安全、機器人、網關路由、智能家居等領域應用提供最具性價比的高性能RISC-V人工智能解決方案。昉·星光2(VisionFiv
Ubuntu現已適配RISC-V單板計算機Milk-V Mars
近期,Canonical宣布優化的Ubuntu24.04鏡像已可用于RISC-V單板計算機Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載
信用卡大小的 RISC-V 單板計算機介紹
信用卡大小的 RISC-V 單板計算機 —— Mars
Mars 由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載賽昉科技
發表于 04-12 16:39
賽昉科技VisionFive 2生態進展雙周報(2.1-2.29)
Image for VisionFive 2)
社區開發者發布4篇【昉·星光 2高性能RISC-V單板計算機體驗】系列文章,內容包括:為U
發表于 02-29 15:45
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
下載并啟動容器
HomeAssisatant
發表于 02-21 18:07
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
目的
為了更好的利用
發表于 02-21 17:54
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
前言
很感謝
發表于 02-21 17:49
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接 一、官方資料 RISC-V官網: [https://rvspace.org]
評論