Add sample application to use the new memory pool API.
Details:
- add HsaGetInfo program that prints out all available CPU, GPU and their respective memory pools.
[git-p4: depot-paths = "//depot/stg/hsa/drivers/hsa/runtime/": change = 1237219]
[ROCm/ROCR-Runtime commit: c494af9d49]
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
#include "get_info.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
GetInfo::GetInfo() : HsaTest("HSA Info") {}
|
||||
|
||||
GetInfo::~GetInfo() {}
|
||||
|
||||
void GetInfo::Run() {
|
||||
std::cout << std::endl;
|
||||
std::cout << "Num CPUs in platform: " << cpus_.size() << std::endl;
|
||||
std::cout << "------------------------------------------------\n";
|
||||
|
||||
for (size_t i = 0; i < cpus_.size(); ++i) {
|
||||
hsa_agent_t cpu = cpus_[i];
|
||||
std::cout << "CPU[" << i << "] properties:" << std::endl;
|
||||
std::cout << "------------------------------------------------\n";
|
||||
AgentProps prop(cpu);
|
||||
PrintAgentInfo(prop);
|
||||
std::cout << "------------------------------------------------\n";
|
||||
|
||||
hsa_amd_memory_pool_t global_fine = global_fine_[cpu.handle];
|
||||
if (global_fine.handle != 0) {
|
||||
std::cout << "CPU[" << i << "] system fine grain pool properties:\n";
|
||||
std::cout << "------------------------------------------------\n";
|
||||
PoolProps prop(global_fine);
|
||||
PrintPoolInfo(prop);
|
||||
std::cout << "------------------------------------------------\n";
|
||||
}
|
||||
|
||||
hsa_amd_memory_pool_t global_coarse = global_coarse_[cpu.handle];
|
||||
if (global_coarse.handle != 0) {
|
||||
std::cout << "CPU[" << i << "] system coarse grain pool properties:\n";
|
||||
std::cout << "------------------------------------------------\n";
|
||||
PoolProps prop(global_coarse);
|
||||
PrintPoolInfo(prop);
|
||||
std::cout << "------------------------------------------------\n";
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << std::endl;
|
||||
std::cout << "Num GPUs in platform: " << gpus_.size() << std::endl;
|
||||
std::cout << "------------------------------------------------\n";
|
||||
|
||||
for (size_t i = 0; i < gpus_.size(); ++i) {
|
||||
hsa_agent_t gpu = gpus_[i];
|
||||
std::cout << "GPU[" << i << "] properties:" << std::endl;
|
||||
std::cout << "------------------------------------------------\n";
|
||||
AgentProps prop(gpu);
|
||||
PrintAgentInfo(prop);
|
||||
std::cout << "------------------------------------------------\n";
|
||||
|
||||
hsa_amd_memory_pool_t global_coarse = global_coarse_[gpu.handle];
|
||||
if (global_coarse.handle != 0) {
|
||||
std::cout << "GPU[" << i << "] local memory pool properties:\n";
|
||||
std::cout << "------------------------------------------------\n";
|
||||
PoolProps prop(global_coarse);
|
||||
PrintPoolInfo(prop);
|
||||
std::cout << "------------------------------------------------\n";
|
||||
}
|
||||
|
||||
hsa_amd_memory_pool_t group = group_[gpu.handle];
|
||||
if (group.handle != 0) {
|
||||
std::cout << "GPU[" << i << "] group memory pool properties:\n";
|
||||
std::cout << "------------------------------------------------\n";
|
||||
PoolProps prop(group);
|
||||
PrintPoolInfo(prop);
|
||||
std::cout << "------------------------------------------------\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
GetInfo get_info;
|
||||
|
||||
get_info.Init();
|
||||
get_info.Run();
|
||||
get_info.Cleanup();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user