本文来源电子发烧友社区,作者:李先生, 帖子地址: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
+关注
关注
49文章
2946浏览量
53534 -
赛昉科技
+关注
关注
3文章
183浏览量
15596
发布评论请先 登录
相关推荐
热点推荐
昉·星光开发板使用基础和GPIO点灯
电脑连接到昉·星光开发板进行操作和编程。昉·星光开发板也支持通过HDMI连接到显示器进行操作,但本课程的内容,主要为通过电脑进行远程操作。
三、了解
发表于 03-26 07:51
RISC-V实现数据中心应用突破,赛昉科技BMC芯片重磅亮相
电子发烧友原创 章鹰 近期,在珠海举办的RISC-V产业大会上,赛昉科技展示了面向数据中心、边缘计算及智能终端的全栈产品与成熟应用,其中一款产品引起了记者的注意,这款BMC芯片在11月
2025 RISC-V产业发展大会 | 赛昉科技全景展示规模化商用成果
2025年11月24日,RISC-V产业发展大会在珠海开幕。赛昉科技以“推动RISC-V规模化商用”为核心主题,重点展示了面向数据中心、边缘计算
【作品合集】赛昉科技VisionFive 2单板计算机开发板测评
赛昉科技VisionFive 2单板计算机开发板测评作品合集
产品介绍:
昉·星光 2是全球首款集成了3D GPU的高
发表于 09-04 09:08
5 款 RISC-V 单板计算机测试:性能、基准测试、特性及见解
倘若计算的未来并非被专有架构所垄断,那会怎样?想象一下这样一个世界:开发者和业余爱好者都能利用开源硬件的力量自由地构建、创新和实验。现在,让我们走进RISC-V单板计算机(SBC)的世界——一个正在
赛昉科技入驻RuyiSDK开发者社区,双平台协同推进RISC-V生态
赛昉科技(StarFive)正式入驻RuyiSDK开发者社区,携手推动RISC-V技术创新。后续,赛昉科技的技术突破与生态进展将同步在RVs
赛昉科技徐滔:以精准场景牵引,RISC-V抢滩数据中心百万颗市场
7月16-19日,第五届RISC-V中国峰会在上海张江科学会堂成功举办。国内领先的RISC-V厂商赛昉科技携多款重磅产品亮相,集中展示自研创新技术和成果。峰会期间,
赛昉科技联合合见工软实现国产一致性NoC IP与RISC-V核在大规模网络中的适配
2025年7月24日——中国RISC-V软硬件生态领导者赛昉科技与中国数字EDA/IP龙头企业上海合见工业软件集团有限公司(简称“合见工软”)共同宣布双方的突破性技术合作成果。赛
【VisionFive 2单板计算机试用体验】VisionFive 2一个霸气的游戏机
单板计算机,搭载昉·惊鸿-7110(型号:JH-7110)RISC-V应用处理器,拥有极强的计算能力和图形处理能力。开源的昉·
发表于 07-13 20:41
【VisionFive 2单板计算机试用体验】RISC-V架构卡片计算机初体验
2h........无奈)
参考文献:
全球首款集成3D GPU的高性能量产RISC-V 单板计算机,昉·星光 2 开发实践![全球首款集成
发表于 07-06 23:28
权威评测:Orange Pi RV2等5 款 RISC-V 单板计算机测试-性能、基准测试、功能和见解
如果计算的未来不是被锁定在专有架构上,那会怎样?想象一下,在这个世界上,开发人员和业余爱好者都可以利用开源硬件的强大功能自由构建、创新和实验。进入RISC-V单板计算机(SBC)领域——一个新兴
【VisionFive 2单板计算机试用体验】 + 开箱体验
在x86与ARM架构主导的单板计算机市场,中国团队打造的VisionFive 2(防星光2)如同一颗新星,凭借开源开放的RISC-V架构和成熟的桌面体验,为开发者与极客提供了全新的选择。经过
发表于 06-27 09:06
【赛昉科技昉·星光RISC-V单板计算机试用体验】性能测试之花式360°无死角跑分
评论