rocr/aie: Add initial support for AIE agents

This change adds the initial classes for the AIE agent and AIE AQL
queue.

An AIE agent list is added to the core runtime object.

Change-Id: I84b02f52171b80726dfb2c8431582a3ea2986eb3
This commit is contained in:
Tony Gutierrez
2024-08-19 15:40:30 +00:00
rodzic cb672ebcd1
commit 8ea62f1cea
11 zmienionych plików z 762 dodań i 46 usunięć
@@ -182,7 +182,7 @@ void Runtime::RegisterAgent(Agent* agent, bool Enabled) {
// Record the agent in the node-to-agent reverse lookup table.
agents_by_node_[agent->node_id()].push_back(agent);
// Process agent as a cpu or gpu device.
// Process agent as a CPU, GPU, or AIE device.
if (agent->device_type() == Agent::DeviceType::kAmdCpuDevice) {
cpu_agents_.push_back(agent);
@@ -239,6 +239,8 @@ void Runtime::RegisterAgent(Agent* agent, bool Enabled) {
} else {
disabled_gpu_agents_.push_back(agent);
}
} else if (agent->device_type() == Agent::DeviceType::kAmdAieDevice) {
aie_agents_.push_back(agent);
}
}
@@ -256,6 +258,9 @@ void Runtime::DestroyAgents() {
std::for_each(cpu_agents_.begin(), cpu_agents_.end(), DeleteObject());
cpu_agents_.clear();
std::for_each(aie_agents_.begin(), aie_agents_.end(), DeleteObject());
aie_agents_.clear();
region_gpu_ = NULL;
system_regions_fine_.clear();
@@ -296,7 +301,8 @@ hsa_status_t Runtime::IterateAgent(hsa_status_t (*callback)(hsa_agent_t agent,
void* data) {
AMD::callback_t<decltype(callback)> call(callback);
std::vector<core::Agent*>* agent_lists[2] = {&cpu_agents_, &gpu_agents_};
std::vector<core::Agent *> *agent_lists[3] = {&cpu_agents_, &gpu_agents_,
&aie_agents_};
for (std::vector<core::Agent*>* agent_list : agent_lists) {
for (size_t i = 0; i < agent_list->size(); ++i) {
hsa_agent_t agent = Agent::Convert(agent_list->at(i));