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");
std::vector< ScalarRegisterFile * > srf
std::vector< VectorRegisterFile * > vrf
virtual int mapSgpr(Wavefront *w, int sgprIndex)=0
virtual bool canAllocateSgprs(int simdId, int nWfs, int demandPerWf)=0
virtual void setParent(ComputeUnit *_cu)
virtual bool canAllocateVgprs(int simdId, int nWfs, int demandPerWf)=0
virtual int mapVgpr(Wavefront *w, int vgprIndex)=0
virtual void allocateRegisters(Wavefront *w, int vectorDemand, int scalarDemand)=0
virtual void freeRegisters(Wavefront *w)=0
int mapVgpr(Wavefront *w, int vgprIndex)
RegisterManager(const RegisterManagerParams ¶ms)
void allocateRegisters(Wavefront *w, int vectorDemand, int scalarDemand)
void freeRegisters(Wavefront *w)
std::vector< PoolManager * > vrfPoolMgrs
RegisterManagerPolicy * policy
int mapSgpr(Wavefront *w, int sgprIndex)
ComputeUnit * computeUnit
bool canAllocateSgprs(int simdId, int nWfs, int demandPerWf)
std::vector< PoolManager * > srfPoolMgrs
bool canAllocateVgprs(int simdId, int nWfs, int demandPerWf)
void setParent(ComputeUnit *cu)
Abstract superclass for simulation objects.
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
#define fatal(...)
This implements a cprintf based fatal() function.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.