GEM5 Parsec实用命令行和结果

#0 提供详细的命令行和记录结果。

Parsec

mesi 两层协议

首先是编译运行: 一开始不知道ruby的check point 需要moeshi hammer,用的默认的x86. 下图可以看到默认的是mesihammer在这里插入图片描述

无checkpoint运行结果。

这里包括了系统启动的部分,本来可以跳过的。但是作为起步阶段,跑通大于省时间,跑一晚睡醒也能看到结果了。

#先是要编译 对应的gem5.opt
 sudo docker run --volume /home/yz/myprojects/2024GEM5/parsec-tests/yzmodifiedgem5/:/gem5 --rm -it gcr.io/gem5-test/ubuntu-22.04_all-dependencies:v22-1
scons build/X86/gem5.opt -j 16  #注意这个是默认的mesi
# 如果你想我一样,build_opts  内写了新的文件,例如 X86_MOESI_hammeryz1wVCBuffer
scons build/X86_MOESI_hammeryz1wVCBuffer/gem5.opt -j 16
blacksholes + timing simple: buffer 1w & buffer 4

然后是运行这个硬件架构对应的 gem5.opt。 下面是blacksholes

 ./build/X861wVCBufferDepth/gem5.opt -d m5out/20241001/buffer1w/Blackholes  configs/deprecated/example/fs.py --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec     --cpu-type=TimingSimpleCPU      --num-cpus=64   --ruby   --network=garnet   --topology=Mesh_XY   --mesh-rows=8 --num-dirs=64  --num-l2caches=64  --script=configs/yz2023Nov/yzfs_parsecBlackholes.script

如果是buffer 10000:

花了14小时,26g内存。
在这里插入图片描述
ruby的一些统计数据如下
在这里插入图片描述

roi只有0.068s,但是我们统计的是15s。我们需要后续看一下这个image里的parsec binary。 应该是没有加m5 op的操作,比如dumpsstats和m5exit之类的,导致统计的是整体的。
在这里插入图片描述

如果是buffer4 这里我跑在一个服务器上,cpu比较老频率也只有3.3g,用了20多个小时:
在这里插入图片描述

在这里插入图片描述
buffer4的情况,总的roi时间是一样的, real 和user的时间不同。
在这里插入图片描述

插曲: buffer4 默认配置在两个电脑上的验证:

mesi blacksholes没有checkpoint,我的intel 10700kpc上:
在这里插入图片描述
mesi blacksholes没有checkpoint,我的服务器上:

在这里插入图片描述

mesi blacksholes没有checkpoint,我的intel 10700kpc上:
在这里插入图片描述

mesi blacksholes没有checkpoint,我的服务器上:
在这里插入图片描述

两个是一摸一样的,一方面证明我在两个上用的版本是一样,一方面证明没有随机性。

bodytrack + timing simple: buffer 1w & buffer 4
./build/X861wVCBufferDepth/gem5.opt -d m5out/20241001/buffer1w/Bodytrack  configs/deprecated/example/fs.py --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec     --cpu-type=TimingSimpleCPU      --num-cpus=64   --ruby   --network=garnet   --topology=Mesh_XY   --mesh-rows=8 --num-dirs=64  --num-l2caches=64  --script=configs/yz2023Nov/yzfs_parsecBodytrack.script

buffer10k在我常用pc上内存不足没跑完

buffer4 的server:
在这里插入图片描述
在这里插入图片描述

canneal + timing simple: buffer 1w & buffer 4

buffer10k在我常用pc上内存不足没跑完

buffer4 的server:

在这里插入图片描述

在这里插入图片描述

parsec moesi hammer

为了提速,我们用checkpoint . 然后我们需要用moesi hammer给ruby做check point。

创建check point

./build/X861wVCBufferDepth/gem5.opt -d m5out/20241003VCBuffer1whammerCHKPTAtomic configs/deprecated/example/fs.py --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec --cpu-type=X86AtomicSimpleCPU --num-cpus=64 --ruby --network=garnet --topology=Mesh_XY --mesh-rows=8 --num-dirs=64 --num-l2caches=64 --script=configs/boot/yzhack_back_ckpt.rcS

在这里插入图片描述
可以看到在9363331767000 ticks创建了checkpoint
文件夹子u也对应的上。
在这里插入图片描述

buffer 1w blacksholes moeshi hammer

然后我们用moesi hammer,生成默认的VC buffer depth 4, 然后改成buffer1,buffer10000一共三个gem5.opt,对应模拟的三种硬件架构。

buffer 1w blacksholes moeshi hammer

无checkpoint

我们先直接运行 parsecblacksholes,不考虑check point

./build/X86_MOESI_hammeryz1wVCBuffer/gem5.opt   -d m5out/X86_MOESI_hammeryz1wVCBuffer_noCHKPT/blacksholes  configs/deprecated/example/fs.py   --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec       --cpu-type=TimingSimpleCPU    --num-cpus=64   --ruby   --network=garnet   --topology=Mesh_XY   --mesh-rows=8 --num-dirs=64  --num-l2caches=64  --script=configs/yz2023Nov/large/yzfs_largeparsecblacksholes.script 

/yzfs_largeparsecblacksholes.script 内容如下:

cd /home/gem5/parsec-benchmark; source env.sh; parsecmgmt -a run -p blackscholes  -c gcc-hooks -i simlarge  -n 64; sleep 1; m5 exit;
生产checkpoint 并用上

在另一边完整运行的时候,我们也创建checkpoint并存储,以供下一步加速

./build/X86_MOESI_hammeryz1wVCBuffer/gem5.opt -d m5out/20241030X86_MOESI_hammeryz1wVCBufferTimisimpleSaveCHKPT/    configs/deprecated/example/fs.py --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec     --cpu-type=TimingSimpleCPU      --num-cpus=64   --ruby   --network=garnet   --topology=Mesh_XY   --mesh-rows=8 --num-dirs=64  --num-l2caches=64  --script=configs/boot/yzhack_back_ckpt.rcS

还在运行,运行后我们接着这个checkpoint运行

buffer 4 blacksholes moeshi hammer

buffer 1blacksholes moeshi hammer

报错部分:./build/X86_MOESI_hammeryz1wVCBuffer/gem5.opt -d m5out/20241030X86_MOESI_hammeryz1wVCBufferTimisimpleSaveCHKPT/ configs/deprecated/example/fs.py --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec --cpu-type=TimingSimpleCPU --num-cpus=64 --ruby --network=garnet --topology=Mesh_XY --mesh-rows=8 --num-dirs=64 --num-l2caches=64 --script=configs/boot/yzhack_back_ckpt.rcS

在这里插入图片描述
eventq->empty()
在这里插入图片描述
但是这个设置可以跑通blacksholes。 我准备试试atomic而不是这里的timingsimple 。
./build/X86_MOESI_hammeryz1wVCBuffer/gem5.opt -d m5out/20241030X86_MOESI_hammeryz1wVCBuffer_X86AtomicSimpleCPUCHKPT/ configs/deprecated/example/fs.py --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec --cpu-type=X86AtomicSimpleCPU --num-cpus=64 --ruby --network=garnet --topology=Mesh_XY --mesh-rows=8 --num-dirs=64 --num-l2caches=64 --script=configs/boot/yzhack_back_ckpt.rcS

vc channer

同时我们改变vc channel ,从默认的4到1 到10k,三个配置。

结果

./build/X86_MOESI_hammeryz1wVCBuffer/gem5.opt -d m5out/X86_MOESI_hammeryz1wVCBuffer_noCHKPT/blacksholes configs/deprecated/example/fs.py --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec --cpu-type=TimingSimpleCPU --num-cpus=64 --ruby --network=garnet --topology=Mesh_XY --mesh-rows=8 --num-dirs=64 --num-l2caches=64 --script= configs/yz2023Nov/large/yzfs_largeparsecblacksholes.script

在这里插入图片描述

Caneeal 结果

canneal是memory bound

vc channel 4, buffer depth 10k

首先这个直接运行会有deadlock
在这里插入图片描述

翻看命令行:
在这里插入图片描述
再看util m5term 。 200,000 elements就突然结束了。在这里插入图片描述
同时 ./util/term/m5term 3458 在6.23pm也结束了一个:

在这里插入图片描述

小结,在办公室电脑上有两个caneal中止了。caneal文件夹内的stat.txt 没有运行。此外,bodytrack成功,vips在运行。
7号的下一步:
等其他设置的结果。 以及试试checkpoint。

bodytrack 结果

VC 4 + buffer depth 4 default

VC 4 + buffer depth 10k
办公室电脑上的结果。 这个bash特别离谱,调整窗口大小会吞最后的打印结果。

在这里插入图片描述

VC 1 + buffer depth 4 服务器上的结果
roi 1.367s
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值