Update rocprofiler_query_available_agents(...) (#596)
* Agent info version * Complete implementation - revert "rocprofiler_iterate_agents" to "rocprofiler_query_available_agents" * Misc tweaks - update rocprofiler_query_available_agents impl * Update include/rocprofiler-sdk/agent.h - Fix undocumented param for rocprofiler_query_available_agents
This commit is contained in:
1 parent
19971d5719
commit
1d33d4cf78
5 files changed
+106
-45
No files matched your search
@@ -36,6 +36,7 @@
|
||||
#include <iostream>
|
||||
#include <random>
|
||||
#include <sstream>
|
||||
#include <type_traits>
|
||||
#include <typeinfo>
|
||||
|
||||
TEST(rocprofiler_lib, agent_abi)
|
||||
@@ -132,22 +133,31 @@ TEST(rocprofiler_lib, agent)
|
||||
"#####\n\"; cat ${i}; echo \"\"; done'");
|
||||
EXPECT_EQ(sys_ret_virt, 0);
|
||||
|
||||
auto agents = std::vector<const rocprofiler_agent_t*>{};
|
||||
rocprofiler_available_agents_cb_t iterate_cb =
|
||||
[](const rocprofiler_agent_t** agents_arr, size_t num_agents, void* user_data) {
|
||||
auto* agents_v = static_cast<std::vector<const rocprofiler_agent_t*>*>(user_data);
|
||||
// EXPECT_EQ(num_agents, hsa_agents_v.size());
|
||||
for(size_t i = 0; i < num_agents; ++i)
|
||||
{
|
||||
const auto* agent = agents_arr[i];
|
||||
agents_v->emplace_back(agent);
|
||||
}
|
||||
return ROCPROFILER_STATUS_SUCCESS;
|
||||
};
|
||||
static_assert(std::is_same<rocprofiler_agent_t, rocprofiler_agent_v0_t>::value,
|
||||
"update test to support new agent struct version");
|
||||
|
||||
auto agents = std::vector<const rocprofiler_agent_t*>{};
|
||||
rocprofiler_query_available_agents_cb_t iterate_cb = [](rocprofiler_agent_version_t agents_ver,
|
||||
const void** agents_arr,
|
||||
size_t num_agents,
|
||||
void* user_data) {
|
||||
EXPECT_EQ(agents_ver, ROCPROFILER_AGENT_INFO_VERSION_0);
|
||||
if(agents_ver != ROCPROFILER_AGENT_INFO_VERSION_0) return ROCPROFILER_STATUS_ERROR;
|
||||
|
||||
auto* agents_v = static_cast<std::vector<const rocprofiler_agent_t*>*>(user_data);
|
||||
// EXPECT_EQ(num_agents, hsa_agents_v.size());
|
||||
for(size_t i = 0; i < num_agents; ++i)
|
||||
{
|
||||
const auto* agent = static_cast<const rocprofiler_agent_t*>(agents_arr[i]);
|
||||
agents_v->emplace_back(agent);
|
||||
}
|
||||
return ROCPROFILER_STATUS_SUCCESS;
|
||||
};
|
||||
|
||||
std::cout << "# querying available agents...\n" << std::flush;
|
||||
auto status =
|
||||
rocprofiler_query_available_agents(iterate_cb,
|
||||
rocprofiler_query_available_agents(ROCPROFILER_AGENT_INFO_VERSION_0,
|
||||
iterate_cb,
|
||||
sizeof(rocprofiler_agent_t),
|
||||
const_cast<void*>(static_cast<const void*>(&agents)));
|
||||
|
||||
|
||||
Reference in new issue
Block a user