[gem5-dev] Change in gem5/gem5[develop]: configs: add option to set the timeouts for the TCPs and SQCs

2020-04-30 Thread Anthony Gutierrez (Gerrit) via gem5-dev
Anthony Gutierrez has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/28129 )


Change subject: configs: add option to set the timeouts for the TCPs and  
SQCs

..

configs: add option to set the timeouts for the TCPs and SQCs

Change-Id: Icff2bd0237ddcc0d21db17208df8e53ff6f43e86
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28129
Reviewed-by: Matt Sinclair 
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M configs/ruby/GPU_RfO.py
M configs/ruby/GPU_VIPER.py
M configs/ruby/GPU_VIPER_Baseline.py
M configs/ruby/GPU_VIPER_Region.py
4 files changed, 63 insertions(+), 0 deletions(-)

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



diff --git a/configs/ruby/GPU_RfO.py b/configs/ruby/GPU_RfO.py
index cf2fdbd..26bea0c 100644
--- a/configs/ruby/GPU_RfO.py
+++ b/configs/ruby/GPU_RfO.py
@@ -168,6 +168,11 @@
 self.coalescer.max_outstanding_requests = options.simds_per_cu * \
   options.wfs_per_simd * \
   options.wf_size
+if options.tcp_deadlock_threshold:
+  self.coalescer.deadlock_threshold = \
+options.tcp_deadlock_threshold
+self.coalescer.max_coalesces_per_cycle = \
+options.max_coalesces_per_cycle

 self.sequencer = RubySequencer()
 self.sequencer.version = self.seqCount()
@@ -240,6 +245,10 @@
 self.sequencer.support_data_reqs = False
 self.sequencer.is_cpu_sequencer = False

+if options.sqc_deadlock_threshold:
+  self.sequencer.deadlock_threshold = \
+options.sqc_deadlock_threshold
+
 self.ruby_system = ruby_system

 if options.recycle_latency:
@@ -416,6 +425,8 @@
   help="number of TCC directories and banks in the  
GPU")

 parser.add_option("--TCP_latency", type="int", default=4,
   help="TCP latency")
+parser.add_option("--tcp-deadlock-threshold", type='int',
+  help="Set the TCP deadlock threshold to some value")
 parser.add_option("--TCC_latency", type="int", default=16,
   help="TCC latency")
 parser.add_option("--tcc-size", type='string', default='256kB',
@@ -424,6 +435,10 @@
   help="tcp size")
 parser.add_option("--tcc-dir-factor", type='int', default=4,
   help="TCCdir size = factor *(TCPs + TCC)")
+parser.add_option("--sqc-deadlock-threshold", type='int',
+  help="Set the SQC deadlock threshold to some value")
+parser.add_option("--max-coalesces-per-cycle", type="int", default=1,
+  help="Maximum insts that may coalesce in a cycle");

 def create_system(options, full_system, system, dma_devices, bootmem,
   ruby_system):
diff --git a/configs/ruby/GPU_VIPER.py b/configs/ruby/GPU_VIPER.py
index 71238ae..f4ecc41 100644
--- a/configs/ruby/GPU_VIPER.py
+++ b/configs/ruby/GPU_VIPER.py
@@ -153,6 +153,11 @@
 self.coalescer.ruby_system = ruby_system
 self.coalescer.support_inst_reqs = False
 self.coalescer.is_cpu_sequencer = False
+if options.tcp_deadlock_threshold:
+  self.coalescer.deadlock_threshold = \
+  options.tcp_deadlock_threshold
+self.coalescer.max_coalesces_per_cycle = \
+options.max_coalesces_per_cycle

 self.sequencer = RubySequencer()
 self.sequencer.version = self.seqCount()
@@ -227,6 +232,9 @@
 self.sequencer.ruby_system = ruby_system
 self.sequencer.support_data_reqs = False
 self.sequencer.is_cpu_sequencer = False
+if options.sqc_deadlock_threshold:
+  self.sequencer.deadlock_threshold = \
+options.sqc_deadlock_threshold

 self.ruby_system = ruby_system

@@ -370,6 +378,9 @@
   help = "SQC cache size")
 parser.add_option("--sqc-assoc", type = 'int', default = 8,
   help = "SQC cache assoc")
+parser.add_option("--sqc-deadlock-threshold", type='int',
+  help="Set the SQC deadlock threshold to some value")
+
 parser.add_option("--WB_L1", action = "store_true", default = False,
   help = "writeback L1")
 parser.add_option("--WB_L2", action = "store_true", default = False,
@@ -386,6 +397,11 @@
   help = "tcp size")
 parser.add_option("--tcp-assoc", type = 'int', default = 16,
   help = "tcp assoc")
+parser.add_option("--tcp-deadlock-threshold", type='int',
+  help="Set the TCP deadlock threshold to some value")
+parser.add_option("--max-coalesces-per-cycle", type="int", default=1,
+  

[gem5-dev] Change in gem5/gem5[develop]: configs: add option to set the timeouts for the TCPs and SQCs

2020-04-23 Thread Anthony Gutierrez (Gerrit) via gem5-dev

Hello Tony Gutierrez,

I'd like you to do a code review. Please visit

https://gem5-review.googlesource.com/c/public/gem5/+/28129

to review the following change.


Change subject: configs: add option to set the timeouts for the TCPs and  
SQCs

..

configs: add option to set the timeouts for the TCPs and SQCs

Change-Id: Icff2bd0237ddcc0d21db17208df8e53ff6f43e86
---
M configs/ruby/GPU_RfO.py
M configs/ruby/GPU_VIPER.py
M configs/ruby/GPU_VIPER_Baseline.py
M configs/ruby/GPU_VIPER_Region.py
4 files changed, 63 insertions(+), 0 deletions(-)



diff --git a/configs/ruby/GPU_RfO.py b/configs/ruby/GPU_RfO.py
index cf2fdbd..26bea0c 100644
--- a/configs/ruby/GPU_RfO.py
+++ b/configs/ruby/GPU_RfO.py
@@ -168,6 +168,11 @@
 self.coalescer.max_outstanding_requests = options.simds_per_cu * \
   options.wfs_per_simd * \
   options.wf_size
+if options.tcp_deadlock_threshold:
+  self.coalescer.deadlock_threshold = \
+options.tcp_deadlock_threshold
+self.coalescer.max_coalesces_per_cycle = \
+options.max_coalesces_per_cycle

 self.sequencer = RubySequencer()
 self.sequencer.version = self.seqCount()
@@ -240,6 +245,10 @@
 self.sequencer.support_data_reqs = False
 self.sequencer.is_cpu_sequencer = False

+if options.sqc_deadlock_threshold:
+  self.sequencer.deadlock_threshold = \
+options.sqc_deadlock_threshold
+
 self.ruby_system = ruby_system

 if options.recycle_latency:
@@ -416,6 +425,8 @@
   help="number of TCC directories and banks in the  
GPU")

 parser.add_option("--TCP_latency", type="int", default=4,
   help="TCP latency")
+parser.add_option("--tcp-deadlock-threshold", type='int',
+  help="Set the TCP deadlock threshold to some value")
 parser.add_option("--TCC_latency", type="int", default=16,
   help="TCC latency")
 parser.add_option("--tcc-size", type='string', default='256kB',
@@ -424,6 +435,10 @@
   help="tcp size")
 parser.add_option("--tcc-dir-factor", type='int', default=4,
   help="TCCdir size = factor *(TCPs + TCC)")
+parser.add_option("--sqc-deadlock-threshold", type='int',
+  help="Set the SQC deadlock threshold to some value")
+parser.add_option("--max-coalesces-per-cycle", type="int", default=1,
+  help="Maximum insts that may coalesce in a cycle");

 def create_system(options, full_system, system, dma_devices, bootmem,
   ruby_system):
diff --git a/configs/ruby/GPU_VIPER.py b/configs/ruby/GPU_VIPER.py
index 71238ae..f4ecc41 100644
--- a/configs/ruby/GPU_VIPER.py
+++ b/configs/ruby/GPU_VIPER.py
@@ -153,6 +153,11 @@
 self.coalescer.ruby_system = ruby_system
 self.coalescer.support_inst_reqs = False
 self.coalescer.is_cpu_sequencer = False
+if options.tcp_deadlock_threshold:
+  self.coalescer.deadlock_threshold = \
+  options.tcp_deadlock_threshold
+self.coalescer.max_coalesces_per_cycle = \
+options.max_coalesces_per_cycle

 self.sequencer = RubySequencer()
 self.sequencer.version = self.seqCount()
@@ -227,6 +232,9 @@
 self.sequencer.ruby_system = ruby_system
 self.sequencer.support_data_reqs = False
 self.sequencer.is_cpu_sequencer = False
+if options.sqc_deadlock_threshold:
+  self.sequencer.deadlock_threshold = \
+options.sqc_deadlock_threshold

 self.ruby_system = ruby_system

@@ -370,6 +378,9 @@
   help = "SQC cache size")
 parser.add_option("--sqc-assoc", type = 'int', default = 8,
   help = "SQC cache assoc")
+parser.add_option("--sqc-deadlock-threshold", type='int',
+  help="Set the SQC deadlock threshold to some value")
+
 parser.add_option("--WB_L1", action = "store_true", default = False,
   help = "writeback L1")
 parser.add_option("--WB_L2", action = "store_true", default = False,
@@ -386,6 +397,11 @@
   help = "tcp size")
 parser.add_option("--tcp-assoc", type = 'int', default = 16,
   help = "tcp assoc")
+parser.add_option("--tcp-deadlock-threshold", type='int',
+  help="Set the TCP deadlock threshold to some value")
+parser.add_option("--max-coalesces-per-cycle", type="int", default=1,
+  help="Maximum insts that may coalesce in a cycle");
+
 parser.add_option("--noL1", action = "store_true", default = False,
   help = "bypassL1")

diff --git a/configs/ruby/GPU_VIPER_Baseline.py  
b/configs/ruby/GPU_VIPER_Baseline.py

index