HEVC学习笔记11-gem5跑HM

Introduction

HEVC学习笔记系列目录

GEM5是一款模块化的离散事件驱动全系统模拟器,它结合了M5和GEMS中最优秀的部分,是一款高度可配置、集成多种ISA和多种CPU模型的体系结构模拟器。M5是由Michigan大学开发的一款开源的多处理机模拟器,受到了业内的广泛关注,很多高水平论文都采用M5作为研究工具。另一方面,Wisconsin推出的GEMS能够对储存层次进行详细而灵活的模拟,包括对多种不同的cache一致性协议和互联模型的支持。目前的GEM5是M5和GEMS的一个紧耦合版本。
GEM5已经能够支持多种商用ISA,包括X86、ARM、ALPHA、MIPS、Power、SPARC等,并且能够在X86、ARM、ALPHA上加载操作系统。

用gem5测试HM可以获得很多关于cache的信息。
但是目前gem5不支持动态链接的程序,所以在编译的时候,需要静态链接。比如gcc -o test -static test.c

静态编译HM

只需要在多个makefile里添加-static即可。主要位置如下:build/linux/common/makefile.base文件的CPPFLAGS 行 其他makefile下可以添加在-lpthread后面。

 build/linux/app/TAppDecoder/makefile
 build/linux/app/TAppEncoder/makefile
 build/linux/common/makefile.base
 build/linux/lib/TAppCommon/makefile
 build/linux/lib/TLibCommon/makefile
 build/linux/lib/TLibDecoder/makefile
 build/linux/lib/TLibDecoderAnalyser/makefile
 build/linux/lib/TLibEncoder/makefile
 build/linux/lib/TLibVideoIO/makefile

以上是我改动的makefile。

make clean 
make -j4

重新make。

gem5运行HM

build/X86/gem5.opt configs/example/se.py --caches --l1d_size=32kB --l1i_size=32kB --l2cache --l2_size=256kB  -c /home/find/Documents/HM-dev/bin/TAppEncoderStatic -o " -c /home/find/Dropbox/gitoschina/HM-dev/bin/encoder_lowdelay_P_main.cfg -b Mobisode.bin -c /home/find/Dropbox/gitoschina/HM-dev/bin/Mobisode.cfg"

设置cache大小上述命令中也说明了。
-c则是表示gem5中要跑的程序,如果要跑的程序需要输入参数,则通过-o+""实现,只需要把要传入的命令参数全部写在""里即可。

运行结果

在我PC i5三代四核处理器上运行了两天以后,480×240的视频30帧终于跑出了结果。运行了三天以后,480P的视频跑了14帧,最终被我耐不住kill了。运行结果大体一样。

system.l2.ReadReq_miss_rate::cpu.inst        0.079577                       # miss rate for ReadReq accesses
system.l2.ReadReq_miss_rate::cpu.data        0.061511                       # miss rate for ReadReq accesses
system.l2.ReadReq_miss_rate::total           0.071960                       # miss rate for ReadReq accesses
system.l2.ReadExReq_miss_rate::cpu.data      0.134882                       # miss rate for ReadExReq accesses
system.l2.ReadExReq_miss_rate::total         0.134882                       # miss rate for ReadExReq accesses
system.l2.demand_miss_rate::cpu.inst         0.079577                       # miss rate for demand accesses
system.l2.demand_miss_rate::cpu.data         0.101774                       # miss rate for demand accesses
system.l2.demand_miss_rate::total            0.093288                       # miss rate for demand accesses
system.l2.overall_miss_rate::cpu.inst        0.079577                       # miss rate for overall accesses
system.l2.overall_miss_rate::cpu.data        0.101774                       # miss rate for overall accesses
system.l2.overall_miss_rate::total           0.093288

L2 的miss率是9.3%。
运行结果的全部文件下载

文章若未注明转载皆为原创,如需转载请注明本文原文地址http://www.findspace.name/easycoding/1764,文章markdown格式源码现已开放,欢迎转载。文章源码地址:https://github.com/FindHao/FindSpace.name Star

分享到:

Find

Find

新浪微博(FindSpace博客):QQ群:不安分的Coder(375670127) 不安分的Coder

You may also like...