前言
赛昉科技昉·星光RISC-V单板计算机,是一款高性价比,可运行桌面Linux的64位RISC-V单板计算机。使用的是JH7100 多核RISC-V 64位CPU。 一般拿到手机或者电脑之后我们会跑个分,拿到开发板我们同样也可以跑跑分,从整数性能,浮点性能,基准测试等方面360°无死角跑分,看看打败了全网多少网友。 准备工作
能按照https://bbs.elecfans.com/jishu_2286643_1_1.html介绍的进行应用开发 下载代码 http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz 解压文件夹,并导入到开发板的~目录下。
整数运算性能测试Dhrystone
Dhrystone是于1984年由Reinhold P. Weicker设计的一套综合的基准程序,该程序用来测试CPU(整数)计算性能。其输出结果为每秒钟运行Dhrystone的次数,即每秒钟迭代主循环的次数。
修改代码
代码结构 代码位于source_code文件夹下 common_64bit/ common_32bit | CPU相关信息获取和时间测量接口 | //getSecs() 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中
测试结果
结果对比
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对应的信息。 l Whets.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中
测试结果
结果对比
http://www.roylongbottom.org.uk/whetstone%20results.htm 看到和Pentium III相当
Linpack浮点
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对应的信息。 l linpack.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中
测试结果
结果对比 http://www.roylongbottom.org.uk/linpack%20results.htm 和Celeron A相当
livermore数值计算
修改代码
代码结构 代码位于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对应的信息。 l lloops.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中
测试结果
结果对比 http://www.roylongbottom.org.uk/livermore%20loops%20results.htm 与Pentium Pro相当
|