dev-hsa,gpu-compute: Agent Packet handler implemented.
HSA packet processor will now accept and process agent packets.
Type field in packet is command type.
For now:
AgentCmd::Nop = 0
AgentCmd::Steal = 1
Steal command steals the completion signal for a running kernel.
This enables a benchmark to use hsa primitives to send an agent
packet to steal the signal, then wait on that signal.
Minimal working example to be added in gem5-resources.
Change-Id: I37f8a4b7ea1780b471559aecbf4af1050353b0b1
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37015
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Matthew Poremba <matthew.poremba@amd.com>
Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -65,6 +65,13 @@ class GPUCommandProcessor : public HSADevice
|
||||
void setShader(Shader *shader);
|
||||
Shader* shader();
|
||||
|
||||
enum AgentCmd {
|
||||
Nop = 0,
|
||||
Steal = 1
|
||||
};
|
||||
|
||||
void submitAgentDispatchPkt(void *raw_pkt, uint32_t queue_id,
|
||||
Addr host_pkt_addr) override;
|
||||
void submitDispatchPkt(void *raw_pkt, uint32_t queue_id,
|
||||
Addr host_pkt_addr) override;
|
||||
void submitVendorPkt(void *raw_pkt, uint32_t queue_id,
|
||||
|
||||
Reference in New Issue
Block a user