summaryrefslogtreecommitdiff
path: root/configs/example
diff options
context:
space:
mode:
authorTushar Krishna <tushar@ece.gatech.edu>2016-10-06 14:35:16 -0400
committerTushar Krishna <tushar@ece.gatech.edu>2016-10-06 14:35:16 -0400
commit0f68b50ff11a957a9c8d31b592c75e659f8a1023 (patch)
treeeba783cfce7f7922b359740721050ebda504357a /configs/example
parentaca869bf2dba8cc7a7b06be223b84fa0376a59e9 (diff)
downloadgem5-0f68b50ff11a957a9c8d31b592c75e659f8a1023.tar.xz
ruby: rename networktest to garnet_synthetic_traffic.
networktest is essentially a collection of synthetic traffic patterns for the network. The protocol name and the tester having the same name led to multiple python configuration files with the same name, adding confusion. This patch renames networktest to garnet_synthetic_traffic, and also adds more synthetic traffic patterns.
Diffstat (limited to 'configs/example')
-rw-r--r--configs/example/garnet_synth_traffic.py (renamed from configs/example/ruby_network_test.py)52
1 files changed, 32 insertions, 20 deletions
diff --git a/configs/example/ruby_network_test.py b/configs/example/garnet_synth_traffic.py
index f0e075055..a4c44efbc 100644
--- a/configs/example/ruby_network_test.py
+++ b/configs/example/garnet_synth_traffic.py
@@ -1,5 +1,4 @@
-# Copyright (c) 2006-2007 The Regents of The University of Michigan
-# Copyright (c) 2010 Advanced Micro Devices, Inc.
+# Copyright (c) 2016 Georgia Institute of Technology
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -25,8 +24,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-# Authors: Ron Dreslinski
-# Tushar Krishna
+# Author: Tushar Krishna
import m5
from m5.objects import *
@@ -48,9 +46,10 @@ m5_root = os.path.dirname(config_root)
parser = optparse.OptionParser()
Options.addCommonOptions(parser)
-parser.add_option("--synthetic", type="int", default=0,
- help="Synthetic Traffic type. 0 = Uniform Random,\
- 1 = Tornado, 2 = Bit Complement")
+parser.add_option("--synthetic", type="choice", default="uniform_random",
+ choices=['uniform_random', 'tornado', 'bit_complement', \
+ 'bit_reverse', 'bit_rotation', 'neighbor', \
+ 'shuffle', 'transpose'])
parser.add_option("-i", "--injectionrate", type="float", default=0.1,
metavar="I",
@@ -65,12 +64,22 @@ parser.add_option("--precision", type="int", default=3,
parser.add_option("--sim-cycles", type="int", default=1000,
help="Number of simulation cycles")
-parser.add_option("--fixed-pkts", action="store_true",
- help="Network_test: inject --maxpackets and stop")
+parser.add_option("--num-packets-max", type="int", default=-1,
+ help="Stop injecting after --num-packets-max.\
+ Set to -1 to disable.")
-parser.add_option("--maxpackets", type="int", default=1,
- help="Stop injecting after --maxpackets. \
- Works only with --fixed-pkts")
+parser.add_option("--single-sender-id", type="int", default=-1,
+ help="Only inject from this sender.\
+ Set to -1 to disable.")
+
+parser.add_option("--single-dest-id", type="int", default=-1,
+ help="Only send to this destination.\
+ Set to -1 to disable.")
+
+parser.add_option("--inj-vnet", type="int", default=-1,
+ help="Only inject in this vnet (0, 1 or 2).\
+ 0 and 1 are 1-flit, 2 is 5-flit.\
+ Set to -1 to inject randomly in all vnets.")
#
# Add the ruby specific and protocol specific options
@@ -85,21 +94,24 @@ if args:
print "Error: script doesn't take any positional arguments"
sys.exit(1)
-block_size = 64
-if options.num_cpus > block_size:
- print "Error: Number of cores %d limited to %d because of false sharing" \
- % (options.num_cpus, block_size)
- sys.exit(1)
+if options.inj_vnet > 2:
+ print "Error: Injection vnet %d should be 0 (1-flit), 1 (1-flit) \
+ or 2 (5-flit) or -1 (random)"\
+ % (options.inj_vnet)
+ sys.exit(1)
-cpus = [ NetworkTest(fixed_pkts=options.fixed_pkts,
- max_packets=options.maxpackets,
+cpus = [ GarnetSyntheticTraffic(
+ num_packets_max=options.num_packets_max,
+ single_sender=options.single_sender_id,
+ single_dest=options.single_dest_id,
sim_cycles=options.sim_cycles,
traffic_type=options.synthetic,
inj_rate=options.injectionrate,
+ inj_vnet=options.inj_vnet,
precision=options.precision,
- num_memories=options.num_dirs) \
+ num_dest=options.num_dirs) \
for i in xrange(options.num_cpus) ]
# create the desired simulated system