Go to the documentation of this file.
45 #ifndef __DEV_HSA_GPU_COMMAND_PROCESSOR_HH__
46 #define __DEV_HSA_GPU_COMMAND_PROCESSOR_HH__
53 struct GPUCommandProcessorParams;
60 typedef GPUCommandProcessorParams
Params;
74 Addr host_pkt_addr)
override;
76 Addr host_pkt_addr)
override;
78 Addr host_pkt_addr)
override;
99 return signal_handle + offsetof(
amd_signal_t, event_mailbox_ptr);
104 return signal_handle + offsetof(
amd_signal_t, event_id);
194 #endif // __DEV_HSA_GPU_COMMAND_PROCESSOR_HH__
HSAPacketProcessor * hsaPP
void process() override
Callback function invoked on completion of all chunks.
uint64_t functionalReadHsaSignal(Addr signal_handle) override
void dispatchPkt(HSAQueueEntry *task)
Once the CP has finished extracting all relevant information about a task and has initialized the ABI...
GPUDispatcher & dispatcher
HSAQueueDescriptor * getQueueDesc(uint32_t queId)
AddrRangeList getAddrRanges() const override
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
Perform a DMA read of the read_dispatch_id_field_base_byte_offset field, which follows directly after...
uint32_t readDispIdOffset
GPUCommandProcessor()=delete
void submitDispatchPkt(void *raw_pkt, uint32_t queue_id, Addr host_pkt_addr) override
submitDispatchPkt() is the entry point into the CP from the HSAPP and is only meant to be used with A...
uint64_t Tick
Tick count type.
Perform a DMA read of the MQD that corresponds to a hardware queue descriptor (HQD).
void process() override
Callback function invoked on completion of all chunks.
void dmaReadVirt(Addr host_addr, unsigned size, DmaCallback *cb, void *data, Tick delay=0)
Addr getHsaSignalValueAddr(Addr signal_handle)
_amd_queue_t amdQueue
Keep a copy of the AMD HSA queue because we need info from some of its fields to initialize register ...
uint64_t hostReadIndexPtr
void updateHsaSignal(Addr signal_handle, uint64_t signal_value) override
void submitAgentDispatchPkt(void *raw_pkt, uint32_t queue_id, Addr host_pkt_addr) override
submitAgentDispatchPkt() is for accepting agent dispatch packets.
Addr hostAMDQueueAddr
Host-side addr of the amd_queue_t on which this task was queued.
GPUCommandProcessorParams Params
MQDDmaEvent(GPUCommandProcessor &gpu_cmd_proc, HSAQueueEntry *task)
void setShader(Shader *shader)
Addr getHsaSignalEventAddr(Addr signal_handle)
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
GPUCommandProcessor & gpuCmdProc
void attachDriver(HSADriver *driver) override
void submitVendorPkt(void *raw_pkt, uint32_t queue_id, Addr host_pkt_addr) override
submitVendorPkt() is for accepting vendor-specific packets from the HSAPP.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void signalWakeupEvent(uint32_t event_id)
GPUCommandProcessor & gpuCmdProc
void initABI(HSAQueueEntry *task)
The CP is responsible for traversing all HSA-ABI-related data structures from memory and initializing...
ReadDispIdOffsetDmaEvent(GPUCommandProcessor &gpu_cmd_proc, HSAQueueEntry *task)
Addr getHsaSignalMailboxAddr(Addr signal_handle)
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
Generated on Tue Jun 22 2021 15:28:28 for gem5 by doxygen 1.8.17