Go to the documentation of this file.
42 #include "arch/isa.hh"
57 #include "params/Shader.hh"
206 "Currently we support only single process\n");
274 void AccessMem(uint64_t address,
void *ptr, uint32_t size,
int cu_id,
275 MemCmd cmd,
bool suppress_func_errors);
277 void ReadMem(uint64_t address,
void *ptr, uint32_t sz,
int cu_id);
279 void ReadMem(uint64_t address,
void *ptr, uint32_t sz,
int cu_id,
280 bool suppress_func_errors);
282 void WriteMem(uint64_t address,
void *ptr, uint32_t sz,
int cu_id);
284 void WriteMem(uint64_t address,
void *ptr, uint32_t sz,
int cu_id,
285 bool suppress_func_errors);
288 bool suppress_func_errors,
int cu_id);
293 cuList[cu_id] = compute_unit;
306 #endif // __SHADER_HH__
bool isGpuVmApe(Addr addr) const
Stats::Vector vectorInstDstOperand
std::vector< int32_t > sa_x
void functionalTLBAccess(PacketPtr pkt, int cu_id, BaseTLB::Mode mode)
void updateContext(int cid)
Stats::Distribution gmToCompleteLatency
EventFunctionWrapper tickEvent
void initShHiddenPrivateBase(Addr queueBase, uint32_t offset)
void registerCU(int cu_id, ComputeUnit *compute_unit)
const ApertureRegister & scratchApe() const
void prepareFlush(GPUDynInstPtr gpuDynInst)
dispatcher/shader arranges flush requests to the CUs
uint64_t Tick
Tick count type.
Stats::Distribution allLatencyDist
void WriteMem(uint64_t address, void *ptr, uint32_t sz, int cu_id)
void sampleLineRoundTrip(const std::map< Addr, std::vector< Tick >> &roundTripTime)
Addr shHiddenPrivateBaseVmid
std::shared_ptr< Request > RequestPtr
Stats::Distribution gmEnqueueLatency
void prepareInvalidate(HSAQueueEntry *task)
A vector of scalar stats.
void ReadMem(uint64_t address, void *ptr, uint32_t sz, int cu_id)
void doFunctionalAccess(const RequestPtr &req, MemCmd cmd, void *data, bool suppress_func_errors, int cu_id)
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
Stats::Distribution storeLatencyDist
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interf...
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
This is a simple scalar statistic, like a counter.
GPUDispatcher & dispatcher()
Stats::Distribution initToCoalesceLatency
void regStats()
Callback to set stat parameters.
GPUCommandProcessor & gpuCmdProc
ThreadContext is the external interface to all thread state for anything outside of the CPU.
Stats::Vector vectorInstSrcOperand
void AccessMem(uint64_t address, void *ptr, uint32_t size, int cu_id, MemCmd cmd, bool suppress_func_errors)
ApertureRegister _gpuVmApe
const ApertureRegister & ldsApe() const
Addr getHiddenPrivateBase()
std::vector< int * > sa_val
Stats::Scalar shaderActiveTicks
Statistics.
void sampleInstRoundTrip(std::vector< Tick > roundTripTime)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
A simple distribution stat.
Stats::Distribution * cacheBlockRoundTrip
static const int LDS_SIZE
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
std::vector< uint64_t > sa_when
void ScheduleAdd(int *val, Tick when, int x)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Stats::Distribution loadLatencyDist
std::shared_ptr< GPUDynInst > GPUDynInstPtr
Stats::Distribution coalsrLineAddresses
bool isScratchApe(Addr addr) const
bool isLdsApe(Addr addr) const
bool processTimingPacket(PacketPtr pkt)
Stats::Distribution rubyNetworkLatency
void sampleLoad(const Tick accessTime)
bool dispatchWorkgroups(HSAQueueEntry *task)
GPUDispatcher & _dispatcher
void sampleStore(const Tick accessTime)
ApertureRegister _scratchApe
std::vector< ComputeUnit * > cuList
const ApertureRegister & gpuVmApe() const
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17