[gem5-dev] Change in gem5/gem5[develop]: mem-garnet: Upgrade garnet version to 3.0
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
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":