Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
nexus-am
提交
3ba0a11b
N
nexus-am
项目概览
OpenXiangShan
/
nexus-am
大约 1 年 前同步成功
通知
2
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,发现更多精彩内容 >>
提交
3ba0a11b
编写于
4月 06, 2023
作者:
W
William Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
maprobe: disable random access test by default
上级
d19b76e3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
4 deletion
+14
-4
apps/maprobe/latency-test.c
apps/maprobe/latency-test.c
+11
-3
apps/maprobe/main.c
apps/maprobe/main.c
+3
-1
未找到文件。
apps/maprobe/latency-test.c
浏览文件 @
3ba0a11b
...
@@ -322,6 +322,15 @@ float test_random_access_latency(uint64_t num_access, uint64_t test_range, uint6
...
@@ -322,6 +322,15 @@ float test_random_access_latency(uint64_t num_access, uint64_t test_range, uint6
register
uint64_t
result
=
0
;
register
uint64_t
result
=
0
;
// _perf_print_timer();
// _perf_print_timer();
uint64_t
total_access
=
num_access
*
iter
;
if
(
test_range
>
total_access
*
8
*
_PERF_CACHELINE_SIZE_BYTE
)
{
printf
(
"total access size %ldKB less than test range %ldKB, ignored
\n
"
,
total_access
*
8
*
_PERF_CACHELINE_SIZE_BYTE
/
KB
,
test_range
/
KB
);
return
0
;
}
// alloc memory for random access addr array and data
// alloc memory for random access addr array and data
assert
(
test_align
>=
8
*
BYTE
);
assert
(
test_align
>=
8
*
BYTE
);
// assert(size >= test_align);
// assert(size >= test_align);
...
@@ -347,13 +356,12 @@ float test_random_access_latency(uint64_t num_access, uint64_t test_range, uint6
...
@@ -347,13 +356,12 @@ float test_random_access_latency(uint64_t num_access, uint64_t test_range, uint6
_perf_end_timer
();
_perf_end_timer
();
}
}
// _perf_print_timer();
// _perf_print_timer();
uint64_t
total_access
=
num_access
*
iter
;
float
acpa
=
(
float
)
perf
.
cycle
/
total_access
;
// average cycle per access
float
acpa
=
(
float
)
perf
.
cycle
/
total_access
;
// average cycle per access
if
(
to_csv
)
{
if
(
to_csv
)
{
printf
(
"%ld, %f, %d, %ld, %ld
\n
"
,
test_range
,
acpa
,
iter
,
total_access
,
perf
.
cycle
);
printf
(
"%ld, %f, %d, %ld, %ld
\n
"
,
test_range
,
acpa
,
iter
,
total_access
,
perf
.
cycle
);
}
else
{
}
else
{
printf
(
"range %ldKB, access
cover %ldKB
(%d iters) random read latency %f, throughput %f B/cycle (%ld samples, %ld cycles), align %ldB, %s
\n
"
,
printf
(
"range %ldKB, access
%ldKB (cover %ldKB)
(%d iters) random read latency %f, throughput %f B/cycle (%ld samples, %ld cycles), align %ldB, %s
\n
"
,
test_range
/
KB
,
total_access
*
8
*
_PERF_CACHELINE_SIZE_BYTE
/
KB
,
iter
,
acpa
,
total_access
*
8
*
BYTE
/
(
float
)
perf
.
cycle
,
total_access
,
perf
.
cycle
,
test_align
,
test_range
/
KB
,
total_access
*
8
*
BYTE
/
KB
,
total_access
*
8
*
_PERF_CACHELINE_SIZE_BYTE
/
KB
,
iter
,
acpa
,
total_access
*
8
*
BYTE
/
(
float
)
perf
.
cycle
,
total_access
,
perf
.
cycle
,
test_align
,
pregen_addr
?
"pregen addr"
:
"runtime addr"
pregen_addr
?
"pregen addr"
:
"runtime addr"
);
);
}
}
...
...
apps/maprobe/main.c
浏览文件 @
3ba0a11b
...
@@ -187,6 +187,8 @@ void latency_test_example()
...
@@ -187,6 +187,8 @@ void latency_test_example()
void
l2_l3_pressure_test
()
void
l2_l3_pressure_test
()
{
{
_perf_calibrate
();
printf
(
"L2 and L3 same set pressure test:
\n
"
);
for
(
int
i
=
1
;
i
<
16
;
i
++
)
{
for
(
int
i
=
1
;
i
<
16
;
i
++
)
{
printf
(
"ways accessed: %d
\n
"
,
i
);
printf
(
"ways accessed: %d
\n
"
,
i
);
test_linear_access_latency_simple
(
_PERF_ADDR_STRIDE_L2_SAME_SET
*
i
,
_PERF_ADDR_STRIDE_L2_SAME_SET
,
64
,
0
);
test_linear_access_latency_simple
(
_PERF_ADDR_STRIDE_L2_SAME_SET
*
i
,
_PERF_ADDR_STRIDE_L2_SAME_SET
,
64
,
0
);
...
@@ -240,7 +242,7 @@ int main()
...
@@ -240,7 +242,7 @@ int main()
generate_linear_access_latency_matrix
(
_PERF_CACHELINE_SIZE_BYTE
);
generate_linear_access_latency_matrix
(
_PERF_CACHELINE_SIZE_BYTE
);
generate_pointer_tracing_latency_matrix
(
8
*
BYTE
);
generate_pointer_tracing_latency_matrix
(
8
*
BYTE
);
generate_pointer_tracing_latency_matrix
(
_PERF_CACHELINE_SIZE_BYTE
);
generate_pointer_tracing_latency_matrix
(
_PERF_CACHELINE_SIZE_BYTE
);
generate_random_access_latency_matrix
();
//
generate_random_access_latency_matrix();
generate_replacement_test_matrix
();
generate_replacement_test_matrix
();
// matrix_print_example();
// matrix_print_example();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录