38 #include "debug/GPUPort.hh"
46 computeUnit(nullptr), lmQueueSize(p->local_mem_queue_size)
64 bool accessVrf =
true;
67 if ((m) && (m->isLoad() || m->isAtomicRet())) {
72 vrfOperandAccessReady(m->seqNum(),
w,
m,
88 if (m->isStore() || m->isAtomic()) {
93 if (m->isLoad() || m->isAtomic()) {
113 DPRINTF(GPUPort,
"packet was nack'd and put in retry queue");
123 .
name(
name() +
".load_vrf_bank_conflict_cycles")
124 .
desc(
"total number of cycles LDS data are delayed before updating "
ComputeUnit * computeUnit
Stats::Scalar loadVrfBankConflictCycles
std::queue< GPUDynInstPtr > lmIssuedRequests
void init(ComputeUnit *cu)
std::shared_ptr< GPUDynInst > GPUDynInstPtr
ComputeUnit * computeUnit
uint32_t outstandingReqsWrLm
const std::string & name() const
uint32_t outstandingReqsRdLm
bool sendToLds(GPUDynInstPtr gpuDynInst) __attribute__((warn_unused_result))
send a general request to the LDS make sure to look at the return value here as your request might be...
Derived & name(const std::string &name)
Set the name and marks this stat to print at the end of simulation.
std::queue< GPUDynInstPtr > lmReturnedRequests
virtual const std::string name() const
void ScheduleAdd(uint32_t *val, Tick when, int x)
std::vector< VectorRegisterFile * > vrf
Derived & desc(const std::string &_desc)
Set the description and marks this stat to print at the end of simulation.
LocalMemPipeline(const ComputeUnitParams *params)
std::vector< WaitClass > wfWait