enable CPU map and multiple streams for ARM Linux (#17450)
* enable CPU map for ARM Linux based on freqency information * fix code style issue * fix code style issue * remove 'streams = 1' WA for ARM linux * update for typo and comments * update for comments * keep WA * keep WA of streams = 1 for ARM Linux * update num_streams WA for ARM Linux in test case * update for comments * update for comments * update for comments * update for comments * update for merge conflict * update and add test case for MTL
This commit is contained in:
@@ -23,24 +23,79 @@ CPU::CPU() {
|
||||
std::vector<std::vector<std::string>> system_info_table;
|
||||
|
||||
_num_threads = parallel_get_max_threads();
|
||||
auto GetCatchInfoLinux = [&]() {
|
||||
_processors = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
system_info_table.resize(_processors, std::vector<std::string>(3));
|
||||
auto get_cache_info_linux = [&]() {
|
||||
int cpu_index = 0;
|
||||
int cache_index = 0;
|
||||
int cache_files = 3;
|
||||
|
||||
for (int n = 0; n < _processors; n++) {
|
||||
for (int m = 0; m < 3; m++) {
|
||||
int Ln = (m == 0) ? m : m + 1;
|
||||
std::vector<std::string> one_info(cache_files);
|
||||
|
||||
std::ifstream cache_file("/sys/devices/system/cpu/cpu" + std::to_string(n) + "/cache/index" +
|
||||
std::to_string(Ln) + "/shared_cpu_list");
|
||||
while (1) {
|
||||
for (int n = 0; n < cache_files; n++) {
|
||||
cache_index = (n == 0) ? n : n + 1;
|
||||
|
||||
std::ifstream cache_file("/sys/devices/system/cpu/cpu" + std::to_string(cpu_index) + "/cache/index" +
|
||||
std::to_string(cache_index) + "/shared_cpu_list");
|
||||
if (!cache_file.is_open()) {
|
||||
return -1;
|
||||
cache_index = -1;
|
||||
break;
|
||||
}
|
||||
std::string cache_info;
|
||||
std::getline(cache_file, cache_info);
|
||||
system_info_table[n][m] += cache_info;
|
||||
one_info[n] = cache_info;
|
||||
}
|
||||
|
||||
if (cache_index == -1) {
|
||||
if (cpu_index == 0) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
system_info_table.push_back(one_info);
|
||||
cpu_index++;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
auto get_freq_info_linux = [&]() {
|
||||
int cpu_index = 0;
|
||||
int cache_index = 0;
|
||||
|
||||
std::vector<std::string> file_name = {"/topology/core_cpus_list",
|
||||
"/topology/physical_package_id",
|
||||
"/cpufreq/cpuinfo_max_freq"};
|
||||
int num_of_files = file_name.size();
|
||||
std::vector<std::string> one_info(num_of_files);
|
||||
|
||||
while (1) {
|
||||
for (int n = 0; n < num_of_files; n++) {
|
||||
cache_index = n;
|
||||
|
||||
std::ifstream cache_file("/sys/devices/system/cpu/cpu" + std::to_string(cpu_index) + file_name[n]);
|
||||
if (!cache_file.is_open()) {
|
||||
cache_index = -1;
|
||||
break;
|
||||
}
|
||||
std::string cache_info;
|
||||
std::getline(cache_file, cache_info);
|
||||
one_info[n] = cache_info;
|
||||
}
|
||||
|
||||
if (cache_index == -1) {
|
||||
if (cpu_index == 0) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
system_info_table.push_back(one_info);
|
||||
cpu_index++;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
@@ -116,17 +171,27 @@ CPU::CPU() {
|
||||
}
|
||||
};
|
||||
|
||||
if (!GetCatchInfoLinux()) {
|
||||
parse_processor_info_linux(_processors,
|
||||
system_info_table,
|
||||
_numa_nodes,
|
||||
_cores,
|
||||
_proc_type_table,
|
||||
_cpu_mapping_table);
|
||||
if (check_valid_cpu() < 0) {
|
||||
OPENVINO_THROW("CPU affinity check failed. No CPU is eligible to run inference.");
|
||||
};
|
||||
} else {
|
||||
if (!get_cache_info_linux()) {
|
||||
parse_cache_info_linux(system_info_table,
|
||||
_processors,
|
||||
_numa_nodes,
|
||||
_cores,
|
||||
_proc_type_table,
|
||||
_cpu_mapping_table);
|
||||
}
|
||||
|
||||
if ((_proc_type_table.size() == 0) || (_proc_type_table[0][MAIN_CORE_PROC] == 0)) {
|
||||
if (!get_freq_info_linux()) {
|
||||
parse_freq_info_linux(system_info_table,
|
||||
_processors,
|
||||
_numa_nodes,
|
||||
_cores,
|
||||
_proc_type_table,
|
||||
_cpu_mapping_table);
|
||||
}
|
||||
}
|
||||
|
||||
if ((_proc_type_table.size() == 0) || (_proc_type_table[0][MAIN_CORE_PROC] == 0)) {
|
||||
/*Previous CPU resource based on calculation*/
|
||||
std::ifstream cpuinfo("/proc/cpuinfo");
|
||||
std::vector<int> processors;
|
||||
@@ -158,21 +223,26 @@ CPU::CPU() {
|
||||
if (_cores == 0) {
|
||||
_cores = _processors;
|
||||
}
|
||||
} else {
|
||||
if (check_valid_cpu() < 0) {
|
||||
OPENVINO_THROW("CPU affinity check failed. No CPU is eligible to run inference.");
|
||||
};
|
||||
}
|
||||
std::vector<std::vector<std::string>>().swap(system_info_table);
|
||||
}
|
||||
|
||||
void parse_processor_info_linux(const int _processors,
|
||||
const std::vector<std::vector<std::string>> system_info_table,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table) {
|
||||
void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_info_table,
|
||||
int& _processors,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table) {
|
||||
int n_group = 0;
|
||||
|
||||
_processors = system_info_table.size();
|
||||
_cpu_mapping_table.resize(_processors, std::vector<int>(CPU_MAP_TABLE_SIZE, -1));
|
||||
|
||||
auto UpdateProcMapping = [&](const int nproc) {
|
||||
auto update_proc_map_info = [&](const int nproc) {
|
||||
if (-1 == _cpu_mapping_table[nproc][CPU_MAP_CORE_ID]) {
|
||||
int core_1 = 0;
|
||||
int core_2 = 0;
|
||||
@@ -209,7 +279,6 @@ void parse_processor_info_linux(const int _processors,
|
||||
_proc_type_table[0][ALL_PROC] += 2;
|
||||
_proc_type_table[0][MAIN_CORE_PROC]++;
|
||||
_proc_type_table[0][HYPER_THREADING_PROC]++;
|
||||
|
||||
} else if ((endpos = system_info_table[nproc][1].find('-', pos)) != std::string::npos) {
|
||||
sub_str = system_info_table[nproc][1].substr(pos, endpos);
|
||||
core_1 = std::stoi(sub_str);
|
||||
@@ -229,7 +298,6 @@ void parse_processor_info_linux(const int _processors,
|
||||
}
|
||||
|
||||
n_group++;
|
||||
|
||||
} else {
|
||||
core_1 = std::stoi(system_info_table[nproc][0]);
|
||||
|
||||
@@ -275,14 +343,13 @@ void parse_processor_info_linux(const int _processors,
|
||||
|
||||
for (int m = core_1; m <= core_2; m++) {
|
||||
_cpu_mapping_table[m][CPU_MAP_SOCKET_ID] = _sockets;
|
||||
UpdateProcMapping(m);
|
||||
update_proc_map_info(m);
|
||||
}
|
||||
|
||||
} else if (pos != std::string::npos) {
|
||||
sub_str = system_info_table[n][2].substr(pos);
|
||||
core_1 = std::stoi(sub_str);
|
||||
_cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID] = _sockets;
|
||||
UpdateProcMapping(core_1);
|
||||
update_proc_map_info(core_1);
|
||||
endpos = pos;
|
||||
}
|
||||
|
||||
@@ -307,4 +374,103 @@ void parse_processor_info_linux(const int _processors,
|
||||
}
|
||||
};
|
||||
|
||||
void parse_freq_info_linux(const std::vector<std::vector<std::string>> system_info_table,
|
||||
int& _processors,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table) {
|
||||
int freq_max = 0;
|
||||
bool ecore_enabled = false;
|
||||
bool ht_enabled = false;
|
||||
|
||||
_processors = system_info_table.size();
|
||||
_sockets = 0;
|
||||
_cores = 0;
|
||||
_cpu_mapping_table.resize(_processors, std::vector<int>(CPU_MAP_TABLE_SIZE, -1));
|
||||
|
||||
std::vector<int> line_value_0(PROC_TYPE_TABLE_SIZE, 0);
|
||||
|
||||
for (int n = 0; n < _processors; n++) {
|
||||
if (-1 == _cpu_mapping_table[n][CPU_MAP_SOCKET_ID]) {
|
||||
std::string::size_type pos = 0;
|
||||
std::string::size_type endpos1 = 0;
|
||||
std::string::size_type endpos2 = 0;
|
||||
std::string sub_str;
|
||||
|
||||
int core_1 = 0;
|
||||
int core_2 = 0;
|
||||
|
||||
if (((endpos1 = system_info_table[n][0].find(',', pos)) != std::string::npos) ||
|
||||
((endpos2 = system_info_table[n][0].find('-', pos)) != std::string::npos)) {
|
||||
endpos1 = (endpos1 != std::string::npos) ? endpos1 : endpos2;
|
||||
sub_str = system_info_table[n][0].substr(pos, endpos1);
|
||||
core_1 = std::stoi(sub_str);
|
||||
sub_str = system_info_table[n][0].substr(endpos1 + 1);
|
||||
core_2 = std::stoi(sub_str);
|
||||
|
||||
_cpu_mapping_table[core_1][CPU_MAP_PROCESSOR_ID] = core_1;
|
||||
_cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID] = std::stoi(system_info_table[core_1][1]);
|
||||
_cpu_mapping_table[core_1][CPU_MAP_CORE_ID] = _cores;
|
||||
_cpu_mapping_table[core_1][CPU_MAP_CORE_TYPE] = HYPER_THREADING_PROC;
|
||||
_cpu_mapping_table[core_1][CPU_MAP_GROUP_ID] = _cores;
|
||||
|
||||
_cpu_mapping_table[core_2][CPU_MAP_PROCESSOR_ID] = core_2;
|
||||
_cpu_mapping_table[core_2][CPU_MAP_SOCKET_ID] = _cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID];
|
||||
_cpu_mapping_table[core_2][CPU_MAP_CORE_ID] = _cpu_mapping_table[core_1][CPU_MAP_CORE_ID];
|
||||
_cpu_mapping_table[core_2][CPU_MAP_CORE_TYPE] = MAIN_CORE_PROC;
|
||||
_cpu_mapping_table[core_2][CPU_MAP_GROUP_ID] = _cpu_mapping_table[core_1][CPU_MAP_GROUP_ID];
|
||||
|
||||
ht_enabled = true;
|
||||
int core_freq = std::stoi(system_info_table[core_1][2]);
|
||||
freq_max = std::max(core_freq, freq_max);
|
||||
|
||||
} else if (system_info_table[n][0].size() > 0) {
|
||||
core_1 = std::stoi(system_info_table[n][0]);
|
||||
|
||||
_cpu_mapping_table[core_1][CPU_MAP_PROCESSOR_ID] = core_1;
|
||||
_cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID] = std::stoi(system_info_table[core_1][1]);
|
||||
_cpu_mapping_table[core_1][CPU_MAP_CORE_ID] = _cores;
|
||||
|
||||
int core_freq = std::stoi(system_info_table[core_1][2]);
|
||||
if (((0 == freq_max) || (core_freq >= freq_max * 0.95)) && (!ht_enabled)) {
|
||||
freq_max = std::max(core_freq, freq_max);
|
||||
_cpu_mapping_table[core_1][CPU_MAP_CORE_TYPE] = MAIN_CORE_PROC;
|
||||
} else {
|
||||
_cpu_mapping_table[core_1][CPU_MAP_CORE_TYPE] = EFFICIENT_CORE_PROC;
|
||||
ecore_enabled = true;
|
||||
}
|
||||
|
||||
_cpu_mapping_table[core_1][CPU_MAP_GROUP_ID] = _cores;
|
||||
}
|
||||
_sockets = std::max(_sockets, _cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID]);
|
||||
_cores++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((_sockets >= 1) && (ecore_enabled)) {
|
||||
_sockets = 0;
|
||||
}
|
||||
|
||||
if (_sockets >= 1) {
|
||||
_proc_type_table.resize(_sockets + 2, std::vector<int>(PROC_TYPE_TABLE_SIZE, 0));
|
||||
for (int n = 0; n < _processors; n++) {
|
||||
_proc_type_table[0][ALL_PROC]++;
|
||||
_proc_type_table[_cpu_mapping_table[n][CPU_MAP_SOCKET_ID] + 1][ALL_PROC]++;
|
||||
|
||||
_proc_type_table[0][_cpu_mapping_table[n][CPU_MAP_CORE_TYPE]]++;
|
||||
_proc_type_table[_cpu_mapping_table[n][CPU_MAP_SOCKET_ID] + 1][_cpu_mapping_table[n][CPU_MAP_CORE_TYPE]]++;
|
||||
}
|
||||
_sockets++;
|
||||
} else {
|
||||
_proc_type_table.resize(1, std::vector<int>(PROC_TYPE_TABLE_SIZE, 0));
|
||||
for (int n = 0; n < _processors; n++) {
|
||||
_proc_type_table[0][ALL_PROC]++;
|
||||
_proc_type_table[0][_cpu_mapping_table[n][CPU_MAP_CORE_TYPE]]++;
|
||||
_cpu_mapping_table[n][CPU_MAP_SOCKET_ID] = 0;
|
||||
}
|
||||
_sockets = 1;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace ov
|
||||
|
||||
@@ -35,21 +35,38 @@ CPU& cpu_info();
|
||||
|
||||
#ifdef __linux__
|
||||
/**
|
||||
* @brief Parse processors infomation on Linux
|
||||
* @param[in] _processors total number for processors in system.
|
||||
* @brief Parse CPU cache infomation on Linux
|
||||
* @param[in] _system_info_table system information for this platform.
|
||||
* @param[out] _processors total number for processors in system.
|
||||
* @param[out] _sockets total number for sockets in system
|
||||
* @param[out] _cores total number for physical CPU cores in system
|
||||
* @param[out] _proc_type_table summary table of number of processors per type
|
||||
* @param[out] _cpu_mapping_table CPU mapping table for each processor
|
||||
* @return
|
||||
*/
|
||||
void parse_processor_info_linux(const int _processors,
|
||||
const std::vector<std::vector<std::string>> _system_info_table,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table);
|
||||
void parse_cache_info_linux(const std::vector<std::vector<std::string>> _system_info_table,
|
||||
int& _processors,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table);
|
||||
|
||||
/**
|
||||
* @brief Parse CPU frequency infomation on Linux
|
||||
* @param[in] _system_info_table system information for this platform.
|
||||
* @param[out] _processors total number for processors in system.
|
||||
* @param[out] _sockets total number for sockets in system
|
||||
* @param[out] _cores total number for physical CPU cores in system
|
||||
* @param[out] _proc_type_table summary table of number of processors per type
|
||||
* @param[out] _cpu_mapping_table CPU mapping table for each processor
|
||||
* @return
|
||||
*/
|
||||
void parse_freq_info_linux(const std::vector<std::vector<std::string>> _system_info_table,
|
||||
int& _processors,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table);
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
@@ -25,24 +25,26 @@ struct LinuxCpuMapTestCase {
|
||||
std::vector<std::vector<std::string>> system_info_table;
|
||||
};
|
||||
|
||||
class LinuxCpuMapParserTests : public CommonTestUtils::TestsCommon,
|
||||
public testing::WithParamInterface<std::tuple<LinuxCpuMapTestCase>> {
|
||||
class LinuxCpuMapCacheParserTests : public CommonTestUtils::TestsCommon,
|
||||
public testing::WithParamInterface<std::tuple<LinuxCpuMapTestCase>> {
|
||||
public:
|
||||
void SetUp() override {
|
||||
const auto& test_data = std::get<0>(GetParam());
|
||||
|
||||
int test_processors = 0;
|
||||
int test_sockets = 0;
|
||||
int test_cores = 0;
|
||||
std::vector<std::vector<int>> test_proc_type_table;
|
||||
std::vector<std::vector<int>> test_cpu_mapping_table;
|
||||
|
||||
ov::parse_processor_info_linux(test_data._processors,
|
||||
test_data.system_info_table,
|
||||
test_sockets,
|
||||
test_cores,
|
||||
test_proc_type_table,
|
||||
test_cpu_mapping_table);
|
||||
ov::parse_cache_info_linux(test_data.system_info_table,
|
||||
test_processors,
|
||||
test_sockets,
|
||||
test_cores,
|
||||
test_proc_type_table,
|
||||
test_cpu_mapping_table);
|
||||
|
||||
ASSERT_EQ(test_data._processors, test_processors);
|
||||
ASSERT_EQ(test_data._sockets, test_sockets);
|
||||
ASSERT_EQ(test_data._cores, test_cores);
|
||||
ASSERT_EQ(test_data._proc_type_table, test_proc_type_table);
|
||||
@@ -50,7 +52,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
LinuxCpuMapTestCase _2sockets_104cores_hyperthreading = {
|
||||
LinuxCpuMapTestCase cache_2sockets_104cores_hyperthreading = {
|
||||
208,
|
||||
2,
|
||||
104,
|
||||
@@ -268,7 +270,7 @@ LinuxCpuMapTestCase _2sockets_104cores_hyperthreading = {
|
||||
{{"102,206"}, {"102,206"}, {"52-103,156-207"}}, {{"103,207"}, {"103,207"}, {"52-103,156-207"}},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase _2sockets_24cores_hyperthreading = {
|
||||
LinuxCpuMapTestCase cache_2sockets_24cores_hyperthreading = {
|
||||
48,
|
||||
2,
|
||||
24,
|
||||
@@ -350,7 +352,7 @@ LinuxCpuMapTestCase _2sockets_24cores_hyperthreading = {
|
||||
{{"23,47"}, {"23,47"}, {"1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47"}},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase _2sockets_48cores = {
|
||||
LinuxCpuMapTestCase cache_2sockets_48cores = {
|
||||
48,
|
||||
2,
|
||||
48,
|
||||
@@ -392,7 +394,7 @@ LinuxCpuMapTestCase _2sockets_48cores = {
|
||||
{{"45"}, {"45"}, {"24-47"}}, {{"46"}, {"46"}, {"24-47"}}, {{"47"}, {"47"}, {"24-47"}},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase _2sockets_20cores_hyperthreading = {
|
||||
LinuxCpuMapTestCase cache_2sockets_20cores_hyperthreading = {
|
||||
40,
|
||||
2,
|
||||
20,
|
||||
@@ -442,7 +444,7 @@ LinuxCpuMapTestCase _2sockets_20cores_hyperthreading = {
|
||||
{{"18,38"}, {"18,38"}, {"10-19,30-39"}}, {{"19,39"}, {"19,39"}, {"10-19,30-39"}},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase _1sockets_14cores_hyperthreading = {
|
||||
LinuxCpuMapTestCase cache_1sockets_14cores_hyperthreading = {
|
||||
20,
|
||||
1,
|
||||
14,
|
||||
@@ -469,7 +471,7 @@ LinuxCpuMapTestCase _1sockets_14cores_hyperthreading = {
|
||||
{{"18"}, {"16-19"}, {"0-19"}}, {{"19"}, {"16-19"}, {"0-19"}},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase _1sockets_10cores_hyperthreading{
|
||||
LinuxCpuMapTestCase cache_1sockets_10cores_hyperthreading{
|
||||
12,
|
||||
1,
|
||||
10,
|
||||
@@ -503,7 +505,7 @@ LinuxCpuMapTestCase _1sockets_10cores_hyperthreading{
|
||||
{{"11"}, {"8-11"}, {"0-11"}},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase _1sockets_8cores_hyperthreading = {
|
||||
LinuxCpuMapTestCase cache_1sockets_8cores_hyperthreading = {
|
||||
12,
|
||||
1,
|
||||
8,
|
||||
@@ -537,7 +539,7 @@ LinuxCpuMapTestCase _1sockets_8cores_hyperthreading = {
|
||||
{{"11"}, {"8-11"}, {"0-11"}},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase _1sockets_6cores_hyperthreading = {
|
||||
LinuxCpuMapTestCase cache_1sockets_6cores_hyperthreading = {
|
||||
12,
|
||||
1,
|
||||
6,
|
||||
@@ -572,18 +574,700 @@ LinuxCpuMapTestCase _1sockets_6cores_hyperthreading = {
|
||||
},
|
||||
};
|
||||
|
||||
TEST_P(LinuxCpuMapParserTests, LinuxCpuMap) {}
|
||||
TEST_P(LinuxCpuMapCacheParserTests, LinuxCpuMapCache) {}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(CPUMap,
|
||||
LinuxCpuMapParserTests,
|
||||
testing::Values(_2sockets_104cores_hyperthreading,
|
||||
_2sockets_24cores_hyperthreading,
|
||||
_2sockets_48cores,
|
||||
_2sockets_20cores_hyperthreading,
|
||||
_1sockets_14cores_hyperthreading,
|
||||
_1sockets_10cores_hyperthreading,
|
||||
_1sockets_8cores_hyperthreading,
|
||||
_1sockets_6cores_hyperthreading));
|
||||
LinuxCpuMapCacheParserTests,
|
||||
testing::Values(cache_2sockets_104cores_hyperthreading,
|
||||
cache_2sockets_24cores_hyperthreading,
|
||||
cache_2sockets_48cores,
|
||||
cache_2sockets_20cores_hyperthreading,
|
||||
cache_1sockets_14cores_hyperthreading,
|
||||
cache_1sockets_10cores_hyperthreading,
|
||||
cache_1sockets_8cores_hyperthreading,
|
||||
cache_1sockets_6cores_hyperthreading));
|
||||
|
||||
class LinuxCpuMapFreqParserTests : public CommonTestUtils::TestsCommon,
|
||||
public testing::WithParamInterface<std::tuple<LinuxCpuMapTestCase>> {
|
||||
public:
|
||||
void SetUp() override {
|
||||
const auto& test_data = std::get<0>(GetParam());
|
||||
|
||||
int test_processors = 0;
|
||||
int test_sockets = 0;
|
||||
int test_cores = 0;
|
||||
std::vector<std::vector<int>> test_proc_type_table;
|
||||
std::vector<std::vector<int>> test_cpu_mapping_table;
|
||||
|
||||
ov::parse_freq_info_linux(test_data.system_info_table,
|
||||
test_processors,
|
||||
test_sockets,
|
||||
test_cores,
|
||||
test_proc_type_table,
|
||||
test_cpu_mapping_table);
|
||||
|
||||
ASSERT_EQ(test_data._processors, test_processors);
|
||||
ASSERT_EQ(test_data._sockets, test_sockets);
|
||||
ASSERT_EQ(test_data._cores, test_cores);
|
||||
ASSERT_EQ(test_data._proc_type_table, test_proc_type_table);
|
||||
ASSERT_EQ(test_data._cpu_mapping_table, test_cpu_mapping_table);
|
||||
}
|
||||
};
|
||||
|
||||
LinuxCpuMapTestCase freq_2sockets_112cores_hyperthreading = {
|
||||
224,
|
||||
2,
|
||||
112,
|
||||
{{224, 112, 0, 112}, {112, 56, 0, 56}, {112, 56, 0, 56}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 0, 24, HYPER_THREADING_PROC, 24, -1}, {25, 0, 25, HYPER_THREADING_PROC, 25, -1},
|
||||
{26, 0, 26, HYPER_THREADING_PROC, 26, -1}, {27, 0, 27, HYPER_THREADING_PROC, 27, -1},
|
||||
{28, 0, 28, HYPER_THREADING_PROC, 28, -1}, {29, 0, 29, HYPER_THREADING_PROC, 29, -1},
|
||||
{30, 0, 30, HYPER_THREADING_PROC, 30, -1}, {31, 0, 31, HYPER_THREADING_PROC, 31, -1},
|
||||
{32, 0, 32, HYPER_THREADING_PROC, 32, -1}, {33, 0, 33, HYPER_THREADING_PROC, 33, -1},
|
||||
{34, 0, 34, HYPER_THREADING_PROC, 34, -1}, {35, 0, 35, HYPER_THREADING_PROC, 35, -1},
|
||||
{36, 0, 36, HYPER_THREADING_PROC, 36, -1}, {37, 0, 37, HYPER_THREADING_PROC, 37, -1},
|
||||
{38, 0, 38, HYPER_THREADING_PROC, 38, -1}, {39, 0, 39, HYPER_THREADING_PROC, 39, -1},
|
||||
{40, 0, 40, HYPER_THREADING_PROC, 40, -1}, {41, 0, 41, HYPER_THREADING_PROC, 41, -1},
|
||||
{42, 0, 42, HYPER_THREADING_PROC, 42, -1}, {43, 0, 43, HYPER_THREADING_PROC, 43, -1},
|
||||
{44, 0, 44, HYPER_THREADING_PROC, 44, -1}, {45, 0, 45, HYPER_THREADING_PROC, 45, -1},
|
||||
{46, 0, 46, HYPER_THREADING_PROC, 46, -1}, {47, 0, 47, HYPER_THREADING_PROC, 47, -1},
|
||||
{48, 0, 48, HYPER_THREADING_PROC, 48, -1}, {49, 0, 49, HYPER_THREADING_PROC, 49, -1},
|
||||
{50, 0, 50, HYPER_THREADING_PROC, 50, -1}, {51, 0, 51, HYPER_THREADING_PROC, 51, -1},
|
||||
{52, 0, 52, HYPER_THREADING_PROC, 52, -1}, {53, 0, 53, HYPER_THREADING_PROC, 53, -1},
|
||||
{54, 0, 54, HYPER_THREADING_PROC, 54, -1}, {55, 0, 55, HYPER_THREADING_PROC, 55, -1},
|
||||
{56, 1, 56, HYPER_THREADING_PROC, 56, -1}, {57, 1, 57, HYPER_THREADING_PROC, 57, -1},
|
||||
{58, 1, 58, HYPER_THREADING_PROC, 58, -1}, {59, 1, 59, HYPER_THREADING_PROC, 59, -1},
|
||||
{60, 1, 60, HYPER_THREADING_PROC, 60, -1}, {61, 1, 61, HYPER_THREADING_PROC, 61, -1},
|
||||
{62, 1, 62, HYPER_THREADING_PROC, 62, -1}, {63, 1, 63, HYPER_THREADING_PROC, 63, -1},
|
||||
{64, 1, 64, HYPER_THREADING_PROC, 64, -1}, {65, 1, 65, HYPER_THREADING_PROC, 65, -1},
|
||||
{66, 1, 66, HYPER_THREADING_PROC, 66, -1}, {67, 1, 67, HYPER_THREADING_PROC, 67, -1},
|
||||
{68, 1, 68, HYPER_THREADING_PROC, 68, -1}, {69, 1, 69, HYPER_THREADING_PROC, 69, -1},
|
||||
{70, 1, 70, HYPER_THREADING_PROC, 70, -1}, {71, 1, 71, HYPER_THREADING_PROC, 71, -1},
|
||||
{72, 1, 72, HYPER_THREADING_PROC, 72, -1}, {73, 1, 73, HYPER_THREADING_PROC, 73, -1},
|
||||
{74, 1, 74, HYPER_THREADING_PROC, 74, -1}, {75, 1, 75, HYPER_THREADING_PROC, 75, -1},
|
||||
{76, 1, 76, HYPER_THREADING_PROC, 76, -1}, {77, 1, 77, HYPER_THREADING_PROC, 77, -1},
|
||||
{78, 1, 78, HYPER_THREADING_PROC, 78, -1}, {79, 1, 79, HYPER_THREADING_PROC, 79, -1},
|
||||
{80, 1, 80, HYPER_THREADING_PROC, 80, -1}, {81, 1, 81, HYPER_THREADING_PROC, 81, -1},
|
||||
{82, 1, 82, HYPER_THREADING_PROC, 82, -1}, {83, 1, 83, HYPER_THREADING_PROC, 83, -1},
|
||||
{84, 1, 84, HYPER_THREADING_PROC, 84, -1}, {85, 1, 85, HYPER_THREADING_PROC, 85, -1},
|
||||
{86, 1, 86, HYPER_THREADING_PROC, 86, -1}, {87, 1, 87, HYPER_THREADING_PROC, 87, -1},
|
||||
{88, 1, 88, HYPER_THREADING_PROC, 88, -1}, {89, 1, 89, HYPER_THREADING_PROC, 89, -1},
|
||||
{90, 1, 90, HYPER_THREADING_PROC, 90, -1}, {91, 1, 91, HYPER_THREADING_PROC, 91, -1},
|
||||
{92, 1, 92, HYPER_THREADING_PROC, 92, -1}, {93, 1, 93, HYPER_THREADING_PROC, 93, -1},
|
||||
{94, 1, 94, HYPER_THREADING_PROC, 94, -1}, {95, 1, 95, HYPER_THREADING_PROC, 95, -1},
|
||||
{96, 1, 96, HYPER_THREADING_PROC, 96, -1}, {97, 1, 97, HYPER_THREADING_PROC, 97, -1},
|
||||
{98, 1, 98, HYPER_THREADING_PROC, 98, -1}, {99, 1, 99, HYPER_THREADING_PROC, 99, -1},
|
||||
{100, 1, 100, HYPER_THREADING_PROC, 100, -1}, {101, 1, 101, HYPER_THREADING_PROC, 101, -1},
|
||||
{102, 1, 102, HYPER_THREADING_PROC, 102, -1}, {103, 1, 103, HYPER_THREADING_PROC, 103, -1},
|
||||
{104, 1, 104, HYPER_THREADING_PROC, 104, -1}, {105, 1, 105, HYPER_THREADING_PROC, 105, -1},
|
||||
{106, 1, 106, HYPER_THREADING_PROC, 106, -1}, {107, 1, 107, HYPER_THREADING_PROC, 107, -1},
|
||||
{108, 1, 108, HYPER_THREADING_PROC, 108, -1}, {109, 1, 109, HYPER_THREADING_PROC, 109, -1},
|
||||
{110, 1, 110, HYPER_THREADING_PROC, 110, -1}, {111, 1, 111, HYPER_THREADING_PROC, 111, -1},
|
||||
{112, 0, 0, MAIN_CORE_PROC, 0, -1}, {113, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{114, 0, 2, MAIN_CORE_PROC, 2, -1}, {115, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{116, 0, 4, MAIN_CORE_PROC, 4, -1}, {117, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{118, 0, 6, MAIN_CORE_PROC, 6, -1}, {119, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{120, 0, 8, MAIN_CORE_PROC, 8, -1}, {121, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{122, 0, 10, MAIN_CORE_PROC, 10, -1}, {123, 0, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{124, 0, 12, MAIN_CORE_PROC, 12, -1}, {125, 0, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{126, 0, 14, MAIN_CORE_PROC, 14, -1}, {127, 0, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{128, 0, 16, MAIN_CORE_PROC, 16, -1}, {129, 0, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{130, 0, 18, MAIN_CORE_PROC, 18, -1}, {131, 0, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{132, 0, 20, MAIN_CORE_PROC, 20, -1}, {133, 0, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{134, 0, 22, MAIN_CORE_PROC, 22, -1}, {135, 0, 23, MAIN_CORE_PROC, 23, -1},
|
||||
{136, 0, 24, MAIN_CORE_PROC, 24, -1}, {137, 0, 25, MAIN_CORE_PROC, 25, -1},
|
||||
{138, 0, 26, MAIN_CORE_PROC, 26, -1}, {139, 0, 27, MAIN_CORE_PROC, 27, -1},
|
||||
{140, 0, 28, MAIN_CORE_PROC, 28, -1}, {141, 0, 29, MAIN_CORE_PROC, 29, -1},
|
||||
{142, 0, 30, MAIN_CORE_PROC, 30, -1}, {143, 0, 31, MAIN_CORE_PROC, 31, -1},
|
||||
{144, 0, 32, MAIN_CORE_PROC, 32, -1}, {145, 0, 33, MAIN_CORE_PROC, 33, -1},
|
||||
{146, 0, 34, MAIN_CORE_PROC, 34, -1}, {147, 0, 35, MAIN_CORE_PROC, 35, -1},
|
||||
{148, 0, 36, MAIN_CORE_PROC, 36, -1}, {149, 0, 37, MAIN_CORE_PROC, 37, -1},
|
||||
{150, 0, 38, MAIN_CORE_PROC, 38, -1}, {151, 0, 39, MAIN_CORE_PROC, 39, -1},
|
||||
{152, 0, 40, MAIN_CORE_PROC, 40, -1}, {153, 0, 41, MAIN_CORE_PROC, 41, -1},
|
||||
{154, 0, 42, MAIN_CORE_PROC, 42, -1}, {155, 0, 43, MAIN_CORE_PROC, 43, -1},
|
||||
{156, 0, 44, MAIN_CORE_PROC, 44, -1}, {157, 0, 45, MAIN_CORE_PROC, 45, -1},
|
||||
{158, 0, 46, MAIN_CORE_PROC, 46, -1}, {159, 0, 47, MAIN_CORE_PROC, 47, -1},
|
||||
{160, 0, 48, MAIN_CORE_PROC, 48, -1}, {161, 0, 49, MAIN_CORE_PROC, 49, -1},
|
||||
{162, 0, 50, MAIN_CORE_PROC, 50, -1}, {163, 0, 51, MAIN_CORE_PROC, 51, -1},
|
||||
{164, 0, 52, MAIN_CORE_PROC, 52, -1}, {165, 0, 53, MAIN_CORE_PROC, 53, -1},
|
||||
{166, 0, 54, MAIN_CORE_PROC, 54, -1}, {167, 0, 55, MAIN_CORE_PROC, 55, -1},
|
||||
{168, 1, 56, MAIN_CORE_PROC, 56, -1}, {169, 1, 57, MAIN_CORE_PROC, 57, -1},
|
||||
{170, 1, 58, MAIN_CORE_PROC, 58, -1}, {171, 1, 59, MAIN_CORE_PROC, 59, -1},
|
||||
{172, 1, 60, MAIN_CORE_PROC, 60, -1}, {173, 1, 61, MAIN_CORE_PROC, 61, -1},
|
||||
{174, 1, 62, MAIN_CORE_PROC, 62, -1}, {175, 1, 63, MAIN_CORE_PROC, 63, -1},
|
||||
{176, 1, 64, MAIN_CORE_PROC, 64, -1}, {177, 1, 65, MAIN_CORE_PROC, 65, -1},
|
||||
{178, 1, 66, MAIN_CORE_PROC, 66, -1}, {179, 1, 67, MAIN_CORE_PROC, 67, -1},
|
||||
{180, 1, 68, MAIN_CORE_PROC, 68, -1}, {181, 1, 69, MAIN_CORE_PROC, 69, -1},
|
||||
{182, 1, 70, MAIN_CORE_PROC, 70, -1}, {183, 1, 71, MAIN_CORE_PROC, 71, -1},
|
||||
{184, 1, 72, MAIN_CORE_PROC, 72, -1}, {185, 1, 73, MAIN_CORE_PROC, 73, -1},
|
||||
{186, 1, 74, MAIN_CORE_PROC, 74, -1}, {187, 1, 75, MAIN_CORE_PROC, 75, -1},
|
||||
{188, 1, 76, MAIN_CORE_PROC, 76, -1}, {189, 1, 77, MAIN_CORE_PROC, 77, -1},
|
||||
{190, 1, 78, MAIN_CORE_PROC, 78, -1}, {191, 1, 79, MAIN_CORE_PROC, 79, -1},
|
||||
{192, 1, 80, MAIN_CORE_PROC, 80, -1}, {193, 1, 81, MAIN_CORE_PROC, 81, -1},
|
||||
{194, 1, 82, MAIN_CORE_PROC, 82, -1}, {195, 1, 83, MAIN_CORE_PROC, 83, -1},
|
||||
{196, 1, 84, MAIN_CORE_PROC, 84, -1}, {197, 1, 85, MAIN_CORE_PROC, 85, -1},
|
||||
{198, 1, 86, MAIN_CORE_PROC, 86, -1}, {199, 1, 87, MAIN_CORE_PROC, 87, -1},
|
||||
{200, 1, 88, MAIN_CORE_PROC, 88, -1}, {201, 1, 89, MAIN_CORE_PROC, 89, -1},
|
||||
{202, 1, 90, MAIN_CORE_PROC, 90, -1}, {203, 1, 91, MAIN_CORE_PROC, 91, -1},
|
||||
{204, 1, 92, MAIN_CORE_PROC, 92, -1}, {205, 1, 93, MAIN_CORE_PROC, 93, -1},
|
||||
{206, 1, 94, MAIN_CORE_PROC, 94, -1}, {207, 1, 95, MAIN_CORE_PROC, 95, -1},
|
||||
{208, 1, 96, MAIN_CORE_PROC, 96, -1}, {209, 1, 97, MAIN_CORE_PROC, 97, -1},
|
||||
{210, 1, 98, MAIN_CORE_PROC, 98, -1}, {211, 1, 99, MAIN_CORE_PROC, 99, -1},
|
||||
{212, 1, 100, MAIN_CORE_PROC, 100, -1}, {213, 1, 101, MAIN_CORE_PROC, 101, -1},
|
||||
{214, 1, 102, MAIN_CORE_PROC, 102, -1}, {215, 1, 103, MAIN_CORE_PROC, 103, -1},
|
||||
{216, 1, 104, MAIN_CORE_PROC, 104, -1}, {217, 1, 105, MAIN_CORE_PROC, 105, -1},
|
||||
{218, 1, 106, MAIN_CORE_PROC, 106, -1}, {219, 1, 107, MAIN_CORE_PROC, 107, -1},
|
||||
{220, 1, 108, MAIN_CORE_PROC, 108, -1}, {221, 1, 109, MAIN_CORE_PROC, 109, -1},
|
||||
{222, 1, 110, MAIN_CORE_PROC, 110, -1}, {223, 1, 111, MAIN_CORE_PROC, 111, -1},
|
||||
},
|
||||
{
|
||||
{"0,112", "0", "2001000"}, {"1,113", "0", "2001000"}, {"2,114", "0", "2001000"},
|
||||
{"3,115", "0", "2001000"}, {"4,116", "0", "2001000"}, {"5,117", "0", "2001000"},
|
||||
{"6,118", "0", "2001000"}, {"7,119", "0", "2001000"}, {"8,120", "0", "2001000"},
|
||||
{"9,121", "0", "2001000"}, {"10,122", "0", "2001000"}, {"11,123", "0", "2001000"},
|
||||
{"12,124", "0", "2001000"}, {"13,125", "0", "2001000"}, {"14,126", "0", "2001000"},
|
||||
{"15,127", "0", "2001000"}, {"16,128", "0", "2001000"}, {"17,129", "0", "2001000"},
|
||||
{"18,130", "0", "2001000"}, {"19,131", "0", "2001000"}, {"20,132", "0", "2001000"},
|
||||
{"21,133", "0", "2001000"}, {"22,134", "0", "2001000"}, {"23,135", "0", "2001000"},
|
||||
{"24,136", "0", "2001000"}, {"25,137", "0", "2001000"}, {"26,138", "0", "2001000"},
|
||||
{"27,139", "0", "2001000"}, {"28,140", "0", "2001000"}, {"29,141", "0", "2001000"},
|
||||
{"30,142", "0", "2001000"}, {"31,143", "0", "2001000"}, {"32,144", "0", "2001000"},
|
||||
{"33,145", "0", "2001000"}, {"34,146", "0", "2001000"}, {"35,147", "0", "2001000"},
|
||||
{"36,148", "0", "2001000"}, {"37,149", "0", "2001000"}, {"38,150", "0", "2001000"},
|
||||
{"39,151", "0", "2001000"}, {"40,152", "0", "2001000"}, {"41,153", "0", "2001000"},
|
||||
{"42,154", "0", "2001000"}, {"43,155", "0", "2001000"}, {"44,156", "0", "2001000"},
|
||||
{"45,157", "0", "2001000"}, {"46,158", "0", "2001000"}, {"47,159", "0", "2001000"},
|
||||
{"48,160", "0", "2001000"}, {"49,161", "0", "2001000"}, {"50,162", "0", "2001000"},
|
||||
{"51,163", "0", "2001000"}, {"52,164", "0", "2001000"}, {"53,165", "0", "2001000"},
|
||||
{"54,166", "0", "2001000"}, {"55,167", "0", "2001000"}, {"56,168", "1", "2001000"},
|
||||
{"57,169", "1", "2001000"}, {"58,170", "1", "2001000"}, {"59,171", "1", "2001000"},
|
||||
{"60,172", "1", "2001000"}, {"61,173", "1", "2001000"}, {"62,174", "1", "2001000"},
|
||||
{"63,175", "1", "2001000"}, {"64,176", "1", "2001000"}, {"65,177", "1", "2001000"},
|
||||
{"66,178", "1", "2001000"}, {"67,179", "1", "2001000"}, {"68,180", "1", "2001000"},
|
||||
{"69,181", "1", "2001000"}, {"70,182", "1", "2001000"}, {"71,183", "1", "2001000"},
|
||||
{"72,184", "1", "2001000"}, {"73,185", "1", "2001000"}, {"74,186", "1", "2001000"},
|
||||
{"75,187", "1", "2001000"}, {"76,188", "1", "2001000"}, {"77,189", "1", "2001000"},
|
||||
{"78,190", "1", "2001000"}, {"79,191", "1", "2001000"}, {"80,192", "1", "2001000"},
|
||||
{"81,193", "1", "2001000"}, {"82,194", "1", "2001000"}, {"83,195", "1", "2001000"},
|
||||
{"84,196", "1", "2001000"}, {"85,197", "1", "2001000"}, {"86,198", "1", "2001000"},
|
||||
{"87,199", "1", "2001000"}, {"88,200", "1", "2001000"}, {"89,201", "1", "2001000"},
|
||||
{"90,202", "1", "2001000"}, {"91,203", "1", "2001000"}, {"92,204", "1", "2001000"},
|
||||
{"93,205", "1", "2001000"}, {"94,206", "1", "2001000"}, {"95,207", "1", "2001000"},
|
||||
{"96,208", "1", "2001000"}, {"97,209", "1", "2001000"}, {"98,210", "1", "2001000"},
|
||||
{"99,211", "1", "2001000"}, {"100,212", "1", "2001000"}, {"101,213", "1", "2001000"},
|
||||
{"102,214", "1", "2001000"}, {"103,215", "1", "2001000"}, {"104,216", "1", "2001000"},
|
||||
{"105,217", "1", "2001000"}, {"106,218", "1", "2001000"}, {"107,219", "1", "2001000"},
|
||||
{"108,220", "1", "2001000"}, {"109,221", "1", "2001000"}, {"110,222", "1", "2001000"},
|
||||
{"111,223", "1", "2001000"}, {"0,112", "0", "2001000"}, {"1,113", "0", "2001000"},
|
||||
{"2,114", "0", "2001000"}, {"3,115", "0", "2001000"}, {"4,116", "0", "2001000"},
|
||||
{"5,117", "0", "2001000"}, {"6,118", "0", "2001000"}, {"7,119", "0", "2001000"},
|
||||
{"8,120", "0", "2001000"}, {"9,121", "0", "2001000"}, {"10,122", "0", "2001000"},
|
||||
{"11,123", "0", "2001000"}, {"12,124", "0", "2001000"}, {"13,125", "0", "2001000"},
|
||||
{"14,126", "0", "2001000"}, {"15,127", "0", "2001000"}, {"16,128", "0", "2001000"},
|
||||
{"17,129", "0", "2001000"}, {"18,130", "0", "2001000"}, {"19,131", "0", "2001000"},
|
||||
{"20,132", "0", "2001000"}, {"21,133", "0", "2001000"}, {"22,134", "0", "2001000"},
|
||||
{"23,135", "0", "2001000"}, {"24,136", "0", "2001000"}, {"25,137", "0", "2001000"},
|
||||
{"26,138", "0", "2001000"}, {"27,139", "0", "2001000"}, {"28,140", "0", "2001000"},
|
||||
{"29,141", "0", "2001000"}, {"30,142", "0", "2001000"}, {"31,143", "0", "2001000"},
|
||||
{"32,144", "0", "2001000"}, {"33,145", "0", "2001000"}, {"34,146", "0", "2001000"},
|
||||
{"35,147", "0", "2001000"}, {"36,148", "0", "2001000"}, {"37,149", "0", "2001000"},
|
||||
{"38,150", "0", "2001000"}, {"39,151", "0", "2001000"}, {"40,152", "0", "2001000"},
|
||||
{"41,153", "0", "2001000"}, {"42,154", "0", "2001000"}, {"43,155", "0", "2001000"},
|
||||
{"44,156", "0", "2001000"}, {"45,157", "0", "2001000"}, {"46,158", "0", "2001000"},
|
||||
{"47,159", "0", "2001000"}, {"48,160", "0", "2001000"}, {"49,161", "0", "2001000"},
|
||||
{"50,162", "0", "2001000"}, {"51,163", "0", "2001000"}, {"52,164", "0", "2001000"},
|
||||
{"53,165", "0", "2001000"}, {"54,166", "0", "2001000"}, {"55,167", "0", "2001000"},
|
||||
{"56,168", "1", "2001000"}, {"57,169", "1", "2001000"}, {"58,170", "1", "2001000"},
|
||||
{"59,171", "1", "2001000"}, {"60,172", "1", "2001000"}, {"61,173", "1", "2001000"},
|
||||
{"62,174", "1", "2001000"}, {"63,175", "1", "2001000"}, {"64,176", "1", "2001000"},
|
||||
{"65,177", "1", "2001000"}, {"66,178", "1", "2001000"}, {"67,179", "1", "2001000"},
|
||||
{"68,180", "1", "2001000"}, {"69,181", "1", "2001000"}, {"70,182", "1", "2001000"},
|
||||
{"71,183", "1", "2001000"}, {"72,184", "1", "2001000"}, {"73,185", "1", "2001000"},
|
||||
{"74,186", "1", "2001000"}, {"75,187", "1", "2001000"}, {"76,188", "1", "2001000"},
|
||||
{"77,189", "1", "2001000"}, {"78,190", "1", "2001000"}, {"79,191", "1", "2001000"},
|
||||
{"80,192", "1", "2001000"}, {"81,193", "1", "2001000"}, {"82,194", "1", "2001000"},
|
||||
{"83,195", "1", "2001000"}, {"84,196", "1", "2001000"}, {"85,197", "1", "2001000"},
|
||||
{"86,198", "1", "2001000"}, {"87,199", "1", "2001000"}, {"88,200", "1", "2001000"},
|
||||
{"89,201", "1", "2001000"}, {"90,202", "1", "2001000"}, {"91,203", "1", "2001000"},
|
||||
{"92,204", "1", "2001000"}, {"93,205", "1", "2001000"}, {"94,206", "1", "2001000"},
|
||||
{"95,207", "1", "2001000"}, {"96,208", "1", "2001000"}, {"97,209", "1", "2001000"},
|
||||
{"98,210", "1", "2001000"}, {"99,211", "1", "2001000"}, {"100,212", "1", "2001000"},
|
||||
{"101,213", "1", "2001000"}, {"102,214", "1", "2001000"}, {"103,215", "1", "2001000"},
|
||||
{"104,216", "1", "2001000"}, {"105,217", "1", "2001000"}, {"106,218", "1", "2001000"},
|
||||
{"107,219", "1", "2001000"}, {"108,220", "1", "2001000"}, {"109,221", "1", "2001000"},
|
||||
{"110,222", "1", "2001000"}, {"111,223", "1", "2001000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_48cores_hyperthreading = {
|
||||
96,
|
||||
2,
|
||||
48,
|
||||
{{96, 48, 0, 48}, {48, 24, 0, 24}, {48, 24, 0, 24}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 25, HYPER_THREADING_PROC, 25, -1},
|
||||
{26, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 27, HYPER_THREADING_PROC, 27, -1},
|
||||
{28, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 29, HYPER_THREADING_PROC, 29, -1},
|
||||
{30, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 31, HYPER_THREADING_PROC, 31, -1},
|
||||
{32, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 33, HYPER_THREADING_PROC, 33, -1},
|
||||
{34, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 35, HYPER_THREADING_PROC, 35, -1},
|
||||
{36, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 37, HYPER_THREADING_PROC, 37, -1},
|
||||
{38, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 39, HYPER_THREADING_PROC, 39, -1},
|
||||
{40, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 41, HYPER_THREADING_PROC, 41, -1},
|
||||
{42, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 43, HYPER_THREADING_PROC, 43, -1},
|
||||
{44, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 45, HYPER_THREADING_PROC, 45, -1},
|
||||
{46, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 47, HYPER_THREADING_PROC, 47, -1},
|
||||
{48, 0, 0, MAIN_CORE_PROC, 0, -1}, {49, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{50, 0, 2, MAIN_CORE_PROC, 2, -1}, {51, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{52, 0, 4, MAIN_CORE_PROC, 4, -1}, {53, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{54, 0, 6, MAIN_CORE_PROC, 6, -1}, {55, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{56, 0, 8, MAIN_CORE_PROC, 8, -1}, {57, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{58, 0, 10, MAIN_CORE_PROC, 10, -1}, {59, 0, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{60, 0, 12, MAIN_CORE_PROC, 12, -1}, {61, 0, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{62, 0, 14, MAIN_CORE_PROC, 14, -1}, {63, 0, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{64, 0, 16, MAIN_CORE_PROC, 16, -1}, {65, 0, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{66, 0, 18, MAIN_CORE_PROC, 18, -1}, {67, 0, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{68, 0, 20, MAIN_CORE_PROC, 20, -1}, {69, 0, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{70, 0, 22, MAIN_CORE_PROC, 22, -1}, {71, 0, 23, MAIN_CORE_PROC, 23, -1},
|
||||
{72, 1, 24, MAIN_CORE_PROC, 24, -1}, {73, 1, 25, MAIN_CORE_PROC, 25, -1},
|
||||
{74, 1, 26, MAIN_CORE_PROC, 26, -1}, {75, 1, 27, MAIN_CORE_PROC, 27, -1},
|
||||
{76, 1, 28, MAIN_CORE_PROC, 28, -1}, {77, 1, 29, MAIN_CORE_PROC, 29, -1},
|
||||
{78, 1, 30, MAIN_CORE_PROC, 30, -1}, {79, 1, 31, MAIN_CORE_PROC, 31, -1},
|
||||
{80, 1, 32, MAIN_CORE_PROC, 32, -1}, {81, 1, 33, MAIN_CORE_PROC, 33, -1},
|
||||
{82, 1, 34, MAIN_CORE_PROC, 34, -1}, {83, 1, 35, MAIN_CORE_PROC, 35, -1},
|
||||
{84, 1, 36, MAIN_CORE_PROC, 36, -1}, {85, 1, 37, MAIN_CORE_PROC, 37, -1},
|
||||
{86, 1, 38, MAIN_CORE_PROC, 38, -1}, {87, 1, 39, MAIN_CORE_PROC, 39, -1},
|
||||
{88, 1, 40, MAIN_CORE_PROC, 40, -1}, {89, 1, 41, MAIN_CORE_PROC, 41, -1},
|
||||
{90, 1, 42, MAIN_CORE_PROC, 42, -1}, {91, 1, 43, MAIN_CORE_PROC, 43, -1},
|
||||
{92, 1, 44, MAIN_CORE_PROC, 44, -1}, {93, 1, 45, MAIN_CORE_PROC, 45, -1},
|
||||
{94, 1, 46, MAIN_CORE_PROC, 46, -1}, {95, 1, 47, MAIN_CORE_PROC, 47, -1},
|
||||
},
|
||||
{
|
||||
{"0,48", "0", "3600000"}, {"1,49", "0", "3600000"}, {"2,50", "0", "3600000"}, {"3,51", "0", "3600000"},
|
||||
{"4,52", "0", "3600000"}, {"5,53", "0", "3600000"}, {"6,54", "0", "3600000"}, {"7,55", "0", "3600000"},
|
||||
{"8,56", "0", "3600000"}, {"9,57", "0", "3600000"}, {"10,58", "0", "3600000"}, {"11,59", "0", "3600000"},
|
||||
{"12,60", "0", "3600000"}, {"13,61", "0", "3600000"}, {"14,62", "0", "3600000"}, {"15,63", "0", "3600000"},
|
||||
{"16,64", "0", "3600000"}, {"17,65", "0", "3600000"}, {"18,66", "0", "3600000"}, {"19,67", "0", "3600000"},
|
||||
{"20,68", "0", "3600000"}, {"21,69", "0", "3600000"}, {"22,70", "0", "3600000"}, {"23,71", "0", "3600000"},
|
||||
{"24,72", "1", "3600000"}, {"25,73", "1", "3600000"}, {"26,74", "1", "3600000"}, {"27,75", "1", "3600000"},
|
||||
{"28,76", "1", "3600000"}, {"29,77", "1", "3600000"}, {"30,78", "1", "3600000"}, {"31,79", "1", "3600000"},
|
||||
{"32,80", "1", "3600000"}, {"33,81", "1", "3600000"}, {"34,82", "1", "3600000"}, {"35,83", "1", "3600000"},
|
||||
{"36,84", "1", "3600000"}, {"37,85", "1", "3600000"}, {"38,86", "1", "3600000"}, {"39,87", "1", "3600000"},
|
||||
{"40,88", "1", "3600000"}, {"41,89", "1", "3600000"}, {"42,90", "1", "3600000"}, {"43,91", "1", "3600000"},
|
||||
{"44,92", "1", "3600000"}, {"45,93", "1", "3600000"}, {"46,94", "1", "3600000"}, {"47,95", "1", "3600000"},
|
||||
{"0,48", "0", "3600000"}, {"1,49", "0", "3600000"}, {"2,50", "0", "3600000"}, {"3,51", "0", "3600000"},
|
||||
{"4,52", "0", "3600000"}, {"5,53", "0", "3600000"}, {"6,54", "0", "3600000"}, {"7,55", "0", "3600000"},
|
||||
{"8,56", "0", "3600000"}, {"9,57", "0", "3600000"}, {"10,58", "0", "3600000"}, {"11,59", "0", "3600000"},
|
||||
{"12,60", "0", "3600000"}, {"13,61", "0", "3600000"}, {"14,62", "0", "3600000"}, {"15,63", "0", "3600000"},
|
||||
{"16,64", "0", "3600000"}, {"17,65", "0", "3600000"}, {"18,66", "0", "3600000"}, {"19,67", "0", "3600000"},
|
||||
{"20,68", "0", "3600000"}, {"21,69", "0", "3600000"}, {"22,70", "0", "3600000"}, {"23,71", "0", "3600000"},
|
||||
{"24,72", "1", "3600000"}, {"25,73", "1", "3600000"}, {"26,74", "1", "3600000"}, {"27,75", "1", "3600000"},
|
||||
{"28,76", "1", "3600000"}, {"29,77", "1", "3600000"}, {"30,78", "1", "3600000"}, {"31,79", "1", "3600000"},
|
||||
{"32,80", "1", "3600000"}, {"33,81", "1", "3600000"}, {"34,82", "1", "3600000"}, {"35,83", "1", "3600000"},
|
||||
{"36,84", "1", "3600000"}, {"37,85", "1", "3600000"}, {"38,86", "1", "3600000"}, {"39,87", "1", "3600000"},
|
||||
{"40,88", "1", "3600000"}, {"41,89", "1", "3600000"}, {"42,90", "1", "3600000"}, {"43,91", "1", "3600000"},
|
||||
{"44,92", "1", "3600000"}, {"45,93", "1", "3600000"}, {"46,94", "1", "3600000"}, {"47,95", "1", "3600000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_20cores_hyperthreading = {
|
||||
40,
|
||||
2,
|
||||
20,
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 1, 10, HYPER_THREADING_PROC, 10, -1}, {11, 1, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 1, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 1, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 1, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1}, {21, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1}, {23, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1}, {25, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1}, {27, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{28, 0, 8, MAIN_CORE_PROC, 8, -1}, {29, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{30, 1, 10, MAIN_CORE_PROC, 10, -1}, {31, 1, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{32, 1, 12, MAIN_CORE_PROC, 12, -1}, {33, 1, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{34, 1, 14, MAIN_CORE_PROC, 14, -1}, {35, 1, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{36, 1, 16, MAIN_CORE_PROC, 16, -1}, {37, 1, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{38, 1, 18, MAIN_CORE_PROC, 18, -1}, {39, 1, 19, MAIN_CORE_PROC, 19, -1},
|
||||
},
|
||||
{
|
||||
{"0,20", "0", "3000000"}, {"1,21", "0", "3000000"}, {"2,22", "0", "3000000"}, {"3,23", "0", "3000000"},
|
||||
{"4,24", "0", "3000000"}, {"5,25", "0", "3000000"}, {"6,26", "0", "3000000"}, {"7,27", "0", "3000000"},
|
||||
{"8,28", "0", "3000000"}, {"9,29", "0", "3000000"}, {"10,30", "1", "3000000"}, {"11,31", "1", "3000000"},
|
||||
{"12,32", "1", "3000000"}, {"13,33", "1", "3000000"}, {"14,34", "1", "3000000"}, {"15,35", "1", "3000000"},
|
||||
{"16,36", "1", "3000000"}, {"17,37", "1", "3000000"}, {"18,38", "1", "3000000"}, {"19,39", "1", "3000000"},
|
||||
{"0,20", "0", "3000000"}, {"1,21", "0", "3000000"}, {"2,22", "0", "3000000"}, {"3,23", "0", "3000000"},
|
||||
{"4,24", "0", "3000000"}, {"5,25", "0", "3000000"}, {"6,26", "0", "3000000"}, {"7,27", "0", "3000000"},
|
||||
{"8,28", "0", "3000000"}, {"9,29", "0", "3000000"}, {"10,30", "1", "3000000"}, {"11,31", "1", "3000000"},
|
||||
{"12,32", "1", "3000000"}, {"13,33", "1", "3000000"}, {"14,34", "1", "3000000"}, {"15,35", "1", "3000000"},
|
||||
{"16,36", "1", "3000000"}, {"17,37", "1", "3000000"}, {"18,38", "1", "3000000"}, {"19,39", "1", "3000000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_20cores = {
|
||||
20,
|
||||
2,
|
||||
20,
|
||||
{{20, 20, 0, 0}, {10, 10, 0, 0}, {10, 10, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 1, MAIN_CORE_PROC, 1, -1}, {2, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{3, 0, 3, MAIN_CORE_PROC, 3, -1}, {4, 0, 4, MAIN_CORE_PROC, 4, -1}, {5, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{6, 0, 6, MAIN_CORE_PROC, 6, -1}, {7, 0, 7, MAIN_CORE_PROC, 7, -1}, {8, 0, 8, MAIN_CORE_PROC, 8, -1},
|
||||
{9, 0, 9, MAIN_CORE_PROC, 9, -1}, {10, 1, 10, MAIN_CORE_PROC, 10, -1}, {11, 1, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{12, 1, 12, MAIN_CORE_PROC, 12, -1}, {13, 1, 13, MAIN_CORE_PROC, 13, -1}, {14, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{15, 1, 15, MAIN_CORE_PROC, 15, -1}, {16, 1, 16, MAIN_CORE_PROC, 16, -1}, {17, 1, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{18, 1, 18, MAIN_CORE_PROC, 18, -1}, {19, 1, 19, MAIN_CORE_PROC, 19, -1},
|
||||
},
|
||||
{
|
||||
{"0", "0", "3000000"}, {"1", "0", "3000000"}, {"2", "0", "3000000"}, {"3", "0", "3000000"},
|
||||
{"4", "0", "3000000"}, {"5", "0", "3000000"}, {"6", "0", "3000000"}, {"7", "0", "3000000"},
|
||||
{"8", "0", "3000000"}, {"9", "0", "3000000"}, {"10", "1", "3000000"}, {"11", "1", "3000000"},
|
||||
{"12", "1", "3000000"}, {"13", "1", "3000000"}, {"14", "1", "3000000"}, {"15", "1", "3000000"},
|
||||
{"16", "1", "3000000"}, {"17", "1", "3000000"}, {"18", "1", "3000000"}, {"19", "1", "3000000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_32cores_hyperthreading = {
|
||||
64,
|
||||
1,
|
||||
32,
|
||||
{{64, 32, 0, 32}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 0, 24, HYPER_THREADING_PROC, 24, -1}, {25, 0, 25, HYPER_THREADING_PROC, 25, -1},
|
||||
{26, 0, 26, HYPER_THREADING_PROC, 26, -1}, {27, 0, 27, HYPER_THREADING_PROC, 27, -1},
|
||||
{28, 0, 28, HYPER_THREADING_PROC, 28, -1}, {29, 0, 29, HYPER_THREADING_PROC, 29, -1},
|
||||
{30, 0, 30, HYPER_THREADING_PROC, 30, -1}, {31, 0, 31, HYPER_THREADING_PROC, 31, -1},
|
||||
{32, 0, 0, MAIN_CORE_PROC, 0, -1}, {33, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{34, 0, 2, MAIN_CORE_PROC, 2, -1}, {35, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{36, 0, 4, MAIN_CORE_PROC, 4, -1}, {37, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{38, 0, 6, MAIN_CORE_PROC, 6, -1}, {39, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{40, 0, 8, MAIN_CORE_PROC, 8, -1}, {41, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{42, 0, 10, MAIN_CORE_PROC, 10, -1}, {43, 0, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{44, 0, 12, MAIN_CORE_PROC, 12, -1}, {45, 0, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{46, 0, 14, MAIN_CORE_PROC, 14, -1}, {47, 0, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{48, 0, 16, MAIN_CORE_PROC, 16, -1}, {49, 0, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{50, 0, 18, MAIN_CORE_PROC, 18, -1}, {51, 0, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{52, 0, 20, MAIN_CORE_PROC, 20, -1}, {53, 0, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{54, 0, 22, MAIN_CORE_PROC, 22, -1}, {55, 0, 23, MAIN_CORE_PROC, 23, -1},
|
||||
{56, 0, 24, MAIN_CORE_PROC, 24, -1}, {57, 0, 25, MAIN_CORE_PROC, 25, -1},
|
||||
{58, 0, 26, MAIN_CORE_PROC, 26, -1}, {59, 0, 27, MAIN_CORE_PROC, 27, -1},
|
||||
{60, 0, 28, MAIN_CORE_PROC, 28, -1}, {61, 0, 29, MAIN_CORE_PROC, 29, -1},
|
||||
{62, 0, 30, MAIN_CORE_PROC, 30, -1}, {63, 0, 31, MAIN_CORE_PROC, 31, -1},
|
||||
},
|
||||
{
|
||||
{"0,32", "0", "3400000"}, {"1,33", "0", "3400000"}, {"2,34", "0", "3400000"}, {"3,35", "0", "3400000"},
|
||||
{"4,36", "0", "3400000"}, {"5,37", "0", "3400000"}, {"6,38", "0", "3400000"}, {"7,39", "0", "3400000"},
|
||||
{"8,40", "0", "3400000"}, {"9,41", "0", "3400000"}, {"10,42", "0", "3400000"}, {"11,43", "0", "3400000"},
|
||||
{"12,44", "0", "3400000"}, {"13,45", "0", "3400000"}, {"14,46", "0", "3400000"}, {"15,47", "0", "3400000"},
|
||||
{"16,48", "0", "3400000"}, {"17,49", "0", "3400000"}, {"18,50", "0", "3400000"}, {"19,51", "0", "3400000"},
|
||||
{"20,52", "0", "3400000"}, {"21,53", "0", "3400000"}, {"22,54", "0", "3400000"}, {"23,55", "0", "3400000"},
|
||||
{"24,56", "0", "3400000"}, {"25,57", "0", "3400000"}, {"26,58", "0", "3400000"}, {"27,59", "0", "3400000"},
|
||||
{"28,60", "0", "3400000"}, {"29,61", "0", "3400000"}, {"30,62", "0", "3400000"}, {"31,63", "0", "3400000"},
|
||||
{"0,32", "0", "3400000"}, {"1,33", "0", "3400000"}, {"2,34", "0", "3400000"}, {"3,35", "0", "3400000"},
|
||||
{"4,36", "0", "3400000"}, {"5,37", "0", "3400000"}, {"6,38", "0", "3400000"}, {"7,39", "0", "3400000"},
|
||||
{"8,40", "0", "3400000"}, {"9,41", "0", "3400000"}, {"10,42", "0", "3400000"}, {"11,43", "0", "3400000"},
|
||||
{"12,44", "0", "3400000"}, {"13,45", "0", "3400000"}, {"14,46", "0", "3400000"}, {"15,47", "0", "3400000"},
|
||||
{"16,48", "0", "3400000"}, {"17,49", "0", "3400000"}, {"18,50", "0", "3400000"}, {"19,51", "0", "3400000"},
|
||||
{"20,52", "0", "3400000"}, {"21,53", "0", "3400000"}, {"22,54", "0", "3400000"}, {"23,55", "0", "3400000"},
|
||||
{"24,56", "0", "3400000"}, {"25,57", "0", "3400000"}, {"26,58", "0", "3400000"}, {"27,59", "0", "3400000"},
|
||||
{"28,60", "0", "3400000"}, {"29,61", "0", "3400000"}, {"30,62", "0", "3400000"}, {"31,63", "0", "3400000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_16cores_hyperthreading = {
|
||||
24,
|
||||
1,
|
||||
16,
|
||||
{{24, 8, 8, 8}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{14, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{16, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {17, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {19, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
{20, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {21, 0, 13, EFFICIENT_CORE_PROC, 13, -1},
|
||||
{22, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {23, 0, 15, EFFICIENT_CORE_PROC, 15, -1},
|
||||
},
|
||||
{
|
||||
{"0-1", "0", "5376760"}, {"0-1", "0", "5376760"}, {"2-3", "0", "5376760"}, {"2-3", "0", "5376760"},
|
||||
{"4-5", "0", "5376760"}, {"4-5", "0", "5376760"}, {"6-7", "0", "5376760"}, {"6-7", "0", "5376760"},
|
||||
{"8-9", "0", "5400000"}, {"8-9", "0", "5400000"}, {"10-11", "0", "5400000"}, {"10-11", "0", "5400000"},
|
||||
{"12-13", "0", "5376760"}, {"12-13", "0", "5376760"}, {"14-15", "0", "5376760"}, {"14-15", "0", "5376760"},
|
||||
{"16", "0", "4200000"}, {"17", "0", "4200000"}, {"18", "0", "4200000"}, {"19", "0", "4200000"},
|
||||
{"20", "0", "4200000"}, {"21", "0", "4200000"}, {"22", "0", "4200000"}, {"23", "0", "4200000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_16cores = {
|
||||
16,
|
||||
1,
|
||||
16,
|
||||
{{16, 8, 8, 0}},
|
||||
{
|
||||
{0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{1, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{2, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{3, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{4, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{5, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{6, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{7, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{8, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{9, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{10, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{11, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
{12, 0, 12, EFFICIENT_CORE_PROC, 12, -1},
|
||||
{13, 0, 13, EFFICIENT_CORE_PROC, 13, -1},
|
||||
{14, 0, 14, EFFICIENT_CORE_PROC, 14, -1},
|
||||
{15, 0, 15, EFFICIENT_CORE_PROC, 15, -1},
|
||||
},
|
||||
{
|
||||
{"0", "0", "5376760"},
|
||||
{"1", "0", "5376760"},
|
||||
{"2", "0", "5376760"},
|
||||
{"3", "0", "5376760"},
|
||||
{"4", "0", "5400000"},
|
||||
{"5", "0", "5400000"},
|
||||
{"6", "0", "5376760"},
|
||||
{"7", "0", "5376760"},
|
||||
{"8", "0", "4200000"},
|
||||
{"9", "0", "4200000"},
|
||||
{"10", "0", "4200000"},
|
||||
{"11", "0", "4200000"},
|
||||
{"12", "0", "4200000"},
|
||||
{"13", "0", "4200000"},
|
||||
{"14", "0", "4200000"},
|
||||
{"15", "0", "4200000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_16cores_1_hyperthreading = {
|
||||
22,
|
||||
1,
|
||||
16,
|
||||
{{22, 6, 10, 6}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {13, 0, 7, EFFICIENT_CORE_PROC, 7, -1},
|
||||
{14, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {15, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{16, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {17, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
{18, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {19, 0, 13, EFFICIENT_CORE_PROC, 13, -1},
|
||||
{20, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {21, 0, 15, EFFICIENT_CORE_PROC, 15, -1},
|
||||
},
|
||||
{
|
||||
{"0-1", "2", "3200040"}, {"0-1", "2", "3200040"}, {"2-3", "3", "3200040"}, {"2-3", "3", "3200040"},
|
||||
{"4-5", "4", "3200040"}, {"4-5", "4", "3200040"}, {"6-7", "5", "3200040"}, {"6-7", "5", "3200040"},
|
||||
{"8-9", "6", "3200040"}, {"8-9", "6", "3200040"}, {"10-11", "7", "3200040"}, {"10-11", "7", "3200040"},
|
||||
{"12", "0", "3100000"}, {"13", "0", "3100000"}, {"14", "0", "3100000"}, {"15", "0", "3100000"},
|
||||
{"16", "1", "3100000"}, {"17", "1", "3100000"}, {"18", "1", "3100000"}, {"19", "1", "3100000"},
|
||||
{"20", "8", "1600011"}, {"21", "8", "1600011"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_12cores_hyperthreading = {
|
||||
14,
|
||||
1,
|
||||
12,
|
||||
{{14, 2, 10, 2}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 2, EFFICIENT_CORE_PROC, 2, -1},
|
||||
{5, 0, 3, EFFICIENT_CORE_PROC, 3, -1},
|
||||
{6, 0, 4, EFFICIENT_CORE_PROC, 4, -1},
|
||||
{7, 0, 5, EFFICIENT_CORE_PROC, 5, -1},
|
||||
{8, 0, 6, EFFICIENT_CORE_PROC, 6, -1},
|
||||
{9, 0, 7, EFFICIENT_CORE_PROC, 7, -1},
|
||||
{10, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{11, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{12, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{13, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
{
|
||||
{"0-1", "2", "4100000"},
|
||||
{"0-1", "2", "4100000"},
|
||||
{"2-3", "3", "4100000"},
|
||||
{"2-3", "3", "4100000"},
|
||||
{"4", "0", "3100000"},
|
||||
{"5", "0", "3100000"},
|
||||
{"6", "0", "3100000"},
|
||||
{"7", "0", "3100000"},
|
||||
{"8", "1", "3100000"},
|
||||
{"9", "1", "3100000"},
|
||||
{"10", "1", "3100000"},
|
||||
{"11", "1", "3100000"},
|
||||
{"12", "8", "2100000"},
|
||||
{"13", "8", "2100000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_8cores_hyperthreading = {
|
||||
16,
|
||||
1,
|
||||
8,
|
||||
{{16, 8, 0, 8}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{5, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{7, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{9, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{11, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{13, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{14, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{15, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
},
|
||||
{
|
||||
{"0-1", "0", "6100000"},
|
||||
{"0-1", "0", "6100000"},
|
||||
{"2-3", "0", "6100000"},
|
||||
{"2-3", "0", "6100000"},
|
||||
{"4-5", "0", "6100000"},
|
||||
{"4-5", "0", "6100000"},
|
||||
{"6-7", "0", "6100000"},
|
||||
{"6-7", "0", "6100000"},
|
||||
{"8-9", "0", "6300000"},
|
||||
{"8-9", "0", "6300000"},
|
||||
{"10-11", "0", "6300000"},
|
||||
{"10-11", "0", "6300000"},
|
||||
{"12-13", "0", "6100000"},
|
||||
{"12-13", "0", "6100000"},
|
||||
{"14-15", "0", "6100000"},
|
||||
{"14-15", "0", "6100000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_8cores_1_hyperthreading = {
|
||||
16,
|
||||
1,
|
||||
8,
|
||||
{{16, 8, 0, 8}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{3, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{5, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{7, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{9, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{10, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{11, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{12, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{13, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{14, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{15, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
},
|
||||
{
|
||||
{"0,8", "0", "4700000"},
|
||||
{"1,9", "0", "4800000"},
|
||||
{"2,10", "0", "4800000"},
|
||||
{"3,11", "0", "4700000"},
|
||||
{"4,12", "0", "4700000"},
|
||||
{"5,13", "0", "4700000"},
|
||||
{"6,14", "0", "4700000"},
|
||||
{"7,15", "0", "4700000"},
|
||||
{"0,8", "0", "4700000"},
|
||||
{"1,9", "0", "4800000"},
|
||||
{"2,10", "0", "4800000"},
|
||||
{"3,11", "0", "4700000"},
|
||||
{"4,12", "0", "4700000"},
|
||||
{"5,13", "0", "4700000"},
|
||||
{"6,14", "0", "4700000"},
|
||||
{"7,15", "0", "4700000"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_4cores = {
|
||||
4,
|
||||
1,
|
||||
4,
|
||||
{{4, 4, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{1, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{2, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{3, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
},
|
||||
{
|
||||
{"0", "0", "1800000"},
|
||||
{"1", "0", "1800000"},
|
||||
{"2", "0", "1800000"},
|
||||
{"3", "0", "1800000"},
|
||||
},
|
||||
};
|
||||
|
||||
TEST_P(LinuxCpuMapFreqParserTests, LinuxCpuMapFreq) {}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(CPUMap,
|
||||
LinuxCpuMapFreqParserTests,
|
||||
testing::Values(freq_2sockets_112cores_hyperthreading,
|
||||
freq_2sockets_48cores_hyperthreading,
|
||||
freq_2sockets_20cores_hyperthreading,
|
||||
freq_2sockets_20cores,
|
||||
freq_1sockets_32cores_hyperthreading,
|
||||
freq_1sockets_16cores_hyperthreading,
|
||||
freq_1sockets_16cores,
|
||||
freq_1sockets_16cores_1_hyperthreading,
|
||||
freq_1sockets_12cores_hyperthreading,
|
||||
freq_1sockets_8cores_hyperthreading,
|
||||
freq_1sockets_8cores_1_hyperthreading,
|
||||
freq_1sockets_4cores));
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
Reference in New Issue
Block a user