Hey everyone,
For research purposes, I'm trying to run the *PARSEC *benchmark on Garnet
2D mesh topology.
I successfully simulated garnet synthetic traffic under standalone
protocol, after building gem5 using the following command scons
build/NULL/gem5.opt PROTOCOL=Garnet_standalone -j<proc>
I've used the configuration file for XY routing which is located at
/gem5/configs/topologies/Mesh_XY.py
The full command for simulating garnet synthetic traffic is
./build/NULL/gem5.opt ./configs/example/garnet_synth_traffic.py
--synthetic=uniform_random
--network=garnet --mesh-rows=4 --num-cpus=16 --num-dirs=16
--topology=Mesh_XY--sim-cycles=25000000 --router-latency=4 --link-latency=1
--injectionrate=0.05
The simulation for the garnet synthetic traffic is successful and
everything is fine.
I've tried to run the PARSEC benchmark so I followed the x86-parsec readme
file at gem5 resources repo -
https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/
Gem5 is built using the following command: scons build/X86/gem5.opt
-j<proc>
The benchmark is working fine and the simulation is successful.
Currently, I want to run the PARSEC benchmark in garnet and run the network
on chip in full system simulation.
I would really appreciate it if anyone could help me with the steps on how
to do it.
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
Hi Karim,
The x86-parsec readme file runs experiment using gem5s new standard library, and it does not support garnet at the moment. Therefore, I had to go with fs.py (which is deprecated in current version of gem5). I was able to replicate the same experiment using fs.py and using the same gem5 resources.
I was able to do these steps and run parsec benchmark with garnet in full system mode upto 64 cores. Following are the links and scripts I used, you may need to change them according to your requirement.
./build/X86/gem5.opt configs/example/fs.py --disk-image=dist/parsec.img --kernel=dist/vmlinux-4.4.186 --num-cpus=4 --num-dirs=4 --cpu-type=X86KvmCPU --cpu-clock=2GHz --caches --l1d_size=16kB --l1i_size=16kB --l2cache --num-l2cache=4 --mem-type=SimpleMemory --mem-size=3GB --ruby --network=garnet --topology=Mesh_XY --mesh-rows=2 --script=scripts/parsec.rcS
Regards,
Hansika Weerasena
Research Assistant,
University of Florida
From: Karim Soliman via gem5-users gem5-users@gem5.org
Date: Wednesday, August 9, 2023 at 11:21 PM
To: The gem5 Users mailing list gem5-users@gem5.org
Cc: Karim Soliman karim.soliman@pua.edu.eg
Subject: [gem5-users] Running PARSEC benchmark on gem5 Garnet
[External Email]
Hey everyone,
For research purposes, I'm trying to run the PARSEC benchmark on Garnet 2D mesh topology.
I successfully simulated garnet synthetic traffic under standalone protocol, after building gem5 using the following command scons build/NULL/gem5.opt PROTOCOL=Garnet_standalone -j<proc>
I've used the configuration file for XY routing which is located at /gem5/configs/topologies/Mesh_XY.py
The full command for simulating garnet synthetic traffic is
./build/NULL/gem5.opt ./configs/example/garnet_synth_traffic.py --synthetic=uniform_random --network=garnet --mesh-rows=4 --num-cpus=16 --num-dirs=16 --topology=Mesh_XY--sim-cycles=25000000 --router-latency=4 --link-latency=1 --injectionrate=0.05
The simulation for the garnet synthetic traffic is successful and everything is fine.
I've tried to run the PARSEC benchmark so I followed the x86-parsec readme file at gem5 resources repo - https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/
Gem5 is built using the following command: scons build/X86/gem5.opt -j<proc>
The benchmark is working fine and the simulation is successful.
Currently, I want to run the PARSEC benchmark in garnet and run the network on chip in full system simulation.
I would really appreciate it if anyone could help me with the steps on how to do it.
[Image removed by sender.]
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
Thank you so much for your time and the valuable information.
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
On Thu, Aug 10, 2023 at 1:32 PM Hansika Weerasena via gem5-users <
gem5-users@gem5.org> wrote:
Hi Karim,
The x86-parsec readme file runs experiment using gem5s new standard
library, and it does not support garnet at the moment. Therefore, I had
to go with fs.py (which is deprecated in current version of gem5). I was
able to replicate the same experiment using fs.py and using the same gem5
resources.
I was able to do these steps and run parsec benchmark with garnet in full
system mode upto 64 cores. Following are the links and scripts I used, you
may need to change them according to your requirement.
1. I used the prebuilt X86 parsec disk image from gem5 resources :
https://resources.gem5.org/resources/x86-parsec?version=1.0.0
2. For linux kernel I used vmlinux-4.4.186
3. Example Simulation.py the KVM switch on ROI start can be found here
(
https://github.com/hansikaweerasena/gem5-n/blob/kvm-fs/configs/common/Simulation.py).
4. Example rcs script can be found here :
https://github.com/hansikaweerasena/gem5-n/blob/kvm-fs/scripts/parsec.rcS
5. Finally, following is an example command to run parsec on FS mode
with garnet.
./build/X86/gem5.opt configs/example/fs.py --disk-image=dist/parsec.img
--kernel=dist/vmlinux-4.4.186 --num-cpus=4 --num-dirs=4
--cpu-type=X86KvmCPU --cpu-clock=2GHz --caches --l1d_size=16kB
--l1i_size=16kB --l2cache --num-l2cache=4 --mem-type=SimpleMemory
--mem-size=3GB --ruby --network=garnet --topology=Mesh_XY --mesh-rows=2
--script=scripts/parsec.rcS
Regards,
Hansika Weerasena
Research Assistant,
University of Florida
*From: *Karim Soliman via gem5-users gem5-users@gem5.org
*Date: *Wednesday, August 9, 2023 at 11:21 PM
*To: *The gem5 Users mailing list gem5-users@gem5.org
*Cc: *Karim Soliman karim.soliman@pua.edu.eg
*Subject: *[gem5-users] Running PARSEC benchmark on gem5 Garnet
[External Email]
Hey everyone,
For research purposes, I'm trying to run the *PARSEC *benchmark on
Garnet 2D mesh topology.
I successfully simulated garnet synthetic traffic under standalone
protocol, after building gem5 using the following command scons build*/*
NULL*/gem5.**opt PROTOCOL=Garnet_standalone *-j<proc>
I've used the configuration file for XY routing which is located at
/gem5/configs/topologies/Mesh_XY.py
The full command for simulating garnet synthetic traffic is
./build/NULL/gem5.opt ./configs/example/garnet_synth_traffic.py
--synthetic=uniform_random --network=garnet --mesh-rows=4 --num-cpus=16
--num-dirs=16 --topology=Mesh_XY--sim-cycles=25000000 --router-latency=4
--link-latency=1 --injectionrate=0.05
The simulation for the garnet synthetic traffic is successful and
everything is fine.
I've tried to run the PARSEC benchmark so I followed the x86-parsec readme
file at gem5 resources repo -
https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/
Gem5 is built using the following command: scons build*/X86/*gem5
*.**opt *-j<proc>
The benchmark is working fine and the simulation is successful.
Currently, I want to run the PARSEC benchmark in garnet and run the
network on chip in full system simulation.
I would really appreciate it if anyone could help me with the steps on how
to do it.
[image: Image removed by sender.]
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org
Thank you so much for your detailed helpful information.
My working directory tree is as follows
. └── parsec/ ├── gem5 ├── disk-img/ │ └── parsec.img └── linux-kernel/ └──
vmlinux
However, I followed your steps, and when I tried to run the following
command for the simulation
./build/X86/gem5.opt configs/example/fs.py
--disk-image=../disk-img/parsec.img --kernel=../linux-kernel/vmlinux
--num-cpus=4 --num-dirs=4 --cpu-type=X86KvmCPU --cpu-clock=2GHz --caches
--l1d_size=16kB --l1i_size=16kB --l2cache --num-l2cache=4
--mem-type=SimpleMemory --mem-size=3GB --ruby --network=garnet
--topology=Mesh_XY --mesh-rows=2 --script=scripts/parsec.rcS
I got the following error
build/X86/arch/x86/kvm/x86_cpu.cc:345: info: 0x491: 0x0
build/X86/arch/x86/kvm/x86_cpu.cc:345: info: 0xc0010015: 0x0
build/X86/arch/x86/kvm/x86_cpu.cc:345: info: 0x4b564d05: 0x0
build/X86/cpu/kvm/base.cc:1032: panic: KVM: Unexpected exit (exit_reason: 8)
Memory Usage: 3812892 KBytes
Program aborted at tick 827873500
--- BEGIN LIBC BACKTRACE ---
./build/X86/gem5.opt(+0x107cf30)[0x559cc4456f30]
./build/X86/gem5.opt(+0x10a2b8c)[0x559cc447cb8c]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f2cd2b6a520]
/lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7f2cd2bbea7c]
/lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7f2cd2b6a476]
/lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7f2cd2b507f3]
./build/X86/gem5.opt(+0x43b475)[0x559cc3815475]
./build/X86/gem5.opt(+0x792dce)[0x559cc3b6cdce]
./build/X86/gem5.opt(+0x78f8a9)[0x559cc3b698a9]
./build/X86/gem5.opt(+0x1092892)[0x559cc446c892]
./build/X86/gem5.opt(+0x10bbf08)[0x559cc4495f08]
./build/X86/gem5.opt(+0x10bd18f)[0x559cc449718f]
/lib/x86_64-linux-gnu/libstdc++.so.6(+0xdc253)[0x7f2cd2f35253]
/lib/x86_64-linux-gnu/libc.so.6(+0x94b43)[0x7f2cd2bbcb43]
/lib/x86_64-linux-gnu/libc.so.6(+0x126a00)[0x7f2cd2c4ea00]
--- END LIBC BACKTRACE ---
Aborted
I checked that my CPU is supporting *kvm *by using the command kvm-ok and
it is supported.
INFO: /dev/kvm exists
KVM acceleration can be used
I changed the CPU type by replacing --cpu-type=X86KvmCPU argument in the
simulation command with the following types
build/X86/sim/simulate.cc:192: info: Entering event queue @ 0. Starting
simulation...
build/X86/mem/ruby/system/Sequencer.cc:613: warn: Replacement policy
updates recently became the responsibility of SLICC state machines. Make
sure to setMRU() near callbacks in .sm files!
build/X86/arch/generic/debugfaults.hh:128: panic: Invalid microop!
Memory Usage: 3782048 KBytes
Program aborted at tick 313000
--- BEGIN LIBC BACKTRACE ---
./build/X86/gem5.opt(+0x107cf30)[0x5593c36f9f30]
./build/X86/gem5.opt(+0x10a2b8c)[0x5593c371fb8c]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7fd57ccf1520]
/lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7fd57cd45a7c]
/lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7fd57ccf1476]
/lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7fd57ccd77f3]
./build/X86/gem5.opt(+0x43b475)[0x5593c2ab8475]
./build/X86/gem5.opt(+0x59cfb5)[0x5593c2c19fb5]
./build/X86/gem5.opt(+0x59cd44)[0x5593c2c19d44]
./build/X86/gem5.opt(+0x7fdcea)[0x5593c2e7acea]
./build/X86/gem5.opt(+0x8014e8)[0x5593c2e7e4e8]
./build/X86/gem5.opt(+0x802c90)[0x5593c2e7fc90]
./build/X86/gem5.opt(+0x84aa8b)[0x5593c2ec7a8b]
./build/X86/gem5.opt(+0x10ba0a7)[0x5593c37370a7]
./build/X86/gem5.opt(+0x1092892)[0x5593c370f892]
./build/X86/gem5.opt(+0x10bbf08)[0x5593c3738f08]
./build/X86/gem5.opt(+0x10bc4f3)[0x5593c37394f3]
./build/X86/gem5.opt(+0xe7d930)[0x5593c34fa930]
./build/X86/gem5.opt(+0x452432)[0x5593c2acf432]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x128023)[0x7fd57d816023]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyObject_Call+0x5c)[0x7fd57d7cffec]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x4b16)[0x7fd57d764776]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)[0x7fd57d7699c8]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)[0x7fd57d7699c8]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(PyEval_EvalCode+0xbe)[0x7fd57d8ab3de]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1bd96d)[0x7fd57d8ab96d]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1287b3)[0x7fd57d8167b3]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x69de)[0x7fd57d76663e]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]
--- END LIBC BACKTRACE ---
Aborted
I would really appreciate your help and time. Thank you so much.
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
On Thu, Aug 10, 2023 at 4:34 PM Karim Soliman karim.soliman@pua.edu.eg
wrote:
Thank you so much for your time and the valuable information.
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
On Thu, Aug 10, 2023 at 1:32 PM Hansika Weerasena via gem5-users <
gem5-users@gem5.org> wrote:
Hi Karim,
The x86-parsec readme file runs experiment using gem5s new standard
library, and it does not support garnet at the moment. Therefore, I had
to go with fs.py (which is deprecated in current version of gem5). I was
able to replicate the same experiment using fs.py and using the same gem5
resources.
I was able to do these steps and run parsec benchmark with garnet in full
system mode upto 64 cores. Following are the links and scripts I used, you
may need to change them according to your requirement.
1. I used the prebuilt X86 parsec disk image from gem5 resources :
https://resources.gem5.org/resources/x86-parsec?version=1.0.0
2. For linux kernel I used vmlinux-4.4.186
3. Example Simulation.py the KVM switch on ROI start can be found
here (
https://github.com/hansikaweerasena/gem5-n/blob/kvm-fs/configs/common/Simulation.py).
4. Example rcs script can be found here :
https://github.com/hansikaweerasena/gem5-n/blob/kvm-fs/scripts/parsec.rcS
5. Finally, following is an example command to run parsec on FS mode
with garnet.
./build/X86/gem5.opt configs/example/fs.py --disk-image=dist/parsec.img
--kernel=dist/vmlinux-4.4.186 --num-cpus=4 --num-dirs=4
--cpu-type=X86KvmCPU --cpu-clock=2GHz --caches --l1d_size=16kB
--l1i_size=16kB --l2cache --num-l2cache=4 --mem-type=SimpleMemory
--mem-size=3GB --ruby --network=garnet --topology=Mesh_XY --mesh-rows=2
--script=scripts/parsec.rcS
Regards,
Hansika Weerasena
Research Assistant,
University of Florida
*From: *Karim Soliman via gem5-users gem5-users@gem5.org
*Date: *Wednesday, August 9, 2023 at 11:21 PM
*To: *The gem5 Users mailing list gem5-users@gem5.org
*Cc: *Karim Soliman karim.soliman@pua.edu.eg
*Subject: *[gem5-users] Running PARSEC benchmark on gem5 Garnet
[External Email]
Hey everyone,
For research purposes, I'm trying to run the *PARSEC *benchmark on
Garnet 2D mesh topology.
I successfully simulated garnet synthetic traffic under standalone
protocol, after building gem5 using the following command scons build
*/NULL/gem5.**opt PROTOCOL=Garnet_standalone *-j<proc>
I've used the configuration file for XY routing which is located at
/gem5/configs/topologies/Mesh_XY.py
The full command for simulating garnet synthetic traffic is
./build/NULL/gem5.opt ./configs/example/garnet_synth_traffic.py
--synthetic=uniform_random --network=garnet --mesh-rows=4 --num-cpus=16
--num-dirs=16 --topology=Mesh_XY--sim-cycles=25000000 --router-latency=4
--link-latency=1 --injectionrate=0.05
The simulation for the garnet synthetic traffic is successful and
everything is fine.
I've tried to run the PARSEC benchmark so I followed the x86-parsec
readme file at gem5 resources repo -
https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/
Gem5 is built using the following command: scons build*/X86/*gem5
*.**opt *-j<proc>
The benchmark is working fine and the simulation is successful.
Currently, I want to run the PARSEC benchmark in garnet and run the
network on chip in full system simulation.
I would really appreciate it if anyone could help me with the steps on
how to do it.
[image: Image removed by sender.]
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org