有2种方式在gem5上运行SPLASH-2,即FS(full-system)模式和SE(syscall-emulation)模式
- 使用FS模式
最稳定的方法是使用PARMACS macros的一个Pthreads实现来编译benchmarks,然后链接标准Linux Pthreads library并在M5上以FS模式运行此二进制文件。
优点:
现实:你获得实际的Linux线程调度器来调度你的线程。
稳定性(和目前的SE模式相反...详见下面)
你能编译一个交叉编译器来在非Alpha平台上编译二进制()
缺点:
CPU限制:我们模拟的Tsunami平台仅支持4个CPU,通过打补丁扩展到64个
开销:你已经下载一个disk image,获得disk image的二进制,在M5上启动Linux。
详细运行步骤
下载
下载splash2。从SPLASH2下载SPLASH的补丁。
编译
跟着UDEL网站的指导。许多benchmarchs很容易编译。一些需要额外的工作。
radiosity: descend into glibdumb and glibps and ‘make’.
volrend: unarchive and build the libtiff; I had to modify its makefile by adding -DBSDTYPES in the CFLAGS复制
挂载模拟中使用的disk image,例如
sudo mount -o loop,offset=32256 linux-arm-ael.img /mnt/tmp
执行
接下来是基本的默认方式来运行benchmarks。若你为你的主机体系结构编译,你应该能够直接测试。
barnes: ./BARNES < input
fmm: uncompress the files in the inputs directory, then ./FMM < inputs/input.16384
ocean: ./OCEAN
radiosity: ./RADIOSITY -batch
raytrace: uncompess the files in the inputs directory. I had to run with additional memory (probably a data sizing issue with 64-bit machinery): ./RAYTRACE -m64 inputs/car.env
volrend: Uncompress the files in the inputs directory, then ./VOLREND 1 inputs/head (omit the .den extension, it is automatically appended in the code).
water-nsquared: ./WATER-NSQUARED < input
water-spatial: ./WATER-SPATIAL < input
- 使用SE(syscall-emulation)模式