gpu-compute: Added register file cache support

The RFC is defaulted to a size of 0 which removes it completely. To use
the RFC set the --register-file-cache-size to a non-zero multiple of
two. In addition, rfc_pipe_length may be altrered to increase or
decrease RFC latency benefit.

Change-Id: I6f5bf5b750eb64155fbc8c8343e9feadce5c9f79
This commit is contained in:
KaiBatley
2024-01-03 21:30:20 -06:00
parent 1204267fd8
commit 359ac63280
14 changed files with 372 additions and 5 deletions

View File

@@ -38,7 +38,7 @@ SimObject('GPU.py', sim_objects=[
'PoolManager', 'SimplePoolManager', 'DynPoolManager', 'RegisterFile',
'ScalarRegisterFile', 'VectorRegisterFile', 'RegisterManager', 'Wavefront',
'ComputeUnit', 'Shader', 'GPUComputeDriver', 'GPURenderDriver',
'GPUDispatcher', 'GPUCommandProcessor'],
'GPUDispatcher', 'GPUCommandProcessor', 'RegisterFileCache'],
enums=['PrefetchType', 'GfxVersion', 'StorageClassType'])
SimObject('GPUStaticInstFlags.py', enums=['GPUStaticInstFlags'])
SimObject('LdsState.py', sim_objects=['LdsState'])
@@ -71,6 +71,7 @@ Source('dyn_pool_manager.cc')
Source('simple_pool_manager.cc')
Source('static_register_manager_policy.cc')
Source('vector_register_file.cc')
Source('register_file_cache.cc')
Source('wavefront.cc')
DebugFlag('GPUAgentDisp')
@@ -96,6 +97,7 @@ DebugFlag('GPUSRF')
DebugFlag('GPUSync')
DebugFlag('GPUTLB')
DebugFlag('GPUVRF')
DebugFlag('GPURFC')
DebugFlag('GPUVRFSched')
DebugFlag('GPUWgLatency')
DebugFlag('Predictor')
@@ -103,5 +105,5 @@ DebugFlag('WavefrontStack')
CompoundFlag('GPUALL', ['GPUCoalescer', 'GPUDisp', 'GPUExec', 'GPUFetch',
'GPUMem', 'GPUPort', 'GPUSched', 'GPUSRF', 'GPUSync',
'GPUTLB', 'GPUVRF', 'GPUWgLatency', 'GPUKernelInfo',
'GPUInitAbi'])
'GPUTLB', 'GPUVRF', 'GPURFC', 'GPUWgLatency',
'GPUKernelInfo', 'GPUInitAbi'])