Go to the documentation of this file.
38 #include "config/the_gpu_isa.hh"
39 #include "debug/GPURename.hh"
45 #include "params/RegisterManager.hh"
49 vrfPoolMgrs(
p.vrf_pool_managers)
51 if (
p.policy ==
"static") {
54 fatal(
"Unimplemented Register Manager Policy");
83 "Min SGPR allocation is not multiple of VRF size\n");
88 "Min VGPG allocation is not multiple of VRF size\n");
#define fatal(...)
This implements a cprintf based fatal() function.
virtual void setParent(ComputeUnit *_cu)
bool canAllocateVgprs(int simdId, int nWfs, int demandPerWf)
void allocateRegisters(Wavefront *w, int vectorDemand, int scalarDemand)
virtual int mapVgpr(Wavefront *w, int vgprIndex)=0
virtual bool canAllocateSgprs(int simdId, int nWfs, int demandPerWf)=0
int mapSgpr(Wavefront *w, int sgprIndex)
ComputeUnit * computeUnit
virtual int mapSgpr(Wavefront *w, int sgprIndex)=0
std::vector< ScalarRegisterFile * > srf
std::vector< PoolManager * > vrfPoolMgrs
std::vector< VectorRegisterFile * > vrf
virtual bool canAllocateVgprs(int simdId, int nWfs, int demandPerWf)=0
RegisterManager(const RegisterManagerParams ¶ms)
std::vector< PoolManager * > srfPoolMgrs
RegisterManagerPolicy * policy
bool canAllocateSgprs(int simdId, int nWfs, int demandPerWf)
virtual void allocateRegisters(Wavefront *w, int vectorDemand, int scalarDemand)=0
int mapVgpr(Wavefront *w, int vgprIndex)
void setParent(ComputeUnit *cu)
void freeRegisters(Wavefront *w)
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
virtual void freeRegisters(Wavefront *w)=0
Abstract superclass for simulation objects.
Generated on Tue Jun 22 2021 15:28:28 for gem5 by doxygen 1.8.17