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"
47 #include "config/the_gpu_isa.hh"
54 #include "params/Wavefront.hh"
287 void start(uint64_t _wfDynId, uint64_t _base_ptr);
304 void setWaitCnts(
int vm_wait_cnt,
int exp_wait_cnt,
int lgkm_wait_cnt);
362 #endif // __GPU_COMPUTE_WAVEFRONT_HH__
bool isOldestInstScalarALU()
bool isOldestInstFlatMem()
void resizeRegFiles(int num_vregs, int num_sregs)
std::vector< int > vecReads
std::vector< uint32_t > oldVgpr
Stats::Scalar schOpdNrdyStalls
void start(uint64_t _wfDynId, uint64_t _base_ptr)
void setParent(ComputeUnit *cu)
std::vector< Addr > lastAddr
void decVMemInstsIssued()
uint64_t Tick
Tick count type.
bool isOldestInstPrivMem()
bool isOldestInstScalarMem()
void reserveGmResource(GPUDynInstPtr ii)
@ S_BARRIER
WF is stalled at a barrier.
std::vector< uint32_t > workItemId[3]
Stats::Scalar numTimesBlockedDueWAXDependencies
Stats::Distribution vecRawDistance
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.
Stats::Scalar numTimesBlockedDueRAWDependencies
ComputeUnit * computeUnit
Stats::Scalar numInstrExecuted
int scalarOutstandingReqsRdGm
bool isOldestInstVectorALU()
bool isOldestInstWaitcnt()
void setWaitCnts(int vm_wait_cnt, int exp_wait_cnt, int lgkm_wait_cnt)
@ S_WAITCNT
wavefront has unsatisfied wait counts
void regStats()
Callback to set stat parameters.
void freeRegisterFile()
Freeing VRF space.
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()
Stats::Distribution readsPerWrite
Stats::Scalar schResourceStalls
bool isGmInstruction(GPUDynInstPtr ii)
void reserveLmResource(GPUDynInstPtr ii)
Wavefront(const Params *p)
bool isOldestInstBarrier()
Stats::Scalar schLdsArbStalls
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
Stats::Scalar schRfAccessStalls
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
std::deque< GPUDynInstPtr > instructionBuffer
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
std::vector< int > reserveResources()
void incLGKMInstsIssued()
Abstract superclass for simulation objects.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17