Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
nexus-am
提交
16f3b2bd
N
nexus-am
项目概览
OpenXiangShan
/
nexus-am
10 个月 前同步成功
通知
0
Star
21
Fork
25
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nexus-am
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
16f3b2bd
编写于
6月 15, 2022
作者:
W
William Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
apps: add DMIPS calc for dhrystone
上级
1c79a69e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
6 deletion
+26
-6
apps/dhrystone/dry.c
apps/dhrystone/dry.c
+26
-6
未找到文件。
apps/dhrystone/dry.c
浏览文件 @
16f3b2bd
...
...
@@ -353,11 +353,12 @@
#include <am.h>
#include <klib.h>
#include <klib-macros.h>
#include <csr.h> // read csr for ipc
#define Start_Timer() Begin_Time = uptime()
#define Stop_Timer() End_Time = uptime()
#define NUMBER_OF_RUNS
2
/* Default number of runs */
#define NUMBER_OF_RUNS
1000
/* Default number of runs */
#define PASS2
#ifdef NOSTRUCTASSIGN
...
...
@@ -743,6 +744,10 @@ Boolean check(int cond) {
if
(
!
cond
)
pass
=
false
;
return
cond
;
}
uint64_t
instrcnt
=
0
;
uint64_t
cycle
=
0
;
int
main
()
/*****/
...
...
@@ -761,7 +766,7 @@ int main ()
_ioe_init
();
Number_Of_Runs
=
NUMBER_OF_RUNS
;
Number_Of_Runs
=
NUMBER_OF_RUNS
;
/* Initializations */
...
...
@@ -794,6 +799,8 @@ int main ()
/***************/
Start_Timer
();
instrcnt
=
csr_read
(
CSR_MINSTRET
);
cycle
=
csr_read
(
CSR_MCYCLE
);
for
(
Run_Index
=
1
;
Run_Index
<=
Number_Of_Runs
;
++
Run_Index
)
{
...
...
@@ -852,6 +859,11 @@ int main ()
Done
=
true
;
}
cycle
=
csr_read
(
CSR_MCYCLE
)
-
cycle
;
instrcnt
=
csr_read
(
CSR_MINSTRET
)
-
instrcnt
;
printf
(
"cycle %d inst %d ipc %lf
\n
"
,
cycle
,
instrcnt
,
(
float
)
instrcnt
/
cycle
);
if
(
!
check
(
Int_Glob
==
5
))
{
printf
(
"Int_Glob: %d
\n
"
,
Int_Glob
);
printf
(
" should be: %d
\n
"
,
5
);
...
...
@@ -937,11 +949,19 @@ int main ()
printf
(
" should be: DHRYSTONE PROGRAM, 2'ND STRING
\n
"
);
}
printf
(
"Finished in %d ms
\n
"
,
(
int
)
User_Time
);
float
HZ
=
2000000000
;
float
Dhrystones_Per_Second
=
((
float
)
HZ
*
(
float
)
Number_Of_Runs
)
/
(
float
)
cycle
;
float
Dhrystones_Per_MHZ
=
(
1000000
*
(
float
)
Number_Of_Runs
)
/
(
float
)
cycle
;
printf
(
"Freq is set to %f HZ
\n
"
,
HZ
);
printf
(
"==================================================
\n
"
);
printf
(
"Dhrystone %s %d Marks
\n
"
,
pass
?
"PASS"
:
"FAIL"
,
880900
/
(
int
)
User_Time
*
NUMBER_OF_RUNS
/
500000
);
printf
(
" vs. 100000 Marks (i7-7700K @ 4.20GHz)
\n
"
);
printf
(
"Dhrystone %s
\n
"
,
pass
?
"PASS"
:
"FAIL"
);
printf
(
"%f Dhrystones_Per_Second
\n
"
,
Dhrystones_Per_Second
);
printf
(
"%f DMIPS
\n
"
,
Dhrystones_Per_Second
/
1757
);
printf
(
"%f DMIPS/MHZ
\n
"
,
Dhrystones_Per_MHZ
/
1757
);
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录