HEVC学习笔记11-gem5跑HM

Introduction HEVC学习笔记系列目录 GEM5是一款模块化的离散事件驱动全系统模拟器,它结合了M5和GEMS中最优秀的部

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

运行结果的全部文件下载

未登录用户
全部评论0
到底啦