1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
#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);
PrintPeers(cpu);
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);
PrintPeers(gpu);
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;
}
|