Go to the documentation of this file.
45 #ifndef __GPU_COMPUTE_HSA_QUEUE_ENTRY__
46 #define __GPU_COMPUTE_HSA_QUEUE_ENTRY__
85 private_segment_size),
98 numVgprs = (akc->granulated_workitem_vgpr_count + 1) * 4;
102 numSgprs = (akc->granulated_wavefront_sgpr_count + 1) * 8;
480 #endif // __GPU_COMPUTE_HSA_QUEUE_ENTRY__
std::bitset< NumScalarInitFields > initialSgprState
uint32_t enable_sgpr_kernarg_segment_ptr
std::bitset< NumVectorInitFields > initialVgprState
int numWgCompleted() const
Addr hostDispPktAddr() const
bool vgprBitEnabled(int bit) const
uint32_t enable_sgpr_flat_scratch_init
int wgSize(int dim) const
const std::string & kernelName() const
uint32_t enable_sgpr_dispatch_id
void updateOutstandingWbs(int val)
Update the number of pending writeback requests.
uint32_t enable_sgpr_workgroup_id_x
void wgId(int dim, int val)
int numVectorRegs() const
bool sgprBitEnabled(int bit) const
uint32_t enable_sgpr_queue_ptr
Addr completionSignal() const
_amd_queue_t amdQueue
Keep a copy of the AMD HSA queue because we need info from some of its fields to initialize register ...
T divCeil(const T &a, const U &b)
void updateOutstandingInvs(int val)
update the number of pending invalidate requests
Addr hostAMDQueueAddr
Host-side addr of the amd_queue_t on which this task was queued.
uint32_t enable_sgpr_private_segment_wave_byte_offset
int outstandingWbs() const
uint32_t enable_sgpr_grid_workgroup_count_z
int gridSize(int dim) const
uint32_t enable_vgpr_workitem_id
bool isInvDone() const
Is invalidate done?
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::array< int, MAX_DIM > _wgId
uint32_t enable_sgpr_grid_workgroup_count_x
uint32_t enable_sgpr_workgroup_id_y
std::array< int, MAX_DIM > _wgSize
int numWgAtBarrier() const
uint32_t enable_sgpr_workgroup_id_z
int _outstandingInvs
Number of outstanding invs for the kernel.
void markInvDone()
Forcefully change the state to be inv done.
uint32_t enable_sgpr_private_segment_buffer
int numScalarRegs() const
int _outstandingWbs
Number of outstanding wbs for the kernel values: 0: 1)initial value, flush has not started for the ke...
int privMemPerItem() const
void parseKernelCode(AMDKernelCode *akc)
std::array< int, MAX_DIM > _numWg
bool dispComplete() const
int numWgArrivedAtBarrier
std::array< int, MAX_DIM > _gridSize
uint32_t enable_sgpr_grid_workgroup_count_y
bool isInvStarted()
Whether invalidate has started or finished -1 is the initial value indicating inv has not started for...
uint32_t enable_sgpr_dispatch_ptr
uint32_t enable_sgpr_private_segment_size
HSAQueueEntry(std::string kernel_name, uint32_t queue_id, int dispatch_id, void *disp_pkt, AMDKernelCode *akc, Addr host_pkt_addr, Addr code_addr)
uint32_t enable_sgpr_workgroup_info
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17