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:
Matt Sinclair
2024-10-28 17:19:18 -05:00
committed by GitHub
3 changed files with 53 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
RUBY=y
NUMBER_BITS_PER_SET=128
RUBY_PROTOCOL_GPU_VIPER=y
BUILD_ISA=y
USE_X86_ISA=y

View File

@@ -247,12 +247,14 @@ def addAmdGPUOptions(parser):
default="simple",
help="register allocation policy (simple/dynamic)",
)
parser.add_argument(
"--register-file-cache-size",
type=int,
default=0,
help="number of registers in cache",
)
parser.add_argument(
"--memtime-latency",
type=int,
@@ -260,3 +262,47 @@ def addAmdGPUOptions(parser):
default=41,
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.",
)

View File

@@ -76,6 +76,12 @@ def createGPU(system, args):
localMemBarrier=args.LocalMemBarrier,
countPages=args.countPages,
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(
banks=args.numLdsBanks,
bankConflictPenalty=args.ldsBankConflictPenalty,