Go to the documentation of this file.
34 #ifndef __GPU_COMPUTE_WAVEFRONT_HH__
35 #define __GPU_COMPUTE_WAVEFRONT_HH__
41 #include <unordered_map>
44 #include "arch/gpu_isa.hh"
49 #include "config/the_gpu_isa.hh"
56 #include "params/Wavefront.hh"
254 void start(uint64_t _wfDynId, uint64_t _base_ptr);
270 void setWaitCnts(
int vm_wait_cnt,
int exp_wait_cnt,
int lgkm_wait_cnt);
378 #endif // __GPU_COMPUTE_WAVEFRONT_HH__
bool isOldestInstScalarALU()
bool isOldestInstFlatMem()
Stats::Scalar schResourceStalls
void resizeRegFiles(int num_vregs, int num_sregs)
std::vector< int > vecReads
std::vector< uint32_t > oldVgpr
void start(uint64_t _wfDynId, uint64_t _base_ptr)
Stats::Distribution vecRawDistance
void setParent(ComputeUnit *cu)
std::vector< Addr > lastAddr
Stats::Scalar numTimesBlockedDueWAXDependencies
void decVMemInstsIssued()
uint64_t Tick
Tick count type.
bool isOldestInstPrivMem()
bool isOldestInstScalarMem()
Stats::Scalar numInstrExecuted
void reserveGmResource(GPUDynInstPtr ii)
@ S_BARRIER
WF is stalled at a barrier.
std::vector< uint32_t > workItemId[3]
Wavefront::WavefrontStats stats
int scalarOutstandingReqsWrGm
int vmWaitCnt
the following are used for waitcnt instructions vmWaitCnt: once set, we wait for the oustanding numbe...
void setStatus(status_e newStatus)
This is a simple scalar statistic, like a counter.
ComputeUnit * computeUnit
Stats::Scalar schLdsArbStalls
int scalarOutstandingReqsRdGm
bool isOldestInstVectorALU()
Stats::Scalar schRfAccessStalls
bool isOldestInstWaitcnt()
void setWaitCnts(int vm_wait_cnt, int exp_wait_cnt, int lgkm_wait_cnt)
@ S_WAITCNT
wavefront has unsatisfied wait counts
Stats::Scalar numTimesBlockedDueRAWDependencies
void freeRegisterFile()
Freeing VRF space.
Stats::Scalar schOpdNrdyStalls
void validateRequestCounters()
bool isLmInstruction(GPUDynInstPtr ii)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
A simple distribution stat.
void computeActualWgSz(HSAQueueEntry *task)
GPUDynInstPtr nextInstr()
std::unordered_map< int, uint64_t > rawDist
void decLGKMInstsIssued()
Wavefront(const Params &p)
bool isGmInstruction(GPUDynInstPtr ii)
void reserveLmResource(GPUDynInstPtr ii)
bool isOldestInstBarrier()
Stats::Distribution readsPerWrite
void initRegState(HSAQueueEntry *task, int wgSizeInWorkItems)
std::shared_ptr< GPUDynInst > GPUDynInstPtr
TheGpuISA::GPUISA & gpuISA()
this represents a slice of the overall LDS, intended to be associated with an individual workgroup
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
std::deque< GPUDynInstPtr > instructionBuffer
void setSleepTime(int sleep_time)
void incVMemInstsIssued()
TheGpuISA::GPUISA _gpuISA
std::vector< uint32_t > workItemFlatId
std::vector< uint64_t > oldDgpr
std::bitset< std::numeric_limits< unsigned long long >::digits > VectorMask
WavefrontStats(Stats::Group *parent)
std::vector< int > reserveResources()
void incLGKMInstsIssued()
Abstract superclass for simulation objects.
Generated on Tue Mar 23 2021 19:41:27 for gem5 by doxygen 1.8.17