Go to the documentation of this file.
36 #include "config/the_gpu_isa.hh"
37 #include "debug/GPURename.hh"
43 #include "params/RegisterManager.hh"
50 vrfPoolMgrs(
p.vrf_pool_managers)
52 if (
p.policy ==
"static") {
55 fatal(
"Unimplemented Register Manager Policy");
84 "Min SGPR allocation is not multiple of VRF size\n");
89 "Min VGPG allocation is not multiple of VRF size\n");
#define fatal(...)
This implements a cprintf based fatal() function.
virtual void freeRegisters(Wavefront *w)=0
std::vector< ScalarRegisterFile * > srf
virtual void allocateRegisters(Wavefront *w, int vectorDemand, int scalarDemand)=0
void setParent(ComputeUnit *cu)
std::vector< PoolManager * > vrfPoolMgrs
std::vector< VectorRegisterFile * > vrf
int mapSgpr(Wavefront *w, int sgprIndex)
void freeRegisters(Wavefront *w)
virtual void setParent(ComputeUnit *_cu)
std::vector< PoolManager * > srfPoolMgrs
virtual bool canAllocateVgprs(int simdId, int nWfs, int demandPerWf)=0
Abstract superclass for simulation objects.
RegisterManagerPolicy * policy
int mapVgpr(Wavefront *w, int vgprIndex)
virtual int mapSgpr(Wavefront *w, int sgprIndex)=0
void allocateRegisters(Wavefront *w, int vectorDemand, int scalarDemand)
RegisterManager(const RegisterManagerParams ¶ms)
virtual int mapVgpr(Wavefront *w, int vgprIndex)=0
bool canAllocateSgprs(int simdId, int nWfs, int demandPerWf)
virtual bool canAllocateSgprs(int simdId, int nWfs, int demandPerWf)=0
bool canAllocateVgprs(int simdId, int nWfs, int demandPerWf)
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
ComputeUnit * computeUnit
Generated on Sun Jul 30 2023 01:56:57 for gem5 by doxygen 1.8.17