[gem5-users] gem5 garnet 3.0 standalone

2023-05-07 Thread Karim Soliman via gem5-users
Hey everyone,
 I'm trying to learn the garnet 3.0 standalone protocol for NoC research
purposes, I read in some articles that they perform a warm-up before
starting their simulations, if anyone knows how can I apply the warm-up in
garnet 3.0?

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-le...@gem5.org


[gem5-users] gem5 / Garnet 3.0 / Standalone

2023-04-03 Thread Karim Soliman via gem5-users
Hey everyone,
I was trying to limit the size of the flitBuffer.
The default constructor is set *max_size = INFINITE_;*
So, I used the method *setMaxSize(); *to alter the default *max_size *of
the buffer.

During the simulation, I output the current size of the flitBuffer at
 mem/ruby/network/garnet/flitBuffer.hh, at the end of the method ==>  void
insert(flit *flit) , and the current size of the buffer was exceeding the
max_size value.

Is there a way to prevent exceeding the buffer max_size during the
simulation?


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-le...@gem5.org


[gem5-users] Gem5 / garnet 3.0 - Standalone

2023-03-31 Thread Karim Soliman via gem5-users
Hey everyone,
My research field is about NoC and I'm working on gem5/garnet 3.0
standalone.
For research purposes, I'm trying to push Garnet standalone protocol into
deadlock or traffic congestion during the simulation of Mesh_XY topology.
So, that's what i have done so far:

   - topologies/Mesh_XY.py ==> I changed the weight of all the internal
   links to be 1, to allow the routing to select random output.
   - mem/ruby/network/garnet/flitBuffer.cc ==> I reduced the max_size of
   the flit buffer to 2 instead of using INFINITE_ constant, by using
   setMaxSize(int size); method to apply this.
   - cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.py ==> I
   reduced response_limit to be 1000.
   - cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc ==> I
   used std::cout in the function doRetry() in order to check if there was any
   traffic congestion.
   - I'm using only two virtual channels by setting the option of
   --vcs-per-vnet=2

I rebuild gem5 using

*sudo scons build/NULL/gem5.debug PROTOCOL=Garnet_standalone -j13*
My simulation command is
*sudo build/NULL/gem5.debug configs/example/garnet_synth_traffic.py
--synthetic=uniform_random --network=garnet --num-cpus=16 --num-dirs=16
--mesh-rows=4 --topology=Mesh_XY --sim-cycles=5000
--routing-algorithm=1 --vcs-per-vnet=2 --injectionrate=0.02*

I re-simulated using higher injection rates with no output from the
doRetry() method, and no deadlock happened, are there any parameters I
should change?




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-le...@gem5.org