剑客
关注科技互联网

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%。

运行结果的全部文件下载

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址