Go to the documentation of this file.
38 #include "config/the_gpu_isa.hh"
39 #include "debug/GPURename.hh"
45 #include "params/RegisterManager.hh"
52 vrfPoolMgrs(
p.vrf_pool_managers)
54 if (
p.policy ==
"static") {
57 fatal(
"Unimplemented Register Manager Policy");
86 "Min SGPR allocation is not multiple of VRF size\n");
91 "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 Tue Sep 21 2021 12:25:25 for gem5 by doxygen 1.8.17