configs,scons: Update scripts and build_opts to make GPU-FS simulations more configurable (#1693)
This PR adds support for command line arguments in GPU-FS runs to allow the user to configure several parts of the GPU. It also increases the bits per set in the build_opts/VEGA_X86 file to enable GPU-FS simulations to use 64 directories or more.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
RUBY=y
|
RUBY=y
|
||||||
|
NUMBER_BITS_PER_SET=128
|
||||||
RUBY_PROTOCOL_GPU_VIPER=y
|
RUBY_PROTOCOL_GPU_VIPER=y
|
||||||
BUILD_ISA=y
|
BUILD_ISA=y
|
||||||
USE_X86_ISA=y
|
USE_X86_ISA=y
|
||||||
|
|||||||
@@ -247,12 +247,14 @@ def addAmdGPUOptions(parser):
|
|||||||
default="simple",
|
default="simple",
|
||||||
help="register allocation policy (simple/dynamic)",
|
help="register allocation policy (simple/dynamic)",
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--register-file-cache-size",
|
"--register-file-cache-size",
|
||||||
type=int,
|
type=int,
|
||||||
default=0,
|
default=0,
|
||||||
help="number of registers in cache",
|
help="number of registers in cache",
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--memtime-latency",
|
"--memtime-latency",
|
||||||
type=int,
|
type=int,
|
||||||
@@ -260,3 +262,47 @@ def addAmdGPUOptions(parser):
|
|||||||
default=41,
|
default=41,
|
||||||
help="Latency for memtimes in scalar memory pipeline.",
|
help="Latency for memtimes in scalar memory pipeline.",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--vrf_lm_bus_latency",
|
||||||
|
type=int,
|
||||||
|
default=1,
|
||||||
|
help="Latency while accessing shared memory",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--max-cu-tokens",
|
||||||
|
type=int,
|
||||||
|
default=4,
|
||||||
|
help="Number of coalescer tokens per CU",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--mem-req-latency",
|
||||||
|
type=int,
|
||||||
|
default=50,
|
||||||
|
help="Latency for requests from the cu to ruby.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--mem-resp-latency",
|
||||||
|
type=int,
|
||||||
|
default=50,
|
||||||
|
help="Latency for responses from ruby to the cu.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--scalar-mem-req-latency",
|
||||||
|
type=int,
|
||||||
|
default=50,
|
||||||
|
help="Latency for scalar requests from the cu to ruby.",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--scalar-mem-resp-latency",
|
||||||
|
type=int,
|
||||||
|
# Set to 0 as the scalar cache response path does not model
|
||||||
|
# response latency yet and this parameter is currently not used
|
||||||
|
default=0,
|
||||||
|
help="Latency for scalar responses from ruby to the cu.",
|
||||||
|
)
|
||||||
|
|||||||
@@ -76,6 +76,12 @@ def createGPU(system, args):
|
|||||||
localMemBarrier=args.LocalMemBarrier,
|
localMemBarrier=args.LocalMemBarrier,
|
||||||
countPages=args.countPages,
|
countPages=args.countPages,
|
||||||
memtime_latency=args.memtime_latency,
|
memtime_latency=args.memtime_latency,
|
||||||
|
max_cu_tokens=args.max_cu_tokens,
|
||||||
|
vrf_lm_bus_latency=args.vrf_lm_bus_latency,
|
||||||
|
mem_req_latency=args.mem_req_latency,
|
||||||
|
mem_resp_latency=args.mem_resp_latency,
|
||||||
|
scalar_mem_req_latency=args.scalar_mem_req_latency,
|
||||||
|
scalar_mem_resp_latency=args.scalar_mem_resp_latency,
|
||||||
localDataStore=LdsState(
|
localDataStore=LdsState(
|
||||||
banks=args.numLdsBanks,
|
banks=args.numLdsBanks,
|
||||||
bankConflictPenalty=args.ldsBankConflictPenalty,
|
bankConflictPenalty=args.ldsBankConflictPenalty,
|
||||||
|
|||||||
Reference in New Issue
Block a user