help="number of cycles per LDS bank conflict") parser.add_option('--fast-forward-pseudo-op', action='store_true', help='fast forward using kvm until the m5_switchcpu' ' pseudo-op is encountered, then switch cpus. subsequent' ' m5_switchcpu pseudo-ops will toggle back and forth') parser.add_option('--outOfOrderDataDelivery', action='store_true', default=False, help='enable OoO data delivery in the GM' ' pipeline') Ruby.define_options(parser) #add TLB options to the parser GPUTLBOptions.tlb_options(parser) (options, args) = parser.parse_args() # The GPU cache coherence protocols only work with the backing store setOption(parser, "--access-backing-store") # if benchmark root is specified explicitly, that overrides the search path if options.benchmark_root: benchmark_path = [options.benchmark_root] else: # Set default benchmark search path to current dir benchmark_path = ['.'] ########################## Sanity Check ########################
parser.add_option("--countPages", action="store_true", help="Count Page Accesses and output in per-CU output files") parser.add_option("--TLB-prefetch", type="int", help = "prefetch depth for"\ "TLBs") parser.add_option("--pf-type", type="string", help="type of prefetch: "\ "PF_CU, PF_WF, PF_PHASE, PF_STRIDE") parser.add_option("--pf-stride", type="int", help="set prefetch stride") parser.add_option("--numLdsBanks", type="int", default=32, help="number of physical banks per LDS module") parser.add_option("--ldsBankConflictPenalty", type="int", default=1, help="number of cycles per LDS bank conflict") # Add the ruby specific and protocol specific options Ruby.define_options(parser) GPUTLBOptions.tlb_options(parser) (options, args) = parser.parse_args() # The GPU cache coherence protocols only work with the backing store setOption(parser, "--access-backing-store") # Currently, the sqc (I-Cache of GPU) is shared by # multiple compute units(CUs). The protocol works just fine # even if sqc is not shared. Overriding this option here # so that the user need not explicitly set this (assuming # sharing sqc is the common usage) n_cu = options.num_compute_units num_sqc = int(math.ceil(float(n_cu) / options.cu_per_sqc)) options.num_sqc = num_sqc # pass this to Ruby