[gem5-dev] Change in gem5/gem5[develop]: mem-garnet: Upgrade garnet version to 3.0

2020-09-10 Thread Srikant Bharadwaj (Gerrit) via gem5-dev
Srikant Bharadwaj has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/34259 )



Change subject: mem-garnet: Upgrade garnet version to 3.0
..

mem-garnet: Upgrade garnet version to 3.0

This version of garnet includes HeteroGarnet which
supports heterogenous interconnect systems, flexible
router and link configurations, and better debugging
resources.

Change-Id: Id4763421528305193ae0cd10c159b385a9513553
---
M configs/network/Network.py
R src/mem/ruby/network/garnet3.0/CommonTypes.hh
R src/mem/ruby/network/garnet3.0/Credit.cc
R src/mem/ruby/network/garnet3.0/Credit.hh
R src/mem/ruby/network/garnet3.0/CreditLink.hh
R src/mem/ruby/network/garnet3.0/CrossbarSwitch.cc
R src/mem/ruby/network/garnet3.0/CrossbarSwitch.hh
R src/mem/ruby/network/garnet3.0/GarnetLink.cc
R src/mem/ruby/network/garnet3.0/GarnetLink.hh
R src/mem/ruby/network/garnet3.0/GarnetLink.py
R src/mem/ruby/network/garnet3.0/GarnetNetwork.cc
R src/mem/ruby/network/garnet3.0/GarnetNetwork.hh
R src/mem/ruby/network/garnet3.0/GarnetNetwork.py
R src/mem/ruby/network/garnet3.0/InputUnit.cc
R src/mem/ruby/network/garnet3.0/InputUnit.hh
R src/mem/ruby/network/garnet3.0/NetworkBridge.cc
R src/mem/ruby/network/garnet3.0/NetworkBridge.hh
R src/mem/ruby/network/garnet3.0/NetworkInterface.cc
R src/mem/ruby/network/garnet3.0/NetworkInterface.hh
R src/mem/ruby/network/garnet3.0/NetworkLink.cc
R src/mem/ruby/network/garnet3.0/NetworkLink.hh
R src/mem/ruby/network/garnet3.0/OutVcState.cc
R src/mem/ruby/network/garnet3.0/OutVcState.hh
R src/mem/ruby/network/garnet3.0/OutputUnit.cc
R src/mem/ruby/network/garnet3.0/OutputUnit.hh
R src/mem/ruby/network/garnet3.0/README.txt
R src/mem/ruby/network/garnet3.0/Router.cc
R src/mem/ruby/network/garnet3.0/Router.hh
R src/mem/ruby/network/garnet3.0/RoutingUnit.cc
R src/mem/ruby/network/garnet3.0/RoutingUnit.hh
R src/mem/ruby/network/garnet3.0/SConscript
R src/mem/ruby/network/garnet3.0/SwitchAllocator.cc
R src/mem/ruby/network/garnet3.0/SwitchAllocator.hh
R src/mem/ruby/network/garnet3.0/VirtualChannel.cc
R src/mem/ruby/network/garnet3.0/VirtualChannel.hh
R src/mem/ruby/network/garnet3.0/flit.cc
R src/mem/ruby/network/garnet3.0/flit.hh
R src/mem/ruby/network/garnet3.0/flitBuffer.cc
R src/mem/ruby/network/garnet3.0/flitBuffer.hh
39 files changed, 184 insertions(+), 168 deletions(-)



diff --git a/configs/network/Network.py b/configs/network/Network.py
index 20d68c0..f52725e 100644
--- a/configs/network/Network.py
+++ b/configs/network/Network.py
@@ -31,7 +31,7 @@
 import m5
 from m5.objects import *
 from m5.defines import buildEnv
-from m5.util import addToPath, fatal
+from m5.util import addToPath, fatal, warn

 def define_options(parser):
 # By default, ruby uses the simple timing cpu
@@ -42,8 +42,9 @@
 parser.add_option("--mesh-rows", type="int", default=0,
   help="the number of rows in the mesh topology")
 parser.add_option("--network", type="choice", default="simple",
-  choices=['simple', 'garnet2.0'],
-  help="'simple'|'garnet2.0'")
+  choices=['simple', 'garnet2.0', 'garnet3.0'],
+  help="""'simple'|'garnet3.0' (garnet 2.0 will be
+  deprecated.)""")
 parser.add_option("--router-latency", action="store", type="int",
   default=1,
   help="""number of pipeline stages in the garnet  
router.

@@ -65,8 +66,8 @@
   default=0,
   help="""routing algorithm in network.
 0: weight-based table
-1: XY (for Mesh. see garnet2.0/RoutingUnit.cc)
-2: Custom (see garnet2.0/RoutingUnit.cc""")
+1: XY (for Mesh. see garnet3.0/RoutingUnit.cc)
+2: Custom (see garnet3.0/RoutingUnit.cc""")
 parser.add_option("--network-fault-model", action="store_true",
   default=False,
   help="""enable network fault model:
@@ -77,8 +78,15 @@

 def create_network(options, ruby):

-# Set the network classes based on the command line options
+# Allow legacy users to use garnet through garnet2.0 option
+# until next gem5 release.
 if options.network == "garnet2.0":
+warn("garnet2.0 will be depracated. Please use garnet3.0 for" \
+" using the latest garnet version.")
+options.network = "garnet3.0"
+
+# Set the network classes based on the command line options
+if options.network == "garnet3.0":
 NetworkClass = GarnetNetwork
 IntLinkClass = GarnetIntLink
 ExtLinkClass = GarnetExtLink
@@ -101,7 +109,7 @@

 def init_network(options, network, InterfaceClass):

-if options.network == "garnet2.0":
+if options.network == "garnet3.0":
 network.num_rows = options.mesh_rows
 

[gem5-dev] Change in gem5/gem5[develop]: mem-garnet: Upgrade garnet version to 3.0

2020-09-10 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/34259 )


Change subject: mem-garnet: Upgrade garnet version to 3.0
..

mem-garnet: Upgrade garnet version to 3.0

This version of garnet includes HeteroGarnet which
supports heterogenous interconnect systems, flexible
router and link configurations, and better debugging
resources.
This patch changes the garnet directory structure
to not include the version number. The user will be
informed about the garnet version being used.

Change-Id: Id4763421528305193ae0cd10c159b385a9513553
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34259
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M configs/network/Network.py
R src/mem/ruby/network/garnet/CommonTypes.hh
R src/mem/ruby/network/garnet/Credit.cc
R src/mem/ruby/network/garnet/Credit.hh
R src/mem/ruby/network/garnet/CreditLink.hh
R src/mem/ruby/network/garnet/CrossbarSwitch.cc
R src/mem/ruby/network/garnet/CrossbarSwitch.hh
R src/mem/ruby/network/garnet/GarnetLink.cc
R src/mem/ruby/network/garnet/GarnetLink.hh
R src/mem/ruby/network/garnet/GarnetLink.py
R src/mem/ruby/network/garnet/GarnetNetwork.cc
R src/mem/ruby/network/garnet/GarnetNetwork.hh
R src/mem/ruby/network/garnet/GarnetNetwork.py
R src/mem/ruby/network/garnet/InputUnit.cc
R src/mem/ruby/network/garnet/InputUnit.hh
R src/mem/ruby/network/garnet/NetworkBridge.cc
R src/mem/ruby/network/garnet/NetworkBridge.hh
R src/mem/ruby/network/garnet/NetworkInterface.cc
R src/mem/ruby/network/garnet/NetworkInterface.hh
R src/mem/ruby/network/garnet/NetworkLink.cc
R src/mem/ruby/network/garnet/NetworkLink.hh
R src/mem/ruby/network/garnet/OutVcState.cc
R src/mem/ruby/network/garnet/OutVcState.hh
R src/mem/ruby/network/garnet/OutputUnit.cc
R src/mem/ruby/network/garnet/OutputUnit.hh
R src/mem/ruby/network/garnet/README.txt
R src/mem/ruby/network/garnet/Router.cc
R src/mem/ruby/network/garnet/Router.hh
R src/mem/ruby/network/garnet/RoutingUnit.cc
R src/mem/ruby/network/garnet/RoutingUnit.hh
R src/mem/ruby/network/garnet/SConscript
R src/mem/ruby/network/garnet/SwitchAllocator.cc
R src/mem/ruby/network/garnet/SwitchAllocator.hh
R src/mem/ruby/network/garnet/VirtualChannel.cc
R src/mem/ruby/network/garnet/VirtualChannel.hh
R src/mem/ruby/network/garnet/flit.cc
R src/mem/ruby/network/garnet/flit.hh
R src/mem/ruby/network/garnet/flitBuffer.cc
R src/mem/ruby/network/garnet/flitBuffer.hh
39 files changed, 190 insertions(+), 168 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/configs/network/Network.py b/configs/network/Network.py
index 20d68c0..a907d9a 100644
--- a/configs/network/Network.py
+++ b/configs/network/Network.py
@@ -31,7 +31,7 @@
 import m5
 from m5.objects import *
 from m5.defines import buildEnv
-from m5.util import addToPath, fatal
+from m5.util import addToPath, fatal, warn

 def define_options(parser):
 # By default, ruby uses the simple timing cpu
@@ -42,8 +42,9 @@
 parser.add_option("--mesh-rows", type="int", default=0,
   help="the number of rows in the mesh topology")
 parser.add_option("--network", type="choice", default="simple",
-  choices=['simple', 'garnet2.0'],
-  help="'simple'|'garnet2.0'")
+  choices=['simple', 'garnet'],
+  help="""'simple'|'garnet' (garnet2.0 will be
+  deprecated.)""")
 parser.add_option("--router-latency", action="store", type="int",
   default=1,
   help="""number of pipeline stages in the garnet  
router.

@@ -65,8 +66,8 @@
   default=0,
   help="""routing algorithm in network.
 0: weight-based table
-1: XY (for Mesh. see garnet2.0/RoutingUnit.cc)
-2: Custom (see garnet2.0/RoutingUnit.cc""")
+1: XY (for Mesh. see garnet/RoutingUnit.cc)
+2: Custom (see garnet/RoutingUnit.cc""")
 parser.add_option("--network-fault-model", action="store_true",
   default=False,
   help="""enable network fault model:
@@ -77,8 +78,16 @@

 def create_network(options, ruby):

-# Set the network classes based on the command line options
+# Allow legacy users to use garnet through garnet2.0 option
+# until next gem5 release.
 if options.network == "garnet2.0":
+warn("Usage of option 'garnet2.0' will be depracated. " \
+"Please use 'garnet' for using the latest garnet " \
+"version. Current version: 3.0")
+options.network = "garnet"
+
+# Set the network classes based on the command line options
+if options.network == "garnet":