ruby: garnet2.0
Review Request #3558 - Created July 13, 2016 and submitted
| Information | |
|---|---|
| Tushar Krishna | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
| ahansson, bbeckman, jyin, mporemba | |
ruby: garnet2.0 Revamped version of garnet with more optimized single-cycle routers, more configurability, and cleaner code.
Issue Summary
| Description | From | Last Updated | Status |
|---|---|---|---|
| Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level) | Zicong Wang | Sept. 22, 2016, 10:47 p.m. | Open |
| Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level) | Zicong Wang | Sept. 22, 2016, 10:47 p.m. | Open |
| Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level) | Zicong Wang | Sept. 22, 2016, 10:47 p.m. | Open |
| Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level) | Zicong Wang | Sept. 22, 2016, 10:47 p.m. | Open |
Thanks for posting the patches Tushar. I think this code is a lot cleaner and i'm interested in trying out the unidirectional links and seperate routing latency for some studies.
One major comment: There is a lot of new code for routing algorithms in this patch. I think it would be useful to convert the RoutingUnit to a SimObject and allow the Router SimObject to accept a RoutingUnit SimObject as a parameter. In this way, you could implement multiple "custom" routing algorithms and swap them via python scripts. I marked two spots below where changes would need to be made.
-
src/mem/ruby/network/garnet2.0/NetworkInterface.cc (Diff revision 1) -
The spacing is a bit odd here.
-
src/mem/ruby/network/garnet2.0/Router.cc (Diff revision 1) -
If RoutingUnit is a SimObject, this can be set using the Params struct and the RoutingUnit could be specified by the python scripts.
-
src/mem/ruby/network/garnet2.0/RoutingUnit.hh (Diff revision 1) -
Make this method virtual so classes can inherit this one to specify different custom routing computations.
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.hh (Diff revision 1) -
The space been the final two > can be removed in C++11.
-
src/mem/ruby/network/garnet2.0/flit.hh (Diff revision 1) -
Could all the getter methods and all the setter methods be grouped? That would make this file more readable.
All minor stylistic issues. Some white spaces also need to be removed, but weren't marked in this review since they are quite obvious.
-
src/mem/ruby/network/garnet2.0/GarnetNetwork.cc (Diff revision 1) -
Opening brace must be on the same line as the control keyword.
-
src/mem/ruby/network/garnet2.0/GarnetNetwork.cc (Diff revision 1) -
Opening brace.
-
src/mem/ruby/network/garnet2.0/GarnetNetwork.cc (Diff revision 1) -
'Else' keywords should follow the closing 'if' brace on the same line.
-
src/mem/ruby/network/garnet2.0/GarnetNetwork.cc (Diff revision 1) -
Add a space after 'if'. Also, a space before brace.
-
src/mem/ruby/network/garnet2.0/InputUnit.cc (Diff revision 1) -
Opening brace.
-
src/mem/ruby/network/garnet2.0/InputUnit.cc (Diff revision 1) -
'else' and braces.
-
src/mem/ruby/network/garnet2.0/NetworkInterface.cc (Diff revision 1) -
Indentation
-
src/mem/ruby/network/garnet2.0/NetworkInterface.cc (Diff revision 1) -
Space after 'if'
-
src/mem/ruby/network/garnet2.0/OutputUnit.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/OutputUnit.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/OutputUnit.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/Router.hh (Diff revision 1) -
Space before '{'
-
src/mem/ruby/network/garnet2.0/Router.hh (Diff revision 1) -
Space before '{'
-
src/mem/ruby/network/garnet2.0/Router.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/Router.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/Router.cc (Diff revision 1) -
Space before '{'
-
src/mem/ruby/network/garnet2.0/RoutingUnit.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/RoutingUnit.cc (Diff revision 1) -
Space after 'switch', and opening brace
-
src/mem/ruby/network/garnet2.0/RoutingUnit.cc (Diff revision 1) -
Braces
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 1) -
Opening brace
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 1) -
Braces
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 1) -
Opening brace
Summary: |
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
||||||||||||
Diff: |
Revision 2 (+4935 -33) |
Looks good overall.
-
configs/topologies/Mesh_westfirst.py (Diff revision 2) -
white space
-
configs/topologies/Pt2Pt.py (Diff revision 2) -
white space
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 2) -
white space
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 2) -
empty line
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 2) -
empty line
-
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc (Diff revision 2) -
white space
Missing src_outport & dst_inport when create the mesh links in MeshDirCorners_XY.py, which will cause segmentation fault(tested in X86_MESI_Two_Level)
-
configs/topologies/MeshDirCorners_XY.py (Diff revision 2) -
Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level)
-
configs/topologies/MeshDirCorners_XY.py (Diff revision 2) -
Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level)
-
configs/topologies/MeshDirCorners_XY.py (Diff revision 2) -
Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level)
-
configs/topologies/MeshDirCorners_XY.py (Diff revision 2) -
Missing src_outport & dst_inport here, which will cause segmentation fault(tested in X86_MESI_Two_Level)
