gem5  v20.1.0.0
wavefront.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2011-2017 Advanced Micro Devices, Inc.
3  * All rights reserved.
4  *
5  * For use for simulation and test purposes only
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright notice,
11  * this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright notice,
14  * this list of conditions and the following disclaimer in the documentation
15  * and/or other materials provided with the distribution.
16  *
17  * 3. Neither the name of the copyright holder nor the names of its
18  * contributors may be used to endorse or promote products derived from this
19  * software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31  * POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 #ifndef __GPU_COMPUTE_WAVEFRONT_HH__
35 #define __GPU_COMPUTE_WAVEFRONT_HH__
36 
37 #include <cassert>
38 #include <deque>
39 #include <list>
40 #include <memory>
41 #include <unordered_map>
42 #include <vector>
43 
44 #include "arch/gpu_isa.hh"
45 #include "base/logging.hh"
46 #include "base/types.hh"
47 #include "config/the_gpu_isa.hh"
52 #include "gpu-compute/lds_state.hh"
53 #include "gpu-compute/misc.hh"
54 #include "params/Wavefront.hh"
55 #include "sim/sim_object.hh"
56 
57 class Wavefront : public SimObject
58 {
59  public:
60  enum status_e {
61  // wavefront is stalled
63  // wavefront is returning from a kernel
65  // wavefront is running normally
67  // wavefront is stalled
86  };
87 
88  // HW slot id where the WF is mapped to inside a SIMD unit
89  const int wfSlotId;
90  int kernId;
91  // SIMD unit where the WV has been scheduled
92  const int simdId;
93  // id of the execution unit (or pipeline) where the oldest instruction
94  // of the WF is scheduled
98  // pointer to parent CU
101 
103 
105  bool dropFetch;
106  // last tick during which all WFs in the CU are not idle
108 
109  // Execution unit resource ID's associated with this WF
110  // These are static mappings set at WF slot construction and
111  // based off of the simdId and wfSlotId.
112 
113  // Index to scalarALUs resource vector in CU
115 
116  // Indices into readyList/dispatchList of resources used by this
117  // wavefront
120  int localMem;
122 
123  // number of VGPRs required by WF
124  uint32_t maxVgprs;
125  // number of SGPRs required by WF
126  uint32_t maxSgprs;
127  void freeResources();
129  void setStatus(status_e newStatus);
130  status_e getStatus() { return status; }
131  void resizeRegFiles(int num_vregs, int num_sregs);
134  bool isOldestInstWaitcnt();
135  bool isOldestInstGMem();
136  bool isOldestInstLMem();
137  bool isOldestInstPrivMem();
138  bool isOldestInstFlatMem();
139  bool isOldestInstVectorALU();
140  bool isOldestInstScalarALU();
141  bool isOldestInstScalarMem();
142  bool isOldestInstBarrier();
143 
144  // used for passing spill address to DDInstGPU
148  /* kernel launch parameters */
149  uint32_t workGroupId[3];
150  uint32_t workGroupSz[3];
151  uint32_t gridSz[3];
152  uint32_t wgId;
153  uint32_t wgSz;
154  /* the actual WG size can differ than the maximum size */
155  uint32_t actualWgSz[3];
156  uint32_t actualWgSzTotal;
157  void computeActualWgSz(HSAQueueEntry *task);
158  // wavefront id within a workgroup
159  uint32_t wfId;
160  uint32_t maxDynWaveId;
161  uint32_t dispatchId;
162  // vector and scalar memory requests pending in memory system
164  // outstanding global memory write requests
166  // outstanding local memory write requests
168  // outstanding global memory read requests
170  // outstanding local memory read requests
172  // outstanding scalar memory read requests
174  // outstanding scalar memory write requests
182 
184  uint64_t lastTrace;
185  // number of virtual vector registers reserved by WF
187  // number of virtual scalar registers reserved by WF
189  // Index into the Vector Register File's namespace where the WF's registers
190  // will live while the WF is executed
191  uint32_t startVgprIndex;
192  // Index into the Scalar Register File's namespace where the WF's registers
193  // will live while the WF is executed
194  uint32_t startSgprIndex;
195 
196  // Old value of destination gpr (for trace)
198  // Id of destination gpr (for trace)
199  uint32_t oldVgprId;
200  // Tick count of last old_vgpr copy
201  uint64_t oldVgprTcnt;
202 
203  // Old value of destination gpr (for trace)
205  // Id of destination gpr (for trace)
206  uint32_t oldDgprId;
207  // Tick count of last old_vgpr copy
208  uint64_t oldDgprTcnt;
209 
210  // Execution mask at wavefront start
212 
213  // a pointer to the fraction of the LDS allocated
214  // to this workgroup (thus this wavefront)
216 
217  // unique WF id over all WFs executed across all CUs
218  uint64_t wfDynId;
219 
220  // Wavefront slot stats
221 
222  // Number of instructions executed by this wavefront slot across all
223  // dynamic wavefronts
225 
226  // Number of cycles this WF spends in SCH stage
228 
229  // Number of stall cycles encounterd by this WF in SCH stage
231 
232  // The following stats sum to the value of schStalls, and record, per
233  // WF slot, what the cause of each stall was at a coarse granularity.
234 
235  // Cycles WF is selected by scheduler, but RFs cannot support instruction
237  // Cycles spent waiting for execution resources
239  // cycles spent waiting for RF reads to complete in SCH stage
241  // LDS arbitration stall cycles. WF attempts to execute LM instruction,
242  // but another wave is executing FLAT, which requires LM and GM and forces
243  // this WF to stall.
245 
246  // number of times an instruction of a WF is blocked from being issued
247  // due to WAR and WAW dependencies
249  // number of times an instruction of a WF is blocked from being issued
250  // due to WAR and WAW dependencies
252 
253  // dyn inst id (per SIMD) of last instruction exec from this wave
254  uint64_t lastInstExec;
255 
256  // Distribution to track the distance between producer and consumer
257  // for vector register values
259  // Map to track the dyn instruction id of each vector register value
260  // produced, indexed by physical vector register ID
261  std::unordered_map<int,uint64_t> rawDist;
262 
263  // Distribution to track the number of times every vector register
264  // value produced is consumed.
266  // Counts the number of reads performed to each physical register
267  // - counts are reset to 0 for each dynamic wavefront launched
269 
270  void initRegState(HSAQueueEntry *task, int wgSizeInWorkItems);
271 
272  // context for save/restore
273  uint8_t *context;
274 
275  typedef WavefrontParams Params;
276  Wavefront(const Params *p);
277  ~Wavefront();
278  virtual void init();
279 
280  void
282  {
283  computeUnit = cu;
284  }
285 
287  void start(uint64_t _wfDynId, uint64_t _base_ptr);
288  void exec();
289  // called by SCH stage to reserve
291  bool stopFetch();
292  void regStats();
293 
294  Addr pc() const;
295  void pc(Addr new_pc);
296 
297  VectorMask& execMask();
298  bool execMask(int lane) const;
299 
300 
301  void discardFetch();
302 
303  bool waitCntsSatisfied();
304  void setWaitCnts(int vm_wait_cnt, int exp_wait_cnt, int lgkm_wait_cnt);
305  void clearWaitCnts();
306 
307  void incVMemInstsIssued();
308  void incExpInstsIssued();
309  void incLGKMInstsIssued();
310  void decVMemInstsIssued();
311  void decExpInstsIssued();
312  void decLGKMInstsIssued();
313 
315  void freeRegisterFile();
316 
317  TheGpuISA::GPUISA&
319  {
320  return _gpuISA;
321  }
322 
323  void barrierId(int bar_id);
324  int barrierId() const;
325  bool hasBarrier() const;
326  void releaseBarrier();
327 
328  private:
329  TheGpuISA::GPUISA _gpuISA;
330 
333 
359  int barId;
360 };
361 
362 #endif // __GPU_COMPUTE_WAVEFRONT_HH__
Wavefront::isOldestInstScalarALU
bool isOldestInstScalarALU()
Definition: wavefront.cc:678
Wavefront::barId
int barId
Definition: wavefront.hh:359
Wavefront::isOldestInstFlatMem
bool isOldestInstFlatMem()
Definition: wavefront.cc:773
Wavefront::schCycles
Stats::Scalar schCycles
Definition: wavefront.hh:227
hsa_queue_entry.hh
Wavefront::wrGmReqsInPipe
int wrGmReqsInPipe
Definition: wavefront.hh:179
Wavefront::clearWaitCnts
void clearWaitCnts()
Definition: wavefront.cc:1336
Wavefront::schStalls
Stats::Scalar schStalls
Definition: wavefront.hh:230
Wavefront::lgkmInstsIssued
int lgkmInstsIssued
Definition: wavefront.hh:355
Wavefront::scalarMem
int scalarMem
Definition: wavefront.hh:121
Wavefront::startVgprIndex
uint32_t startVgprIndex
Definition: wavefront.hh:191
Wavefront::barrierId
int barrierId() const
Definition: wavefront.cc:1445
Wavefront::maxIbSize
int maxIbSize
Definition: wavefront.hh:100
Wavefront::resizeRegFiles
void resizeRegFiles(int num_vregs, int num_sregs)
Definition: wavefront.cc:580
Wavefront::vecReads
std::vector< int > vecReads
Definition: wavefront.hh:268
Wavefront::oldVgprTcnt
uint64_t oldVgprTcnt
Definition: wavefront.hh:201
Wavefront::maxDynWaveId
uint32_t maxDynWaveId
Definition: wavefront.hh:160
Wavefront::globalMem
int globalMem
Definition: wavefront.hh:119
Wavefront::_execMask
VectorMask _execMask
Definition: wavefront.hh:358
Wavefront::oldVgpr
std::vector< uint32_t > oldVgpr
Definition: wavefront.hh:197
Wavefront::vmemInstsIssued
int vmemInstsIssued
Definition: wavefront.hh:353
Wavefront::schOpdNrdyStalls
Stats::Scalar schOpdNrdyStalls
Definition: wavefront.hh:240
Wavefront::S_RUNNING
@ S_RUNNING
Definition: wavefront.hh:66
Wavefront::start
void start(uint64_t _wfDynId, uint64_t _base_ptr)
Definition: wavefront.cc:628
compute_unit.hh
Wavefront::wgSz
uint32_t wgSz
Definition: wavefront.hh:153
Wavefront::setParent
void setParent(ComputeUnit *cu)
Definition: wavefront.hh:281
Wavefront::lastAddr
std::vector< Addr > lastAddr
Definition: wavefront.hh:145
Wavefront::Params
WavefrontParams Params
Definition: wavefront.hh:275
Wavefront::scalarRdGmReqsInPipe
int scalarRdGmReqsInPipe
Definition: wavefront.hh:180
Wavefront::decVMemInstsIssued
void decVMemInstsIssued()
Definition: wavefront.cc:1368
misc.hh
Tick
uint64_t Tick
Tick count type.
Definition: types.hh:63
Wavefront::isOldestInstPrivMem
bool isOldestInstPrivMem()
Definition: wavefront.cc:760
Wavefront::isOldestInstScalarMem
bool isOldestInstScalarMem()
Definition: wavefront.cc:734
Wavefront::status
status_e status
Definition: wavefront.hh:356
Wavefront::pc
Addr pc() const
Definition: wavefront.cc:1386
std::vector< Addr >
Wavefront::reserveGmResource
void reserveGmResource(GPUDynInstPtr ii)
Definition: wavefront.cc:819
Wavefront::scalarWrGmReqsInPipe
int scalarWrGmReqsInPipe
Definition: wavefront.hh:181
Wavefront::wfId
uint32_t wfId
Definition: wavefront.hh:159
Wavefront::oldVgprId
uint32_t oldVgprId
Definition: wavefront.hh:199
Wavefront::scalarAluGlobalIdx
int scalarAluGlobalIdx
Definition: wavefront.hh:118
Wavefront::S_BARRIER
@ S_BARRIER
WF is stalled at a barrier.
Definition: wavefront.hh:85
Wavefront::workItemId
std::vector< uint32_t > workItemId[3]
Definition: wavefront.hh:146
Wavefront::dropFetch
bool dropFetch
Definition: wavefront.hh:105
HSAQueueEntry
Definition: hsa_queue_entry.hh:60
Wavefront::actualWgSz
uint32_t actualWgSz[3]
Definition: wavefront.hh:155
Wavefront::numTimesBlockedDueWAXDependencies
Stats::Scalar numTimesBlockedDueWAXDependencies
Definition: wavefront.hh:248
Wavefront::incExpInstsIssued
void incExpInstsIssued()
Definition: wavefront.cc:1356
Wavefront::vecRawDistance
Stats::Distribution vecRawDistance
Definition: wavefront.hh:258
Wavefront::scalarOutstandingReqsWrGm
int scalarOutstandingReqsWrGm
Definition: wavefront.hh:175
Wavefront::context
uint8_t * context
Definition: wavefront.hh:273
Wavefront::wfSlotId
const int wfSlotId
Definition: wavefront.hh:89
Wavefront::vmWaitCnt
int vmWaitCnt
the following are used for waitcnt instructions vmWaitCnt: once set, we wait for the oustanding numbe...
Definition: wavefront.hh:350
Wavefront::setStatus
void setStatus(status_e newStatus)
Definition: wavefront.cc:591
Wavefront::actualWgSzTotal
uint32_t actualWgSzTotal
Definition: wavefront.hh:156
Wavefront::wrLmReqsInPipe
int wrLmReqsInPipe
Definition: wavefront.hh:178
Stats::Scalar
This is a simple scalar statistic, like a counter.
Definition: statistics.hh:2533
ComputeUnit
Definition: compute_unit.hh:198
Wavefront::numTimesBlockedDueRAWDependencies
Stats::Scalar numTimesBlockedDueRAWDependencies
Definition: wavefront.hh:251
Wavefront::S_STALLED
@ S_STALLED
Definition: wavefront.hh:68
Wavefront::getStatus
status_e getStatus()
Definition: wavefront.hh:130
Wavefront::ldsChunk
LdsChunk * ldsChunk
Definition: wavefront.hh:215
Wavefront::outstandingReqs
int outstandingReqs
Definition: wavefront.hh:163
Wavefront::computeUnit
ComputeUnit * computeUnit
Definition: wavefront.hh:99
Wavefront::S_RETURNING
@ S_RETURNING
Definition: wavefront.hh:64
Wavefront::discardFetch
void discardFetch()
Definition: wavefront.cc:1235
Wavefront::numInstrExecuted
Stats::Scalar numInstrExecuted
Definition: wavefront.hh:224
Wavefront::scalarOutstandingReqsRdGm
int scalarOutstandingReqsRdGm
Definition: wavefront.hh:173
Wavefront::exec
void exec()
Definition: wavefront.cc:921
Wavefront::isOldestInstVectorALU
bool isOldestInstVectorALU()
Definition: wavefront.cc:693
Wavefront::localMem
int localMem
Definition: wavefront.hh:120
sim_object.hh
Wavefront::isOldestInstWaitcnt
bool isOldestInstWaitcnt()
Definition: wavefront.cc:661
Wavefront::releaseBarrier
void releaseBarrier()
Definition: wavefront.cc:1457
Wavefront::freeResources
void freeResources()
Definition: wavefront.cc:800
Wavefront::setWaitCnts
void setWaitCnts(int vm_wait_cnt, int exp_wait_cnt, int lgkm_wait_cnt)
Definition: wavefront.cc:1291
Wavefront::startSgprIndex
uint32_t startSgprIndex
Definition: wavefront.hh:194
Wavefront::lastNonIdleTick
Tick lastNonIdleTick
Definition: wavefront.hh:107
Wavefront::S_WAITCNT
@ S_WAITCNT
wavefront has unsatisfied wait counts
Definition: wavefront.hh:81
Wavefront::regStats
void regStats()
Callback to set stat parameters.
Definition: wavefront.cc:106
Wavefront::freeRegisterFile
void freeRegisterFile()
Freeing VRF space.
Definition: wavefront.cc:1410
Wavefront::outstandingReqsRdGm
int outstandingReqsRdGm
Definition: wavefront.hh:169
gpu_dyn_inst.hh
Wavefront::flatGmUnitId
int flatGmUnitId
Definition: wavefront.hh:97
Wavefront::validateRequestCounters
void validateRequestCounters()
Definition: wavefront.cc:805
Wavefront::expInstsIssued
int expInstsIssued
Definition: wavefront.hh:354
Wavefront::isLmInstruction
bool isLmInstruction(GPUDynInstPtr ii)
Definition: wavefront.cc:650
Wavefront::maxSgprs
uint32_t maxSgprs
Definition: wavefront.hh:126
Wavefront::isOldestInstLMem
bool isOldestInstLMem()
Definition: wavefront.cc:747
Wavefront::simdId
const int simdId
Definition: wavefront.hh:92
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
Wavefront::lastInstExec
uint64_t lastInstExec
Definition: wavefront.hh:254
Stats::Distribution
A simple distribution stat.
Definition: statistics.hh:2617
Wavefront::isOldestInstGMem
bool isOldestInstGMem()
Definition: wavefront.cc:721
Wavefront::rdLmReqsInPipe
int rdLmReqsInPipe
Definition: wavefront.hh:176
Wavefront::S_STOPPED
@ S_STOPPED
Definition: wavefront.hh:62
Wavefront::lgkmWaitCnt
int lgkmWaitCnt
Definition: wavefront.hh:352
Wavefront::hasBarrier
bool hasBarrier() const
Definition: wavefront.cc:1451
Wavefront::computeActualWgSz
void computeActualWgSz(HSAQueueEntry *task)
Definition: wavefront.cc:1426
Wavefront::nextInstr
GPUDynInstPtr nextInstr()
Definition: wavefront.cc:1216
Wavefront::rawDist
std::unordered_map< int, uint64_t > rawDist
Definition: wavefront.hh:261
Wavefront::decLGKMInstsIssued
void decLGKMInstsIssued()
Definition: wavefront.cc:1380
Wavefront::decExpInstsIssued
void decExpInstsIssued()
Definition: wavefront.cc:1374
Wavefront::pendingFetch
bool pendingFetch
Definition: wavefront.hh:104
Wavefront::outstandingReqsRdLm
int outstandingReqsRdLm
Definition: wavefront.hh:171
Wavefront::waitCntsSatisfied
bool waitCntsSatisfied()
Definition: wavefront.cc:1248
Wavefront::execUnitId
int execUnitId
Definition: wavefront.hh:95
Wavefront::readsPerWrite
Stats::Distribution readsPerWrite
Definition: wavefront.hh:265
Wavefront::schResourceStalls
Stats::Scalar schResourceStalls
Definition: wavefront.hh:238
Wavefront::isGmInstruction
bool isGmInstruction(GPUDynInstPtr ii)
Definition: wavefront.cc:639
Wavefront::reserveLmResource
void reserveLmResource(GPUDynInstPtr ii)
Definition: wavefront.cc:849
Wavefront::memTraceBusy
int memTraceBusy
Definition: wavefront.hh:183
Wavefront::Wavefront
Wavefront(const Params *p)
Definition: wavefront.cc:52
Wavefront::isOldestInstBarrier
bool isOldestInstBarrier()
Definition: wavefront.cc:708
Wavefront::schLdsArbStalls
Stats::Scalar schLdsArbStalls
Definition: wavefront.hh:244
types.hh
Wavefront::_pc
Addr _pc
Definition: wavefront.hh:357
Wavefront
Definition: wavefront.hh:57
Wavefront::initRegState
void initRegState(HSAQueueEntry *task, int wgSizeInWorkItems)
Definition: wavefront.cc:190
std::deque< GPUDynInstPtr >
Wavefront::execMask
VectorMask & execMask()
Definition: wavefront.cc:1398
Wavefront::wgId
uint32_t wgId
Definition: wavefront.hh:152
GPUDynInstPtr
std::shared_ptr< GPUDynInst > GPUDynInstPtr
Definition: misc.hh:48
Wavefront::workGroupId
uint32_t workGroupId[3]
Definition: wavefront.hh:149
Wavefront::gpuISA
TheGpuISA::GPUISA & gpuISA()
Definition: wavefront.hh:318
logging.hh
LdsChunk
this represents a slice of the overall LDS, intended to be associated with an individual workgroup
Definition: lds_state.hh:55
Wavefront::schRfAccessStalls
Stats::Scalar schRfAccessStalls
Definition: wavefront.hh:236
Wavefront::init
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
Definition: wavefront.cc:175
Wavefront::instructionBuffer
std::deque< GPUDynInstPtr > instructionBuffer
Definition: wavefront.hh:102
Wavefront::kernId
int kernId
Definition: wavefront.hh:90
Wavefront::~Wavefront
~Wavefront()
Definition: wavefront.cc:586
Wavefront::oldDgprTcnt
uint64_t oldDgprTcnt
Definition: wavefront.hh:208
Wavefront::expWaitCnt
int expWaitCnt
Definition: wavefront.hh:351
Wavefront::incVMemInstsIssued
void incVMemInstsIssued()
Definition: wavefront.cc:1350
Wavefront::outstandingReqsWrLm
int outstandingReqsWrLm
Definition: wavefront.hh:167
Wavefront::_gpuISA
TheGpuISA::GPUISA _gpuISA
Definition: wavefront.hh:329
dispatcher.hh
Wavefront::scalarAlu
int scalarAlu
Definition: wavefront.hh:114
Wavefront::workItemFlatId
std::vector< uint32_t > workItemFlatId
Definition: wavefront.hh:147
Wavefront::reservedVectorRegs
int reservedVectorRegs
Definition: wavefront.hh:186
Wavefront::oldDgprId
uint32_t oldDgprId
Definition: wavefront.hh:206
MipsISA::p
Bitfield< 0 > p
Definition: pra_constants.hh:323
Wavefront::rdGmReqsInPipe
int rdGmReqsInPipe
Definition: wavefront.hh:177
Wavefront::flatLmUnitId
int flatLmUnitId
Definition: wavefront.hh:96
Wavefront::oldDgpr
std::vector< uint64_t > oldDgpr
Definition: wavefront.hh:204
VectorMask
std::bitset< std::numeric_limits< unsigned long long >::digits > VectorMask
Definition: misc.hh:44
Wavefront::stopFetch
bool stopFetch()
Definition: wavefront.cc:786
Wavefront::workGroupSz
uint32_t workGroupSz[3]
Definition: wavefront.hh:150
Wavefront::dispatchId
uint32_t dispatchId
Definition: wavefront.hh:161
Wavefront::reservedScalarRegs
int reservedScalarRegs
Definition: wavefront.hh:188
Wavefront::status_e
status_e
Definition: wavefront.hh:60
Wavefront::gridSz
uint32_t gridSz[3]
Definition: wavefront.hh:151
Wavefront::lastTrace
uint64_t lastTrace
Definition: wavefront.hh:184
Wavefront::initMask
VectorMask initMask
Definition: wavefront.hh:211
Wavefront::outstandingReqsWrGm
int outstandingReqsWrGm
Definition: wavefront.hh:165
Wavefront::wfDynId
uint64_t wfDynId
Definition: wavefront.hh:218
Wavefront::reserveResources
std::vector< int > reserveResources()
Definition: wavefront.cc:867
Wavefront::maxVgprs
uint32_t maxVgprs
Definition: wavefront.hh:124
Wavefront::incLGKMInstsIssued
void incLGKMInstsIssued()
Definition: wavefront.cc:1362
lds_state.hh
SimObject
Abstract superclass for simulation objects.
Definition: sim_object.hh:92

Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17