File: get_info.cpp

package info (click to toggle)
rocr-runtime 6.4.3%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,928 kB
  • sloc: cpp: 126,824; ansic: 41,837; lisp: 1,225; asm: 905; sh: 452; python: 117; makefile: 59
file content (83 lines) | stat: -rw-r--r-- 2,870 bytes parent folder | download
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;
}