mem-ruby,configs: Add GPU GLC Atomic Resource Constraints (#120)
Added a resource constraint, AtomicALUOperation, to GLC atomics performed in the TCC. The resource constraint uses a new class, ALUFreeList array. The class assumes the following: - There are a fixed number of atomic ALU pipelines - While a new cache line can be processed in each pipeline each cycle, if a cache line is currently going through a pipeline, it can't be processed again until it's finished Two configuration parameters have been used to tune this behavior: - tcc-num-atomic-alus corresponds to the number of atomic ALU pipelines - atomic-alu-latency corresponds to the latency of atomic ALU pipelines Change-Id: I25bdde7dafc3877590bb6536efdf57b8c540a939
This commit is contained in:
committed by
GitHub
parent
f11227b4a0
commit
be5c03ea9f
@@ -275,6 +275,8 @@ class TCC(RubyCache):
|
||||
|
||||
def create(self, options):
|
||||
self.assoc = options.tcc_assoc
|
||||
self.atomicLatency = options.atomic_alu_latency
|
||||
self.atomicALUs = options.tcc_num_atomic_alus
|
||||
if hasattr(options, "bw_scalor") and options.bw_scalor > 0:
|
||||
s = options.num_compute_units
|
||||
tcc_size = s * 128
|
||||
@@ -497,6 +499,15 @@ def define_options(parser):
|
||||
parser.add_argument(
|
||||
"--glc-atomic-latency", type=int, default=1, help="GLC Atomic Latency"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--atomic-alu-latency", type=int, default=0, help="Atomic ALU Latency"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--tcc-num-atomic-alus",
|
||||
type=int,
|
||||
default=64,
|
||||
help="Number of atomic ALUs in the TCC",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--tcp-num-banks",
|
||||
type=int,
|
||||
|
||||
Reference in New Issue
Block a user