本文來源電子發燒友社區,作者:李先生, 帖子地址: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
|
CPU相關信息獲取和時間測量接口
|
//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
+關注
關注
46文章
2477瀏覽量
48257 -
賽昉科技
+關注
關注
3文章
165瀏覽量
14745
發布評論請先 登錄
相關推薦
熱點推薦
共建生態,賦能應用 | 賽昉科技精彩亮相中國RISC-V生態大會
2025中國RISC-V生態大會于近日在北京圓滿落幕。大會以“共建生態,共享未來”為主題,匯聚了中外產學研界各方代表,共同探討RISC-V的最新發展趨勢和產業機遇。作為中國RISC-V軟硬件生態

賽昉科技邀您共聚2025中國RISC-V生態大會,共探智能家居與教育新未來
2月27日至28日,2025中國RISC-V生態大會將在北京中關村國際創新中心隆重舉行。作為RISC-V生態的深度參與者,賽昉科技將出席此次會議,并在“智能家居

賽昉科技RISC-V家庭云解決方案:NAS存儲性能升級,隱私安全雙保障
(VisionFive2)單板計算機,推出全新RISC-V家庭云(NAS)解決方案,為用戶提供高性能、高安全性的私有云存儲服務,滿足家庭及輕量級企業場景需求。方案亮點01高性能硬件支持

首屆RISC-V產業發展大會成功舉辦,賽昉攜手產業伙伴共繪RISC-V新藍圖
12月28日,由中國電子工業標準化技術協會RISC-V工作委員會(以下簡稱“RISC-V工作委員會”)主辦的首屆“RISC-V產業發展大會”在北京成功舉辦。作為推動RISC-V生態發展

賽昉科技亮相ICCAD-Expo 2024,共探RISC-V技術最新發展
與會觀眾共探RISC-V技術的最新發展和行業應用。RISC-V架構的開放性和靈活性使其成為中國芯片行業的重要機遇。賽昉科技資深銷售總監周杰在“IP與IC設計服務”專

賽昉科技發布全新RISC-V處理器內核Dubhe-83
RISC-V軟硬件生態企業賽昉科技近日宣布,正式推出其全新RISC-V處理器內核——Dubhe-83(昉?天樞-83),該內核專為AI應用與
賽昉科技發布全新RISC-V CPU IP,符合RVA23規范,賦能AI應用與高效計算
2024年12月10日,中國RISC-V軟硬件生態領導者賽昉科技正式推出全新RISC-V處理器內核——昉·天樞-83(Dubhe-83),賦

賽昉聯合國芯推出高性能AI MCU芯片,實現RISC-V+AI新應用
近日,賽昉科技與蘇州國芯科技有限公司(以下簡稱“國芯科技”)合作研發的高性能AIMCU芯片產品CCR7002已成功通過了內部性能和功能測試,

預售啟動!昉·星光 2 AI套件正式發布,基于RISC-V構建AI算力
計算、工業智能、安全、機器人、網關路由、智能家居等領域應用提供最具性價比的高性能RISC-V人工智能解決方案。昉·星光2(VisionFiv

賽昉科技產品亮相RISC-V開源創新中心,雙方達成戰略合作
RISC-V開源創新中心:“我們非常高興能與賽昉科技公司建立戰略合作伙伴關系。賽昉科技的技術創新,結合中心的教育資源,將為雙方帶來巨大的協同效應。”

如何讓RISC-V企業賺錢?賽昉科技展現全場景RISC-V解決方案
今年的RISC-V中國峰會,圓桌論壇的主題格外引人注目——如何讓RISC-V企業賺錢?賽昉科技給出的答案是“應用”。如果把RISC-V浪潮比

賽昉科技RVspace生態社區雙周報(8月刊)
持續與各方伙伴攜手共建RISC-V生態社區,為RISC-V生態建設貢獻力量。rvspace.orgRVspace社區動態01將VisionFive2單板計算機改造為

Ubuntu現已適配RISC-V單板計算機Milk-V Mars
近期,Canonical宣布優化的Ubuntu24.04鏡像已可用于RISC-V單板計算機Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載

評論