码迷,mamicode.com
首页 > 其他好文 > 详细

使用llcbench测试缓存性能

时间:2015-01-31 14:52:16      阅读:1178      评论:0      收藏:0      [点我收藏+]

标签:mips   处理器   自己动手写cpu   开源   llcbench   

陆续写些关于新书《自己动手写CPU》的博客,本篇主要是讲解如何使用llcbench测试缓存性能。


LLCbench (底层表征基准测试 Low-Level Characterization Benchmarks) 是一个基准测试工具,集成了 MPBench, CacheBench, 和 BLASBench 测试方法。这里只使用其中的CacheBench测试缓存性能。

在http://icl.cs.utk.edu/projects/llcbench/llcbench.tar.gz下载LLCbench。

然后解压缩,以/root/gem5/llcbench为例。打开终端,进入该路径,输入make,会出现如下提示

Please use one of the following targets:

        alpha
        alpha-mpich
        linux-lam
        linux-mpich
        o2000
        pow2
        pow3
        ppc
        solaris
        solaris-mpich
        t3e
        reconfig (to bring this menu up again)
在这里选择linux-lam,所以输入

make linux-lam

显示如下结果:

ln -s conf/sys.linux-lam sys.def

再次输入make,显示如下:

Please use one of the following targets:

For all three : compile, run, script, graph, clean, clobber, reconfig
For BlasBench : blas-bench, blas-run, blas-script, blas-graph
For CacheBench: cache-bench, cache-run, cache-script, cache-graph
For MPBench   : mp-bench, mp-run, mp-script, mp-graph

clean: removes object files and leaves result files
clobber: removes binary files and leaves result files
distclean: removes everything!
因为是三个工具的和集,所以输入make compile会编译全部三个软件,笔者在make compile的时候发现编译BlasBench会报错,提示找不到g77,CentOS7没有g77安装包,于是决定只编译CacheBench,所以输入如下命令:

make cache-bench
然后输入:

make bench-run
这样就开始测试了,大约需要等待40分钟左右,在这个过程中,最好不要操作计算机,同时在开始这个测试之前,最好关掉一些不用的程序,笔者第一次测试的时候,就因为内存不足,而失败,提示cachebench: cachebench.c:712: do_memory_copy: Assertion `y = (void *)malloc(memsize)‘ failed,后来关掉了耗内存的firefox,测试顺利结束。

测试过程显示如下:

cd cachebench; make run
make[1]: 进入目录“/root/gem5/llcbench/cachebench”
ln -s ../results results
Measuring Read...
./cachebench  -m 29 -e 1 -x 2 -d 5 -r > results/localhost.localdomain-x86_64_cache_read.dat
Measuring Write...
./cachebench  -m 29 -e 1 -x 2 -d 5 -w > results/localhost.localdomain-x86_64_cache_write.dat
Measuring RMW...
./cachebench  -m 29 -e 1 -x 2 -d 5 -b > results/localhost.localdomain-x86_64_cache_rmw.dat
Measuring Tuned Read...
./cachebench  -m 29 -e 1 -x 2 -d 5 -tr > results/localhost.localdomain-x86_64_cache_handread.dat
Measuring Tuned Write...
./cachebench  -m 29 -e 1 -x 2 -d 5 -tw > results/localhost.localdomain-x86_64_cache_handwrite.dat
Measuring Tuned RMW...
./cachebench  -m 29 -e 1 -x 2 -d 5 -tb > results/localhost.localdomain-x86_64_cache_handrmw.dat
Measuring memset()...
./cachebench  -m 29 -e 1 -x 2 -d 5 -s > results/localhost.localdomain-x86_64_cache_memset.dat
Measuring memcpy()...
./cachebench  -m 29 -e 1 -x 2 -d 5 -p > results/localhost.localdomain-x86_64_cache_memcpy.dat
可见,实际是运行了八次,分别是read、write、rmw、handread、handwrite、handrmw、memset、memcpy。

然后输入命令:

 make cache-script

然后输入命令:

 make cache-graph

如果出现“ gnuplot: 未找到命令” 的错误,那是因为没有安装gnuplot的缘故,使用yum install gnuplot安装即可,然后再次运行上面的make caceh-graph命令,即可得到图形结果。

cd cachebench; make graph
make[1]: 进入目录“/root/gem5/llcbench/cachebench”
cd results; gnuplot < localhost.localdomain-x86_64_cache.gp > localhost.localdomain-x86_64_cache.ps

Memory heirarchy graph is in results/localhost.localdomain-x86_64_cache.ps

make[1]: 离开目录“/root/gem5/llcbench/cachebench”

笔者的结果如下:

技术分享

可以发现在32KB的时候有一个明显的拐点,使用 lscpu 命令查看系统的缓存情况,显示如下:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
座:                 1
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              23
型号名称:        Pentium(R) Dual-Core  CPU      E5800  @ 3.20GHz
步进:              10
CPU MHz:             3203.000
BogoMIPS:            6384.21
虚拟化:           VT-x
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           2048K
NUMA 节点0 CPU:    0,1

一级缓存正是32KB。在1级cache失效的时候,二级cache发挥了作用,所以图中在32KB到512KB、1MB之间还有一个稍微平滑的阶段,过了这个阶段之后,优惠出现了一个拐点。

有一一个疑问:我的处理器的二级缓存是2MB,是指令和数据共用,按理说应该在2MB左右出现拐点才对,为何实验结果在512KB-1MB之间就出现了拐点?

使用llcbench测试缓存性能

标签:mips   处理器   自己动手写cpu   开源   llcbench   

原文地址:http://blog.csdn.net/leishangwen/article/details/43339887

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!