[gem5-dev] Change in gem5/gem5[develop]: configs: add option to set the timeouts for the TCPs and SQCs
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
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