#include <hsa_queue_entry.hh>
|
Addr | hostAMDQueueAddr |
| Host-side addr of the amd_queue_t on which this task was queued.
|
|
_amd_queue_t | amdQueue |
| Keep a copy of the AMD HSA queue because we need info from some of its fields to initialize register state.
|
|
Definition at line 60 of file hsa_queue_entry.hh.
◆ HSAQueueEntry()
gem5::HSAQueueEntry::HSAQueueEntry |
( |
std::string | kernel_name, |
|
|
uint32_t | queue_id, |
|
|
int | dispatch_id, |
|
|
void * | disp_pkt, |
|
|
AMDKernelCode * | akc, |
|
|
Addr | host_pkt_addr, |
|
|
Addr | code_addr, |
|
|
GfxVersion | gfx_version ) |
|
inline |
◆ accumOffset()
unsigned gem5::HSAQueueEntry::accumOffset |
( |
| ) |
const |
|
inline |
◆ codeAddr()
Addr gem5::HSAQueueEntry::codeAddr |
( |
| ) |
const |
|
inline |
◆ completionSignal()
Addr gem5::HSAQueueEntry::completionSignal |
( |
| ) |
const |
|
inline |
◆ contextId()
int gem5::HSAQueueEntry::contextId |
( |
| ) |
const |
|
inline |
◆ dispatchId()
int gem5::HSAQueueEntry::dispatchId |
( |
| ) |
const |
|
inline |
◆ dispComplete()
bool gem5::HSAQueueEntry::dispComplete |
( |
| ) |
const |
|
inline |
◆ dispPktPtr()
void * gem5::HSAQueueEntry::dispPktPtr |
( |
| ) |
|
|
inline |
◆ gfxVersion()
const GfxVersion & gem5::HSAQueueEntry::gfxVersion |
( |
| ) |
const |
|
inline |
◆ globalWgId() [1/2]
int gem5::HSAQueueEntry::globalWgId |
( |
| ) |
const |
|
inline |
◆ globalWgId() [2/2]
void gem5::HSAQueueEntry::globalWgId |
( |
int | val | ) |
|
|
inline |
◆ gridSize()
int gem5::HSAQueueEntry::gridSize |
( |
int | dim | ) |
const |
|
inline |
◆ hostDispPktAddr()
Addr gem5::HSAQueueEntry::hostDispPktAddr |
( |
| ) |
const |
|
inline |
◆ isInvDone()
bool gem5::HSAQueueEntry::isInvDone |
( |
| ) |
const |
|
inline |
◆ isInvStarted()
bool gem5::HSAQueueEntry::isInvStarted |
( |
| ) |
|
|
inline |
◆ kernargAddr()
Addr gem5::HSAQueueEntry::kernargAddr |
( |
| ) |
const |
|
inline |
◆ kernelName()
const std::string & gem5::HSAQueueEntry::kernelName |
( |
| ) |
const |
|
inline |
◆ ldsSize()
int gem5::HSAQueueEntry::ldsSize |
( |
| ) |
const |
|
inline |
◆ markInvDone()
void gem5::HSAQueueEntry::markInvDone |
( |
| ) |
|
|
inline |
◆ markWgDispatch()
void gem5::HSAQueueEntry::markWgDispatch |
( |
| ) |
|
|
inline |
◆ notifyWgCompleted()
void gem5::HSAQueueEntry::notifyWgCompleted |
( |
| ) |
|
|
inline |
◆ numScalarRegs()
int gem5::HSAQueueEntry::numScalarRegs |
( |
| ) |
const |
|
inline |
◆ numVectorRegs()
int gem5::HSAQueueEntry::numVectorRegs |
( |
| ) |
const |
|
inline |
◆ numWg()
int gem5::HSAQueueEntry::numWg |
( |
int | dim | ) |
const |
|
inline |
◆ numWgAtBarrier()
int gem5::HSAQueueEntry::numWgAtBarrier |
( |
| ) |
const |
|
inline |
◆ numWgCompleted()
int gem5::HSAQueueEntry::numWgCompleted |
( |
| ) |
const |
|
inline |
◆ numWgTotal()
int gem5::HSAQueueEntry::numWgTotal |
( |
| ) |
const |
|
inline |
◆ outstandingInvs()
int gem5::HSAQueueEntry::outstandingInvs |
( |
| ) |
|
|
inline |
◆ outstandingWbs()
int gem5::HSAQueueEntry::outstandingWbs |
( |
| ) |
const |
|
inline |
◆ parseKernelCode()
set the enable bits for the initial SGPR state
set the enable bits for the initial VGPR state. the workitem Id in the X dimension is always initialized.
Definition at line 412 of file hsa_queue_entry.hh.
References gem5::DispatchId, gem5::DispatchPtr, gem5::GEM5_PACKED::enable_private_segment, gem5::GEM5_PACKED::enable_sgpr_dispatch_id, gem5::GEM5_PACKED::enable_sgpr_dispatch_ptr, gem5::GEM5_PACKED::enable_sgpr_flat_scratch_init, gem5::GEM5_PACKED::enable_sgpr_kernarg_segment_ptr, gem5::GEM5_PACKED::enable_sgpr_private_segment_buffer, gem5::GEM5_PACKED::enable_sgpr_private_segment_size, gem5::GEM5_PACKED::enable_sgpr_queue_ptr, gem5::GEM5_PACKED::enable_sgpr_workgroup_id_x, gem5::GEM5_PACKED::enable_sgpr_workgroup_id_y, gem5::GEM5_PACKED::enable_sgpr_workgroup_id_z, gem5::GEM5_PACKED::enable_sgpr_workgroup_info, gem5::GEM5_PACKED::enable_vgpr_workitem_id, gem5::FlatScratchInit, gem5::KernargSegPtr, gem5::PrivateSegBuf, gem5::PrivateSegSize, gem5::PrivSegWaveByteOffset, gem5::QueuePtr, gem5::WorkgroupIdX, gem5::WorkgroupIdY, gem5::WorkgroupIdZ, gem5::WorkgroupInfo, gem5::WorkitemIdX, gem5::WorkitemIdY, and gem5::WorkitemIdZ.
◆ privMemPerItem()
int gem5::HSAQueueEntry::privMemPerItem |
( |
| ) |
const |
|
inline |
◆ queueId()
uint32_t gem5::HSAQueueEntry::queueId |
( |
| ) |
const |
|
inline |
◆ sgprBitEnabled()
bool gem5::HSAQueueEntry::sgprBitEnabled |
( |
int | bit | ) |
const |
|
inline |
◆ updateOutstandingInvs()
void gem5::HSAQueueEntry::updateOutstandingInvs |
( |
int | val | ) |
|
|
inline |
◆ updateOutstandingWbs()
void gem5::HSAQueueEntry::updateOutstandingWbs |
( |
int | val | ) |
|
|
inline |
◆ vgprBitEnabled()
bool gem5::HSAQueueEntry::vgprBitEnabled |
( |
int | bit | ) |
const |
|
inline |
◆ wgId() [1/2]
int gem5::HSAQueueEntry::wgId |
( |
int | dim | ) |
const |
|
inline |
◆ wgId() [2/2]
void gem5::HSAQueueEntry::wgId |
( |
int | dim, |
|
|
int | val ) |
|
inline |
◆ wgSize()
int gem5::HSAQueueEntry::wgSize |
( |
int | dim | ) |
const |
|
inline |
◆ _accumOffset
unsigned gem5::HSAQueueEntry::_accumOffset |
|
private |
◆ _completionSignal
Addr gem5::HSAQueueEntry::_completionSignal |
|
private |
◆ _contextId
int gem5::HSAQueueEntry::_contextId |
|
private |
◆ _dispatchId
int gem5::HSAQueueEntry::_dispatchId |
|
private |
◆ _gfxVersion
GfxVersion gem5::HSAQueueEntry::_gfxVersion |
|
private |
◆ _globalWgId
int gem5::HSAQueueEntry::_globalWgId |
|
private |
◆ _gridSize
std::array<int, MAX_DIM> gem5::HSAQueueEntry::_gridSize |
|
private |
◆ _hostDispPktAddr
Addr gem5::HSAQueueEntry::_hostDispPktAddr |
|
private |
◆ _ldsSize
int gem5::HSAQueueEntry::_ldsSize |
|
private |
◆ _numWg
std::array<int, MAX_DIM> gem5::HSAQueueEntry::_numWg |
|
private |
◆ _numWgCompleted
int gem5::HSAQueueEntry::_numWgCompleted |
|
private |
◆ _numWgTotal
int gem5::HSAQueueEntry::_numWgTotal |
|
private |
◆ _outstandingInvs
int gem5::HSAQueueEntry::_outstandingInvs |
|
private |
Number of outstanding invs for the kernel.
values: -1: initial value, invalidate has not started for the kernel 0: 1)-1->0, about to start (a transient state, added in the same cycle) 2)+1->0, all inv requests are finished, i.e., invalidate done ?: positive value, indicating the number of pending inv requests
Definition at line 482 of file hsa_queue_entry.hh.
◆ _outstandingWbs
int gem5::HSAQueueEntry::_outstandingWbs |
|
private |
Number of outstanding wbs for the kernel values: 0: 1)initial value, flush has not started for the kernel 2)+1->0: all wb requests are finished, i.e., flush done ?: positive value, indicating the number of pending wb requests.
Definition at line 490 of file hsa_queue_entry.hh.
◆ _privMemPerItem
int gem5::HSAQueueEntry::_privMemPerItem |
|
private |
◆ _queueId
uint32_t gem5::HSAQueueEntry::_queueId |
|
private |
◆ _wgId
std::array<int, MAX_DIM> gem5::HSAQueueEntry::_wgId |
|
private |
◆ _wgSize
std::array<int, MAX_DIM> gem5::HSAQueueEntry::_wgSize |
|
private |
◆ amdQueue
◆ codeAddress
Addr gem5::HSAQueueEntry::codeAddress |
|
private |
◆ dispatchComplete
bool gem5::HSAQueueEntry::dispatchComplete |
|
private |
◆ dispPkt
void* gem5::HSAQueueEntry::dispPkt |
|
private |
◆ hostAMDQueueAddr
Addr gem5::HSAQueueEntry::hostAMDQueueAddr |
◆ initialSgprState
◆ initialVgprState
◆ kernargAddress
Addr gem5::HSAQueueEntry::kernargAddress |
|
private |
◆ kernName
std::string gem5::HSAQueueEntry::kernName |
|
private |
◆ MAX_DIM
const int gem5::HSAQueueEntry::MAX_DIM = 3 |
|
static |
◆ numSgprs
int gem5::HSAQueueEntry::numSgprs |
|
private |
◆ numVgprs
int gem5::HSAQueueEntry::numVgprs |
|
private |
◆ numWgArrivedAtBarrier
int gem5::HSAQueueEntry::numWgArrivedAtBarrier |
|
private |
The documentation for this class was generated from the following file: