Discussion:
[gem5-users] 3D MESH TOPOLOGY DEVELOMENT IN GARNET2.0
Idris M. Umar
2018-10-23 13:04:58 UTC
Permalink
I want to modify the Mesh_XY topology in Garnet2.0 to create a 3D topology. I used Mesh_XY as a base layer to which a replicated layer is added with the MakeTopology function. Then I established the necessary bridge links. It works fine with table routing, but always produced a segmentation error when the XY routing is applied. Can someone please help me out? I can attached my scripts when asked to.

Thanks for your expected cooperation.

Idris Umar
Ahmadu Bello Univeristy
Zaria - Nigeria.
Krishna, Tushar
2018-10-23 15:23:11 UTC
Permalink
Table routing by default does XY for a 2D Mesh - since all X links have a weight of 1 and Y links have a weight of 2. You can give weights of 3 for your Z links to get a XYZ routing algorithm for instance.
The specific XY routing function inside Garnet only works for a 2D mesh as it routes assuming link directions of N/S/E/W and will not work for your 3D topology. I only recommend using it to study adaptive routing algorithms in a 2D Mesh for instance.

Cheers,
Tushar

On Oct 23, 2018, 9:05 AM -0400, Idris M. Umar <***@abu.edu.ng>, wrote:
I want to modify the Mesh_XY topology in Garnet2.0 to create a 3D topology. I used Mesh_XY as a base layer to which a replicated layer is added with the MakeTopology function. Then I established the necessary bridge links. It works fine with table routing, but always produced a segmentation error when the XY routing is applied. Can someone please help me out? I can attached my scripts when asked to.

Thanks for your expected cooperation.

Idris Umar
Ahmadu Bello Univeristy
Zaria - Nigeria.
Idris M. Umar
2018-10-24 21:40:42 UTC
Permalink
I really need to get an XYZ routing for the 3D topology because my target is to control traffic flow at the bridge links level by using suitable buffer occupancy threshold settings.

I attempted to used gdb debugger to check the variables in the first five lines of codes in the RoutingUnit::outportComputeXY() function, with a view towards modification, but received error message as shown beneath the command lines below.
~/gem5$ gdb ./build/Garnet_standalone/gem5.opt configs/example/garnet_synth_traffic.py --network=garnet2.0 --num-cpus=16 --num-dirs=16 --topology=Prism_Mesh --mesh-rows=4 --sim-cycles=5000 --injectionrate=0.02 --synthetic=uniform_random --routing-algorithm=1
gdb: unrecognized option '--network=garnet2.0'
Use `gdb --help' for a complete list of options.

How should I use gdb to recognize the optional parameters?

In addition, I suspect if one can split the m_router along the z-axis and treat each level individually, a working XYZ routing can be obtained from the XY routing.

Can you help with that?

Thanks.
Idris Umar
Krishna, Tushar
2018-10-24 21:47:46 UTC
Permalink
Not sure if my previous email went through so sending it again:

for gdb, you need to do
gdb ./build/Garnet_standalone/gem5.opt
run configs/example/garnet_synth_traffic.py --network=garnet2.0 


you can find info on routing algorithms here:
http://www.gem5.org/Garnet2.0

To implement XYZ routing I would just advice setting weights of X links to 1, Y links to 2 and Z links to 3.
If you want to modify outportComputeXY, I don’t think you need to go down the gdb route - it’s a simple function that you can read and modify.

Cheers,
Tushar

On Oct 24, 2018, at 5:41 PM, Idris M. Umar <***@abu.edu.ng<mailto:***@abu.edu.ng>> wrote:

I really need to get an XYZ routing for the 3D topology because my target is to control traffic flow at the bridge links level by using suitable buffer occupancy threshold settings.

I attempted to used gdb debugger to check the variables in the first five lines of codes in the RoutingUnit::outportComputeXY() function, with a view towards modification, but received error message as shown beneath the command lines below.
~/gem5$ gdb ./build/Garnet_standalone/gem5.opt configs/example/garnet_synth_traffic.py --network=garnet2.0 --num-cpus=16 --num-dirs=16 --topology=Prism_Mesh --mesh-rows=4 --sim-cycles=5000 --injectionrate=0.02 --synthetic=uniform_random --routing-algorithm=1
gdb: unrecognized option '--network=garnet2.0'
Use `gdb --help' for a complete list of options.

How should I use gdb to recognize the optional parameters?

In addition, I suspect if one can split the m_router along the z-axis and treat each level individually, a working XYZ routing can be obtained from the XY routing.

Can you help with that?

Thanks.
Idris Umar

_______________________________________________
gem5-users mailing list
gem5-***@gem5.org<mailto:gem5-***@gem5.org>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Loading...