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=50000000 --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