enable node support (#17943)
* enable node support on Linux * fix code style issue * enable node support on Windows * fix merge conflict * update for comments * update for comments * enable numa node id and socket id in proc_type_table and udpate inference unit test * update get_streams_info_table() and smoke test cases in CPU unit test * fix code style issue * update numa node id and socket id in proc_type_table on windows * update for comments * update for comments * update for comments
This commit is contained in:
parent
3519050ef0
commit
a9c4e4ab56
@ -168,24 +168,28 @@ OPENVINO_RUNTIME_API std::vector<std::vector<int>> get_proc_type_table();
|
||||
* extend to support other CPU core type like ARM.
|
||||
*
|
||||
* The following are two example of processor type table.
|
||||
* 1. Processor table of two socket CPUs XEON server
|
||||
* 1. Processor table of 4 numa nodes and 2 socket server
|
||||
*
|
||||
* ALL_PROC | MAIN_CORE_PROC | EFFICIENT_CORE_PROC | HYPER_THREADING_PROC
|
||||
* 96 48 0 48 // Total number of two sockets
|
||||
* 48 24 0 24 // Number of socket one
|
||||
* 48 24 0 24 // Number of socket two
|
||||
* ALL_PROC | MAIN_CORE_PROC | EFFICIENT_CORE_PROC | HYPER_THREADING_PROC | PROC_NUMA_NODE_ID | PROC_SOCKET_ID
|
||||
* 96 48 0 48 -1 -1
|
||||
* 24 12 0 12 0 0
|
||||
* 24 12 0 12 1 0
|
||||
* 24 12 0 12 2 1
|
||||
* 24 12 0 12 3 1
|
||||
*
|
||||
* 2. Processor table of one socket CPU desktop
|
||||
* 2. Processor table of 1 numa node desktop
|
||||
*
|
||||
* ALL_PROC | MAIN_CORE_PROC | EFFICIENT_CORE_PROC | HYPER_THREADING_PROC
|
||||
* 32 8 16 8 // Total number of one socket
|
||||
* ALL_PROC | MAIN_CORE_PROC | EFFICIENT_CORE_PROC | HYPER_THREADING_PROC | PROC_NUMA_NODE_ID | PROC_SOCKET_ID
|
||||
* 32 8 16 8 -1 -1
|
||||
*/
|
||||
enum ColumnOfProcessorTypeTable {
|
||||
ALL_PROC = 0, //!< All processors, regardless of backend cpu
|
||||
MAIN_CORE_PROC = 1, //!< Processor based on physical core of Intel Performance-cores
|
||||
EFFICIENT_CORE_PROC = 2, //!< Processor based on Intel Efficient-cores
|
||||
HYPER_THREADING_PROC = 3, //!< Processor based on logical core of Intel Performance-cores
|
||||
PROC_TYPE_TABLE_SIZE = 4 //!< Size of processor type table
|
||||
PROC_NUMA_NODE_ID = 4, //!< Numa node id of processors in this row
|
||||
PROC_SOCKET_ID = 5, //!< Socket id of processors in this row
|
||||
PROC_TYPE_TABLE_SIZE = 6 //!< Size of processor type table
|
||||
};
|
||||
|
||||
/**
|
||||
@ -229,24 +233,25 @@ OPENVINO_RUNTIME_API void set_cpu_used(const std::vector<int>& cpu_ids, const in
|
||||
* 1. Four processors of two Pcore
|
||||
* 2. Four processors of four Ecores shared L2 cache
|
||||
*
|
||||
* PROCESSOR_ID | SOCKET_ID | CORE_ID | CORE_TYPE | GROUP_ID | Used
|
||||
* 0 0 0 3 0 0
|
||||
* 1 0 0 1 0 0
|
||||
* 2 0 1 3 1 0
|
||||
* 3 0 1 1 1 0
|
||||
* 4 0 2 2 2 0
|
||||
* 5 0 3 2 2 0
|
||||
* 6 0 4 2 2 0
|
||||
* 7 0 5 2 2 0
|
||||
* PROCESSOR_ID | NUMA_NODE_ID | SOCKET_ID | CORE_ID | CORE_TYPE | GROUP_ID | Used
|
||||
* 0 0 0 0 3 0 0
|
||||
* 1 0 0 0 1 0 0
|
||||
* 2 0 0 1 3 1 0
|
||||
* 3 0 0 1 1 1 0
|
||||
* 4 0 0 2 2 2 0
|
||||
* 5 0 0 3 2 2 0
|
||||
* 6 0 0 4 2 2 0
|
||||
* 7 0 0 5 2 2 0
|
||||
*/
|
||||
enum ColumnOfCPUMappingTable {
|
||||
CPU_MAP_PROCESSOR_ID = 0, //!< column for processor id of the processor
|
||||
CPU_MAP_SOCKET_ID = 1, //!< column for socket id of the processor
|
||||
CPU_MAP_CORE_ID = 2, //!< column for hardware core id of the processor
|
||||
CPU_MAP_CORE_TYPE = 3, //!< column for CPU core type corresponding to the processor
|
||||
CPU_MAP_GROUP_ID = 4, //!< column for group id to the processor. Processors in one group have dependency.
|
||||
CPU_MAP_USED_FLAG = 5, //!< column for resource management of the processor
|
||||
CPU_MAP_TABLE_SIZE = 6 //!< Size of CPU mapping table
|
||||
CPU_MAP_NUMA_NODE_ID = 1, //!< column for node id of the processor
|
||||
CPU_MAP_SOCKET_ID = 2, //!< column for socket id of the processor
|
||||
CPU_MAP_CORE_ID = 3, //!< column for hardware core id of the processor
|
||||
CPU_MAP_CORE_TYPE = 4, //!< column for CPU core type corresponding to the processor
|
||||
CPU_MAP_GROUP_ID = 5, //!< column for group id to the processor. Processors in one group have dependency.
|
||||
CPU_MAP_USED_FLAG = 6, //!< column for resource management of the processor
|
||||
CPU_MAP_TABLE_SIZE = 7 //!< Size of CPU mapping table
|
||||
};
|
||||
|
||||
} // namespace ov
|
||||
|
@ -3,8 +3,8 @@
|
||||
//
|
||||
|
||||
/**
|
||||
* @brief A header file that provides a set minimal required Streams Executor API.
|
||||
* @file streams_executor.hpp
|
||||
* @brief A header file that provides a set of CPU map and parser functions.
|
||||
* @file cpu_map_info.hpp
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -22,6 +22,7 @@ public:
|
||||
~CPU(){};
|
||||
int _processors = 0;
|
||||
int _numa_nodes = 0;
|
||||
int _sockets = 0;
|
||||
int _cores = 0;
|
||||
std::vector<std::vector<int>> _proc_type_table;
|
||||
std::vector<std::vector<int>> _cpu_mapping_table;
|
||||
@ -34,18 +35,37 @@ public:
|
||||
CPU& cpu_info();
|
||||
|
||||
#ifdef __linux__
|
||||
/**
|
||||
* @brief Parse nodes information to update _sockets, proc_type_table and cpu_mapping_table on Linux
|
||||
* @param[in] node_info_table nodes information for this platform.
|
||||
* @param[in] _numa_nodes total number for nodes in system
|
||||
* @param[out] _sockets total number for sockets 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_node_info_linux(const std::vector<std::string> node_info_table,
|
||||
const int& _numa_nodes,
|
||||
int& _sockets,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table);
|
||||
|
||||
/**
|
||||
* @brief Parse CPU cache infomation on Linux
|
||||
* @param[in] _system_info_table system information for this platform.
|
||||
* @param[in] system_info_table cpus information for this platform.
|
||||
* @param[in] node_info_table nodes information for this platform.
|
||||
* @param[out] _processors total number for processors in system.
|
||||
* @param[out] _numa_nodes total number for nodes 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_cache_info_linux(const std::vector<std::vector<std::string>> _system_info_table,
|
||||
void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_info_table,
|
||||
const std::vector<std::string> node_info_table,
|
||||
int& _processors,
|
||||
int& _numa_nodes,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
@ -53,16 +73,20 @@ void parse_cache_info_linux(const std::vector<std::vector<std::string>> _system_
|
||||
|
||||
/**
|
||||
* @brief Parse CPU frequency infomation on Linux
|
||||
* @param[in] _system_info_table system information for this platform.
|
||||
* @param[in] system_info_table cpus information for this platform.
|
||||
* @param[in] node_info_table nodes information for this platform.
|
||||
* @param[out] _processors total number for processors in system.
|
||||
* @param[out] _numa_nodes total number for nodes 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,
|
||||
void parse_freq_info_linux(const std::vector<std::vector<std::string>> system_info_table,
|
||||
const std::vector<std::string> node_info_table,
|
||||
int& _processors,
|
||||
int& _numa_nodes,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
@ -106,6 +130,7 @@ void get_cpu_mapping_from_cores(const int _processors,
|
||||
* @param[in] base_ptr buffer object pointer of Windows system infomation
|
||||
* @param[in] len buffer object length of Windows system infomation
|
||||
* @param[out] _processors total number for processors in system.
|
||||
* @param[out] _numa_nodes total number for nodes 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
|
||||
@ -115,6 +140,7 @@ void get_cpu_mapping_from_cores(const int _processors,
|
||||
void parse_processor_info_win(const char* base_ptr,
|
||||
const unsigned long len,
|
||||
int& _processors,
|
||||
int& _numa_nodes,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
@ -15,12 +15,13 @@
|
||||
#include "ie_common.h"
|
||||
#include "openvino/core/except.hpp"
|
||||
#include "openvino/runtime/system_conf.hpp"
|
||||
#include "streams_executor.hpp"
|
||||
#include "os/cpu_map_info.hpp"
|
||||
|
||||
namespace ov {
|
||||
|
||||
CPU::CPU() {
|
||||
std::vector<std::vector<std::string>> system_info_table;
|
||||
std::vector<std::string> node_info_table;
|
||||
|
||||
_num_threads = parallel_get_max_threads();
|
||||
auto get_cache_info_linux = [&]() {
|
||||
@ -99,6 +100,21 @@ CPU::CPU() {
|
||||
return 0;
|
||||
};
|
||||
|
||||
auto get_node_info_linux = [&]() {
|
||||
int node_index = 0;
|
||||
|
||||
while (1) {
|
||||
std::ifstream cache_file("/sys/devices/system/node/node" + std::to_string(node_index) + "/cpulist");
|
||||
if (!cache_file.is_open()) {
|
||||
break;
|
||||
}
|
||||
std::string cache_info;
|
||||
std::getline(cache_file, cache_info);
|
||||
node_info_table.push_back(cache_info);
|
||||
node_index++;
|
||||
}
|
||||
};
|
||||
|
||||
auto check_valid_cpu = [&]() {
|
||||
cpu_set_t mask;
|
||||
CPU_ZERO(&mask);
|
||||
@ -131,10 +147,14 @@ CPU::CPU() {
|
||||
}
|
||||
};
|
||||
|
||||
get_node_info_linux();
|
||||
|
||||
if (!get_cache_info_linux()) {
|
||||
parse_cache_info_linux(system_info_table,
|
||||
node_info_table,
|
||||
_processors,
|
||||
_numa_nodes,
|
||||
_sockets,
|
||||
_cores,
|
||||
_proc_type_table,
|
||||
_cpu_mapping_table);
|
||||
@ -143,8 +163,10 @@ CPU::CPU() {
|
||||
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,
|
||||
node_info_table,
|
||||
_processors,
|
||||
_numa_nodes,
|
||||
_sockets,
|
||||
_cores,
|
||||
_proc_type_table,
|
||||
_cpu_mapping_table);
|
||||
@ -177,7 +199,10 @@ CPU::CPU() {
|
||||
}
|
||||
}
|
||||
_processors = processors.size();
|
||||
|
||||
_numa_nodes = sockets.size() == 0 ? 1 : sockets.size();
|
||||
_sockets = _numa_nodes;
|
||||
|
||||
for (auto&& socket : sockets) {
|
||||
_cores += socket.second;
|
||||
}
|
||||
@ -203,8 +228,77 @@ CPU::CPU() {
|
||||
};
|
||||
}
|
||||
|
||||
void parse_node_info_linux(const std::vector<std::string> node_info_table,
|
||||
const int& _numa_nodes,
|
||||
int& _sockets,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table) {
|
||||
std::vector<std::vector<int>> nodes_table;
|
||||
int node_index = 0;
|
||||
|
||||
for (auto& one_info : node_info_table) {
|
||||
int core_1 = 0;
|
||||
int core_2 = 0;
|
||||
std::string::size_type pos = 0;
|
||||
std::string::size_type endpos = 0;
|
||||
std::string sub_str = "";
|
||||
|
||||
if (((endpos = one_info.find('-', pos)) == std::string::npos) &&
|
||||
((endpos = one_info.find(',', pos)) != std::string::npos)) {
|
||||
while (endpos != std::string::npos) {
|
||||
sub_str = one_info.substr(pos);
|
||||
core_1 = std::stoi(sub_str);
|
||||
nodes_table.push_back({core_1, core_1, node_index});
|
||||
endpos = one_info.find(',', pos);
|
||||
pos = endpos + 1;
|
||||
}
|
||||
} else {
|
||||
while (endpos != std::string::npos) {
|
||||
if ((endpos = one_info.find('-', pos)) != std::string::npos) {
|
||||
sub_str = one_info.substr(pos, endpos - pos);
|
||||
core_1 = std::stoi(sub_str);
|
||||
sub_str = one_info.substr(endpos + 1);
|
||||
core_2 = std::stoi(sub_str);
|
||||
nodes_table.push_back({core_1, core_2, node_index});
|
||||
pos = one_info.find(',', endpos);
|
||||
if (pos == std::string::npos) {
|
||||
break;
|
||||
} else {
|
||||
pos = pos + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
node_index++;
|
||||
}
|
||||
|
||||
_proc_type_table.assign((node_info_table.size() == 1) ? 1 : node_info_table.size() + 1,
|
||||
std::vector<int>({0, 0, 0, 0, -1, -1}));
|
||||
|
||||
for (auto& row : nodes_table) {
|
||||
for (int i = row[0]; i <= row[1]; i++) {
|
||||
_cpu_mapping_table[i][CPU_MAP_NUMA_NODE_ID] = row[2];
|
||||
if (_sockets > _numa_nodes) {
|
||||
_cpu_mapping_table[i][CPU_MAP_SOCKET_ID] = row[2];
|
||||
}
|
||||
_proc_type_table[0][ALL_PROC]++;
|
||||
_proc_type_table[0][_cpu_mapping_table[i][CPU_MAP_CORE_TYPE]]++;
|
||||
if (node_info_table.size() != 1) {
|
||||
_proc_type_table[row[2] + 1][ALL_PROC]++;
|
||||
_proc_type_table[row[2] + 1][_cpu_mapping_table[i][CPU_MAP_CORE_TYPE]]++;
|
||||
}
|
||||
}
|
||||
node_index = (node_info_table.size() != 1) ? row[2] + 1 : 0;
|
||||
_proc_type_table[node_index][PROC_NUMA_NODE_ID] = _cpu_mapping_table[row[0]][CPU_MAP_NUMA_NODE_ID];
|
||||
_proc_type_table[node_index][PROC_SOCKET_ID] = _cpu_mapping_table[row[0]][CPU_MAP_SOCKET_ID];
|
||||
}
|
||||
_sockets = (_sockets > _numa_nodes) ? _numa_nodes : _sockets;
|
||||
}
|
||||
|
||||
void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_info_table,
|
||||
const std::vector<std::string> node_info_table,
|
||||
int& _processors,
|
||||
int& _numa_nodes,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
@ -224,7 +318,7 @@ void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_i
|
||||
|
||||
if (((endpos = system_info_table[nproc][0].find(',', pos)) != std::string::npos) ||
|
||||
((endpos = system_info_table[nproc][0].find('-', pos)) != std::string::npos)) {
|
||||
sub_str = system_info_table[nproc][0].substr(pos, endpos);
|
||||
sub_str = system_info_table[nproc][0].substr(pos, endpos - pos);
|
||||
core_1 = std::stoi(sub_str);
|
||||
sub_str = system_info_table[nproc][0].substr(endpos + 1);
|
||||
core_2 = std::stoi(sub_str);
|
||||
@ -246,13 +340,12 @@ void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_i
|
||||
_cpu_mapping_table[core_2][CPU_MAP_GROUP_ID] = n_group;
|
||||
|
||||
_cores++;
|
||||
n_group++;
|
||||
|
||||
_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);
|
||||
sub_str = system_info_table[nproc][1].substr(pos, endpos - pos);
|
||||
core_1 = std::stoi(sub_str);
|
||||
sub_str = system_info_table[nproc][1].substr(endpos + 1);
|
||||
core_2 = std::stoi(sub_str);
|
||||
@ -268,8 +361,6 @@ void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_i
|
||||
_proc_type_table[0][ALL_PROC]++;
|
||||
_proc_type_table[0][EFFICIENT_CORE_PROC]++;
|
||||
}
|
||||
|
||||
n_group++;
|
||||
} else {
|
||||
core_1 = std::stoi(system_info_table[nproc][0]);
|
||||
|
||||
@ -279,16 +370,23 @@ void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_i
|
||||
_cpu_mapping_table[core_1][CPU_MAP_GROUP_ID] = n_group;
|
||||
|
||||
_cores++;
|
||||
n_group++;
|
||||
|
||||
_proc_type_table[0][ALL_PROC]++;
|
||||
_proc_type_table[0][MAIN_CORE_PROC]++;
|
||||
}
|
||||
|
||||
n_group++;
|
||||
_proc_type_table[0][PROC_NUMA_NODE_ID] = (_proc_type_table[0][PROC_NUMA_NODE_ID] == -1)
|
||||
? _cpu_mapping_table[core_1][CPU_MAP_NUMA_NODE_ID]
|
||||
: _proc_type_table[0][PROC_NUMA_NODE_ID];
|
||||
_proc_type_table[0][PROC_SOCKET_ID] = (_proc_type_table[0][PROC_SOCKET_ID] == -1)
|
||||
? _cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID]
|
||||
: _proc_type_table[0][PROC_SOCKET_ID];
|
||||
}
|
||||
return;
|
||||
};
|
||||
|
||||
std::vector<int> line_value_0(PROC_TYPE_TABLE_SIZE, 0);
|
||||
std::vector<int> line_value_0({0, 0, 0, 0, -1, -1});
|
||||
|
||||
for (int n = 0; n < _processors; n++) {
|
||||
if (-1 == _cpu_mapping_table[n][CPU_MAP_SOCKET_ID]) {
|
||||
@ -308,19 +406,21 @@ void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_i
|
||||
|
||||
while (1) {
|
||||
if ((endpos = system_info_table[n][2].find('-', pos)) != std::string::npos) {
|
||||
sub_str = system_info_table[n][2].substr(pos, endpos);
|
||||
sub_str = system_info_table[n][2].substr(pos, endpos - pos);
|
||||
core_1 = std::stoi(sub_str);
|
||||
sub_str = system_info_table[n][2].substr(endpos + 1);
|
||||
core_2 = std::stoi(sub_str);
|
||||
|
||||
for (int m = core_1; m <= core_2; m++) {
|
||||
_cpu_mapping_table[m][CPU_MAP_SOCKET_ID] = _sockets;
|
||||
_cpu_mapping_table[m][CPU_MAP_NUMA_NODE_ID] = _cpu_mapping_table[m][CPU_MAP_SOCKET_ID];
|
||||
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;
|
||||
_cpu_mapping_table[core_1][CPU_MAP_NUMA_NODE_ID] = _cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID];
|
||||
update_proc_map_info(core_1);
|
||||
endpos = pos;
|
||||
}
|
||||
@ -334,16 +434,23 @@ void parse_cache_info_linux(const std::vector<std::vector<std::string>> system_i
|
||||
_sockets++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((node_info_table.size() == 0) || (node_info_table.size() == (unsigned)_sockets)) {
|
||||
if (_sockets > 1) {
|
||||
_proc_type_table.push_back(_proc_type_table[0]);
|
||||
_proc_type_table[0] = line_value_0;
|
||||
|
||||
for (int m = 1; m <= _sockets; m++) {
|
||||
for (int n = 0; n < PROC_TYPE_TABLE_SIZE; n++) {
|
||||
for (int n = 0; n < PROC_NUMA_NODE_ID; n++) {
|
||||
_proc_type_table[0][n] += _proc_type_table[m][n];
|
||||
}
|
||||
}
|
||||
}
|
||||
_numa_nodes = _sockets;
|
||||
} else {
|
||||
_numa_nodes = node_info_table.size();
|
||||
parse_node_info_linux(node_info_table, _numa_nodes, _sockets, _proc_type_table, _cpu_mapping_table);
|
||||
}
|
||||
};
|
||||
|
||||
void get_cpu_mapping_from_cores(const int _processors,
|
||||
@ -358,11 +465,10 @@ void get_cpu_mapping_from_cores(const int _processors,
|
||||
const auto socket_offset = big_phys_cores / _numa_nodes;
|
||||
const auto threads_per_core = hyper_thread ? 2 : 1;
|
||||
const auto step = num_small_cores_phys > 0 ? 2 : 1;
|
||||
std::vector<int> pro_all_table;
|
||||
std::vector<int> pro_all_table = {0, 0, 0, 0, -1, -1};
|
||||
|
||||
_cpu_mapping_table.resize(_processors, std::vector<int>(CPU_MAP_TABLE_SIZE, -1));
|
||||
_proc_type_table.assign(_numa_nodes, std::vector<int>(PROC_TYPE_TABLE_SIZE, 0));
|
||||
pro_all_table.resize(PROC_TYPE_TABLE_SIZE, 0);
|
||||
_proc_type_table.assign(_numa_nodes, std::vector<int>({0, 0, 0, 0, -1, -1}));
|
||||
|
||||
for (int t = 0; t < threads_per_core; t++) {
|
||||
int start = t == 0 ? 0 : (num_small_cores_phys > 0 ? 1 : big_phys_cores);
|
||||
@ -374,10 +480,17 @@ void get_cpu_mapping_from_cores(const int _processors,
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_CORE_TYPE] =
|
||||
hyper_thread ? (t == 0 ? HYPER_THREADING_PROC : MAIN_CORE_PROC) : MAIN_CORE_PROC;
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_GROUP_ID] = i;
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_NUMA_NODE_ID] = socket_id;
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_SOCKET_ID] = socket_id;
|
||||
|
||||
_proc_type_table[socket_id][_cpu_mapping_table[cur_id][CPU_MAP_CORE_TYPE]]++;
|
||||
_proc_type_table[socket_id][ALL_PROC]++;
|
||||
_proc_type_table[socket_id][PROC_NUMA_NODE_ID] = (_proc_type_table[socket_id][PROC_NUMA_NODE_ID] == -1)
|
||||
? socket_id
|
||||
: _proc_type_table[socket_id][PROC_NUMA_NODE_ID];
|
||||
_proc_type_table[socket_id][PROC_SOCKET_ID] = (_proc_type_table[socket_id][PROC_SOCKET_ID] == -1)
|
||||
? socket_id
|
||||
: _proc_type_table[socket_id][PROC_SOCKET_ID];
|
||||
pro_all_table[_cpu_mapping_table[cur_id][CPU_MAP_CORE_TYPE]]++;
|
||||
pro_all_table[ALL_PROC]++;
|
||||
}
|
||||
@ -389,6 +502,7 @@ void get_cpu_mapping_from_cores(const int _processors,
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_CORE_ID] = big_phys_cores + j;
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_CORE_TYPE] = EFFICIENT_CORE_PROC;
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_GROUP_ID] = big_phys_cores + j / 4;
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_NUMA_NODE_ID] = 0;
|
||||
_cpu_mapping_table[cur_id][CPU_MAP_SOCKET_ID] = 0;
|
||||
|
||||
_proc_type_table[0][_cpu_mapping_table[cur_id][CPU_MAP_CORE_TYPE]]++;
|
||||
@ -403,7 +517,9 @@ void get_cpu_mapping_from_cores(const int _processors,
|
||||
}
|
||||
|
||||
void parse_freq_info_linux(const std::vector<std::vector<std::string>> system_info_table,
|
||||
const std::vector<std::string> node_info_table,
|
||||
int& _processors,
|
||||
int& _numa_nodes,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
@ -413,6 +529,7 @@ void parse_freq_info_linux(const std::vector<std::vector<std::string>> system_in
|
||||
bool ht_enabled = false;
|
||||
|
||||
_processors = system_info_table.size();
|
||||
_numa_nodes = 0;
|
||||
_sockets = 0;
|
||||
_cores = 0;
|
||||
_cpu_mapping_table.resize(_processors, std::vector<int>(CPU_MAP_TABLE_SIZE, -1));
|
||||
@ -432,19 +549,21 @@ void parse_freq_info_linux(const std::vector<std::vector<std::string>> system_in
|
||||
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);
|
||||
sub_str = system_info_table[n][0].substr(pos, endpos1 - pos);
|
||||
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_NUMA_NODE_ID] = _cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID];
|
||||
_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_NUMA_NODE_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];
|
||||
@ -452,12 +571,12 @@ void parse_freq_info_linux(const std::vector<std::vector<std::string>> system_in
|
||||
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_NUMA_NODE_ID] = _cpu_mapping_table[core_1][CPU_MAP_SOCKET_ID];
|
||||
_cpu_mapping_table[core_1][CPU_MAP_CORE_ID] = _cores;
|
||||
|
||||
int core_freq = std::stoi(system_info_table[core_1][2]);
|
||||
@ -476,28 +595,40 @@ void parse_freq_info_linux(const std::vector<std::vector<std::string>> system_in
|
||||
}
|
||||
}
|
||||
|
||||
if ((_sockets >= 1) && (ecore_enabled)) {
|
||||
_sockets = 0;
|
||||
}
|
||||
_sockets = (_sockets > 0) ? _sockets + 1 : 1;
|
||||
|
||||
if (_sockets >= 1) {
|
||||
_proc_type_table.resize(_sockets + 2, std::vector<int>(PROC_TYPE_TABLE_SIZE, 0));
|
||||
if (node_info_table.size() == 0) {
|
||||
if ((_sockets > 1) && (ecore_enabled)) {
|
||||
_sockets = 1; // This is the WA of the developing platform without CPU cache and numa node information.
|
||||
// Wrong socket information creates each socket ID per CPU core.
|
||||
}
|
||||
if (_sockets > 1) {
|
||||
_proc_type_table.resize(_sockets + 1, std::vector<int>({0, 0, 0, 0, -1, -1}));
|
||||
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]]++;
|
||||
_proc_type_table[_cpu_mapping_table[n][CPU_MAP_SOCKET_ID] + 1]
|
||||
[_cpu_mapping_table[n][CPU_MAP_CORE_TYPE]]++;
|
||||
}
|
||||
_sockets++;
|
||||
for (int n = 0; n < _sockets; n++) {
|
||||
_proc_type_table[n + 1][PROC_NUMA_NODE_ID] = n;
|
||||
_proc_type_table[n + 1][PROC_SOCKET_ID] = n;
|
||||
};
|
||||
} else {
|
||||
_proc_type_table.resize(1, std::vector<int>(PROC_TYPE_TABLE_SIZE, 0));
|
||||
_proc_type_table.resize(1, std::vector<int>({0, 0, 0, 0, 0, 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_NUMA_NODE_ID] = 0;
|
||||
_cpu_mapping_table[n][CPU_MAP_SOCKET_ID] = 0;
|
||||
}
|
||||
_sockets = 1;
|
||||
}
|
||||
_numa_nodes = _sockets;
|
||||
} else {
|
||||
_numa_nodes = node_info_table.size();
|
||||
parse_node_info_linux(node_info_table, _numa_nodes, _sockets, _proc_type_table, _cpu_mapping_table);
|
||||
}
|
||||
};
|
||||
|
||||
@ -507,7 +638,7 @@ void update_valid_processor_linux(const std::vector<int> phy_core_list,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
std::vector<std::vector<int>>& _cpu_mapping_table) {
|
||||
for (auto& row : _proc_type_table) {
|
||||
std::fill(row.begin(), row.end(), 0);
|
||||
std::fill(row.begin(), row.begin() + PROC_NUMA_NODE_ID, 0);
|
||||
}
|
||||
_cores = 0;
|
||||
for (auto& row : _cpu_mapping_table) {
|
||||
@ -540,7 +671,7 @@ void update_valid_processor_linux(const std::vector<int> phy_core_list,
|
||||
}
|
||||
|
||||
if ((_proc_type_table.size() > 1) && (_proc_type_table[0][ALL_PROC] == _proc_type_table[1][ALL_PROC])) {
|
||||
_proc_type_table.pop_back();
|
||||
_proc_type_table.erase(_proc_type_table.begin());
|
||||
}
|
||||
}
|
||||
_sockets = _proc_type_table.size() == 1 ? 1 : _proc_type_table.size() - 1;
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include "dev/threading/parallel_custom_arena.hpp"
|
||||
#include "openvino/runtime/system_conf.hpp"
|
||||
#include "streams_executor.hpp"
|
||||
#include "os/cpu_map_info.hpp"
|
||||
|
||||
namespace ov {
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include "dev/threading/parallel_custom_arena.hpp"
|
||||
#include "openvino/runtime/system_conf.hpp"
|
||||
#include "streams_executor.hpp"
|
||||
#include "os/cpu_map_info.hpp"
|
||||
|
||||
namespace ov {
|
||||
|
||||
@ -34,6 +34,7 @@ CPU::CPU() {
|
||||
len,
|
||||
_processors,
|
||||
_numa_nodes,
|
||||
_sockets,
|
||||
_cores,
|
||||
_proc_type_table,
|
||||
_cpu_mapping_table);
|
||||
@ -42,6 +43,7 @@ CPU::CPU() {
|
||||
void parse_processor_info_win(const char* base_ptr,
|
||||
const unsigned long len,
|
||||
int& _processors,
|
||||
int& _numa_nodes,
|
||||
int& _sockets,
|
||||
int& _cores,
|
||||
std::vector<std::vector<int>>& _proc_type_table,
|
||||
@ -49,7 +51,7 @@ void parse_processor_info_win(const char* base_ptr,
|
||||
std::vector<int> list;
|
||||
std::vector<int> proc_info;
|
||||
|
||||
std::vector<int> proc_init_line(PROC_TYPE_TABLE_SIZE, 0);
|
||||
std::vector<int> proc_init_line({0, 0, 0, 0, -1, -1});
|
||||
std::vector<int> cpu_init_line(CPU_MAP_TABLE_SIZE, -1);
|
||||
|
||||
char* info_ptr = (char*)base_ptr;
|
||||
@ -107,6 +109,7 @@ void parse_processor_info_win(const char* base_ptr,
|
||||
if (2 == list_len) {
|
||||
proc_info = cpu_init_line;
|
||||
proc_info[CPU_MAP_PROCESSOR_ID] = list[0] + base_proc;
|
||||
proc_info[CPU_MAP_NUMA_NODE_ID] = _sockets;
|
||||
proc_info[CPU_MAP_SOCKET_ID] = _sockets;
|
||||
proc_info[CPU_MAP_CORE_ID] = _cores;
|
||||
proc_info[CPU_MAP_CORE_TYPE] = HYPER_THREADING_PROC;
|
||||
@ -115,6 +118,7 @@ void parse_processor_info_win(const char* base_ptr,
|
||||
|
||||
proc_info = cpu_init_line;
|
||||
proc_info[CPU_MAP_PROCESSOR_ID] = list[1] + base_proc;
|
||||
proc_info[CPU_MAP_NUMA_NODE_ID] = _sockets;
|
||||
proc_info[CPU_MAP_SOCKET_ID] = _sockets;
|
||||
proc_info[CPU_MAP_CORE_ID] = _cores;
|
||||
proc_info[CPU_MAP_CORE_TYPE] = MAIN_CORE_PROC;
|
||||
@ -128,6 +132,7 @@ void parse_processor_info_win(const char* base_ptr,
|
||||
} else {
|
||||
proc_info = cpu_init_line;
|
||||
proc_info[CPU_MAP_PROCESSOR_ID] = list[0] + base_proc;
|
||||
proc_info[CPU_MAP_NUMA_NODE_ID] = _sockets;
|
||||
proc_info[CPU_MAP_SOCKET_ID] = _sockets;
|
||||
proc_info[CPU_MAP_CORE_ID] = _cores;
|
||||
if ((_processors > group_start) && (_processors <= group_end)) {
|
||||
@ -185,11 +190,17 @@ void parse_processor_info_win(const char* base_ptr,
|
||||
_proc_type_table[0] = proc_init_line;
|
||||
|
||||
for (int m = 1; m <= _sockets; m++) {
|
||||
for (int n = 0; n < PROC_TYPE_TABLE_SIZE; n++) {
|
||||
for (int n = 0; n <= HYPER_THREADING_PROC; n++) {
|
||||
_proc_type_table[0][n] += _proc_type_table[m][n];
|
||||
}
|
||||
_proc_type_table[m][PROC_SOCKET_ID] = m - 1;
|
||||
_proc_type_table[m][PROC_NUMA_NODE_ID] = m - 1;
|
||||
}
|
||||
} else {
|
||||
_proc_type_table[0][PROC_SOCKET_ID] = 0;
|
||||
_proc_type_table[0][PROC_NUMA_NODE_ID] = 0;
|
||||
}
|
||||
_numa_nodes = _sockets;
|
||||
}
|
||||
|
||||
int get_number_of_cpu_cores(bool bigCoresOnly) {
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "dev/threading/parallel_custom_arena.hpp"
|
||||
#include "ie_common.h"
|
||||
#include "openvino/core/visibility.hpp"
|
||||
#include "streams_executor.hpp"
|
||||
#include "os/cpu_map_info.hpp"
|
||||
#include "threading/ie_cpu_streams_info.hpp"
|
||||
|
||||
#ifdef __APPLE__
|
||||
@ -341,11 +341,11 @@ void set_cpu_used(const std::vector<int>& cpu_ids, const int used) {
|
||||
all_table.resize(PROC_TYPE_TABLE_SIZE, 0);
|
||||
for (int i = 0; i < cpu._processors; i++) {
|
||||
if (cpu._cpu_mapping_table[i][CPU_MAP_USED_FLAG] < PLUGIN_USED_START &&
|
||||
cpu._cpu_mapping_table[i][CPU_MAP_SOCKET_ID] >= 0 &&
|
||||
cpu._cpu_mapping_table[i][CPU_MAP_NUMA_NODE_ID] >= 0 &&
|
||||
cpu._cpu_mapping_table[i][CPU_MAP_CORE_TYPE] >= ALL_PROC) {
|
||||
cpu._proc_type_table[cpu._cpu_mapping_table[i][CPU_MAP_SOCKET_ID] + start]
|
||||
cpu._proc_type_table[cpu._cpu_mapping_table[i][CPU_MAP_NUMA_NODE_ID] + start]
|
||||
[cpu._cpu_mapping_table[i][CPU_MAP_CORE_TYPE]]++;
|
||||
cpu._proc_type_table[cpu._cpu_mapping_table[i][CPU_MAP_SOCKET_ID] + start][ALL_PROC]++;
|
||||
cpu._proc_type_table[cpu._cpu_mapping_table[i][CPU_MAP_NUMA_NODE_ID] + start][ALL_PROC]++;
|
||||
all_table[cpu._cpu_mapping_table[i][CPU_MAP_CORE_TYPE]]++;
|
||||
all_table[ALL_PROC]++;
|
||||
}
|
||||
|
1121
src/inference/tests/unit/cpu_map_parser/cache_parser_linux.cpp
Normal file
1121
src/inference/tests/unit/cpu_map_parser/cache_parser_linux.cpp
Normal file
File diff suppressed because it is too large
Load Diff
992
src/inference/tests/unit/cpu_map_parser/freq_parser_linux.cpp
Normal file
992
src/inference/tests/unit/cpu_map_parser/freq_parser_linux.cpp
Normal file
@ -0,0 +1,992 @@
|
||||
// Copyright (C) 2018-2023 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <common_test_utils/test_common.hpp>
|
||||
|
||||
#include "ie_system_conf.h"
|
||||
#include "os/cpu_map_info.hpp"
|
||||
|
||||
using namespace testing;
|
||||
using namespace ov;
|
||||
|
||||
namespace {
|
||||
|
||||
#ifdef __linux__
|
||||
|
||||
struct LinuxCpuMapTestCase {
|
||||
int _processors;
|
||||
int _numa_nodes;
|
||||
int _sockets;
|
||||
int _cores;
|
||||
std::vector<std::vector<int>> _proc_type_table;
|
||||
std::vector<std::vector<int>> _cpu_mapping_table;
|
||||
std::vector<std::vector<std::string>> system_info_table;
|
||||
std::vector<std::string> node_info_table;
|
||||
};
|
||||
|
||||
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_numa_nodes = 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_data.node_info_table,
|
||||
test_processors,
|
||||
test_numa_nodes,
|
||||
test_sockets,
|
||||
test_cores,
|
||||
test_proc_type_table,
|
||||
test_cpu_mapping_table);
|
||||
|
||||
ASSERT_EQ(test_data._processors, test_processors);
|
||||
ASSERT_EQ(test_data._numa_nodes, test_numa_nodes);
|
||||
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, // param[expected out]: total 224 logcial processors on this simulated platform
|
||||
2, // param[expected out]: total 2 numa nodes on this simulated platform
|
||||
2, // param[expected out]: total 2 sockets on this simulated platform
|
||||
112, // param[expected out]: total 112 CPU cores on this simulated platform
|
||||
{{224, 112, 0, 112, -1, -1},
|
||||
{112, 56, 0, 56, 0, 0},
|
||||
{112, 56, 0, 56, 1, 1}}, // param[expected out]: The proc_type_table of this simulated platform
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 0, 0, 24, HYPER_THREADING_PROC, 24, -1}, {25, 0, 0, 25, HYPER_THREADING_PROC, 25, -1},
|
||||
{26, 0, 0, 26, HYPER_THREADING_PROC, 26, -1}, {27, 0, 0, 27, HYPER_THREADING_PROC, 27, -1},
|
||||
{28, 0, 0, 28, HYPER_THREADING_PROC, 28, -1}, {29, 0, 0, 29, HYPER_THREADING_PROC, 29, -1},
|
||||
{30, 0, 0, 30, HYPER_THREADING_PROC, 30, -1}, {31, 0, 0, 31, HYPER_THREADING_PROC, 31, -1},
|
||||
{32, 0, 0, 32, HYPER_THREADING_PROC, 32, -1}, {33, 0, 0, 33, HYPER_THREADING_PROC, 33, -1},
|
||||
{34, 0, 0, 34, HYPER_THREADING_PROC, 34, -1}, {35, 0, 0, 35, HYPER_THREADING_PROC, 35, -1},
|
||||
{36, 0, 0, 36, HYPER_THREADING_PROC, 36, -1}, {37, 0, 0, 37, HYPER_THREADING_PROC, 37, -1},
|
||||
{38, 0, 0, 38, HYPER_THREADING_PROC, 38, -1}, {39, 0, 0, 39, HYPER_THREADING_PROC, 39, -1},
|
||||
{40, 0, 0, 40, HYPER_THREADING_PROC, 40, -1}, {41, 0, 0, 41, HYPER_THREADING_PROC, 41, -1},
|
||||
{42, 0, 0, 42, HYPER_THREADING_PROC, 42, -1}, {43, 0, 0, 43, HYPER_THREADING_PROC, 43, -1},
|
||||
{44, 0, 0, 44, HYPER_THREADING_PROC, 44, -1}, {45, 0, 0, 45, HYPER_THREADING_PROC, 45, -1},
|
||||
{46, 0, 0, 46, HYPER_THREADING_PROC, 46, -1}, {47, 0, 0, 47, HYPER_THREADING_PROC, 47, -1},
|
||||
{48, 0, 0, 48, HYPER_THREADING_PROC, 48, -1}, {49, 0, 0, 49, HYPER_THREADING_PROC, 49, -1},
|
||||
{50, 0, 0, 50, HYPER_THREADING_PROC, 50, -1}, {51, 0, 0, 51, HYPER_THREADING_PROC, 51, -1},
|
||||
{52, 0, 0, 52, HYPER_THREADING_PROC, 52, -1}, {53, 0, 0, 53, HYPER_THREADING_PROC, 53, -1},
|
||||
{54, 0, 0, 54, HYPER_THREADING_PROC, 54, -1}, {55, 0, 0, 55, HYPER_THREADING_PROC, 55, -1},
|
||||
{56, 1, 1, 56, HYPER_THREADING_PROC, 56, -1}, {57, 1, 1, 57, HYPER_THREADING_PROC, 57, -1},
|
||||
{58, 1, 1, 58, HYPER_THREADING_PROC, 58, -1}, {59, 1, 1, 59, HYPER_THREADING_PROC, 59, -1},
|
||||
{60, 1, 1, 60, HYPER_THREADING_PROC, 60, -1}, {61, 1, 1, 61, HYPER_THREADING_PROC, 61, -1},
|
||||
{62, 1, 1, 62, HYPER_THREADING_PROC, 62, -1}, {63, 1, 1, 63, HYPER_THREADING_PROC, 63, -1},
|
||||
{64, 1, 1, 64, HYPER_THREADING_PROC, 64, -1}, {65, 1, 1, 65, HYPER_THREADING_PROC, 65, -1},
|
||||
{66, 1, 1, 66, HYPER_THREADING_PROC, 66, -1}, {67, 1, 1, 67, HYPER_THREADING_PROC, 67, -1},
|
||||
{68, 1, 1, 68, HYPER_THREADING_PROC, 68, -1}, {69, 1, 1, 69, HYPER_THREADING_PROC, 69, -1},
|
||||
{70, 1, 1, 70, HYPER_THREADING_PROC, 70, -1}, {71, 1, 1, 71, HYPER_THREADING_PROC, 71, -1},
|
||||
{72, 1, 1, 72, HYPER_THREADING_PROC, 72, -1}, {73, 1, 1, 73, HYPER_THREADING_PROC, 73, -1},
|
||||
{74, 1, 1, 74, HYPER_THREADING_PROC, 74, -1}, {75, 1, 1, 75, HYPER_THREADING_PROC, 75, -1},
|
||||
{76, 1, 1, 76, HYPER_THREADING_PROC, 76, -1}, {77, 1, 1, 77, HYPER_THREADING_PROC, 77, -1},
|
||||
{78, 1, 1, 78, HYPER_THREADING_PROC, 78, -1}, {79, 1, 1, 79, HYPER_THREADING_PROC, 79, -1},
|
||||
{80, 1, 1, 80, HYPER_THREADING_PROC, 80, -1}, {81, 1, 1, 81, HYPER_THREADING_PROC, 81, -1},
|
||||
{82, 1, 1, 82, HYPER_THREADING_PROC, 82, -1}, {83, 1, 1, 83, HYPER_THREADING_PROC, 83, -1},
|
||||
{84, 1, 1, 84, HYPER_THREADING_PROC, 84, -1}, {85, 1, 1, 85, HYPER_THREADING_PROC, 85, -1},
|
||||
{86, 1, 1, 86, HYPER_THREADING_PROC, 86, -1}, {87, 1, 1, 87, HYPER_THREADING_PROC, 87, -1},
|
||||
{88, 1, 1, 88, HYPER_THREADING_PROC, 88, -1}, {89, 1, 1, 89, HYPER_THREADING_PROC, 89, -1},
|
||||
{90, 1, 1, 90, HYPER_THREADING_PROC, 90, -1}, {91, 1, 1, 91, HYPER_THREADING_PROC, 91, -1},
|
||||
{92, 1, 1, 92, HYPER_THREADING_PROC, 92, -1}, {93, 1, 1, 93, HYPER_THREADING_PROC, 93, -1},
|
||||
{94, 1, 1, 94, HYPER_THREADING_PROC, 94, -1}, {95, 1, 1, 95, HYPER_THREADING_PROC, 95, -1},
|
||||
{96, 1, 1, 96, HYPER_THREADING_PROC, 96, -1}, {97, 1, 1, 97, HYPER_THREADING_PROC, 97, -1},
|
||||
{98, 1, 1, 98, HYPER_THREADING_PROC, 98, -1}, {99, 1, 1, 99, HYPER_THREADING_PROC, 99, -1},
|
||||
{100, 1, 1, 100, HYPER_THREADING_PROC, 100, -1}, {101, 1, 1, 101, HYPER_THREADING_PROC, 101, -1},
|
||||
{102, 1, 1, 102, HYPER_THREADING_PROC, 102, -1}, {103, 1, 1, 103, HYPER_THREADING_PROC, 103, -1},
|
||||
{104, 1, 1, 104, HYPER_THREADING_PROC, 104, -1}, {105, 1, 1, 105, HYPER_THREADING_PROC, 105, -1},
|
||||
{106, 1, 1, 106, HYPER_THREADING_PROC, 106, -1}, {107, 1, 1, 107, HYPER_THREADING_PROC, 107, -1},
|
||||
{108, 1, 1, 108, HYPER_THREADING_PROC, 108, -1}, {109, 1, 1, 109, HYPER_THREADING_PROC, 109, -1},
|
||||
{110, 1, 1, 110, HYPER_THREADING_PROC, 110, -1}, {111, 1, 1, 111, HYPER_THREADING_PROC, 111, -1},
|
||||
{112, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {113, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{114, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {115, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{116, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {117, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{118, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {119, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{120, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {121, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{122, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {123, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{124, 0, 0, 12, MAIN_CORE_PROC, 12, -1}, {125, 0, 0, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{126, 0, 0, 14, MAIN_CORE_PROC, 14, -1}, {127, 0, 0, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{128, 0, 0, 16, MAIN_CORE_PROC, 16, -1}, {129, 0, 0, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{130, 0, 0, 18, MAIN_CORE_PROC, 18, -1}, {131, 0, 0, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{132, 0, 0, 20, MAIN_CORE_PROC, 20, -1}, {133, 0, 0, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{134, 0, 0, 22, MAIN_CORE_PROC, 22, -1}, {135, 0, 0, 23, MAIN_CORE_PROC, 23, -1},
|
||||
{136, 0, 0, 24, MAIN_CORE_PROC, 24, -1}, {137, 0, 0, 25, MAIN_CORE_PROC, 25, -1},
|
||||
{138, 0, 0, 26, MAIN_CORE_PROC, 26, -1}, {139, 0, 0, 27, MAIN_CORE_PROC, 27, -1},
|
||||
{140, 0, 0, 28, MAIN_CORE_PROC, 28, -1}, {141, 0, 0, 29, MAIN_CORE_PROC, 29, -1},
|
||||
{142, 0, 0, 30, MAIN_CORE_PROC, 30, -1}, {143, 0, 0, 31, MAIN_CORE_PROC, 31, -1},
|
||||
{144, 0, 0, 32, MAIN_CORE_PROC, 32, -1}, {145, 0, 0, 33, MAIN_CORE_PROC, 33, -1},
|
||||
{146, 0, 0, 34, MAIN_CORE_PROC, 34, -1}, {147, 0, 0, 35, MAIN_CORE_PROC, 35, -1},
|
||||
{148, 0, 0, 36, MAIN_CORE_PROC, 36, -1}, {149, 0, 0, 37, MAIN_CORE_PROC, 37, -1},
|
||||
{150, 0, 0, 38, MAIN_CORE_PROC, 38, -1}, {151, 0, 0, 39, MAIN_CORE_PROC, 39, -1},
|
||||
{152, 0, 0, 40, MAIN_CORE_PROC, 40, -1}, {153, 0, 0, 41, MAIN_CORE_PROC, 41, -1},
|
||||
{154, 0, 0, 42, MAIN_CORE_PROC, 42, -1}, {155, 0, 0, 43, MAIN_CORE_PROC, 43, -1},
|
||||
{156, 0, 0, 44, MAIN_CORE_PROC, 44, -1}, {157, 0, 0, 45, MAIN_CORE_PROC, 45, -1},
|
||||
{158, 0, 0, 46, MAIN_CORE_PROC, 46, -1}, {159, 0, 0, 47, MAIN_CORE_PROC, 47, -1},
|
||||
{160, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {161, 0, 0, 49, MAIN_CORE_PROC, 49, -1},
|
||||
{162, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {163, 0, 0, 51, MAIN_CORE_PROC, 51, -1},
|
||||
{164, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {165, 0, 0, 53, MAIN_CORE_PROC, 53, -1},
|
||||
{166, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {167, 0, 0, 55, MAIN_CORE_PROC, 55, -1},
|
||||
{168, 1, 1, 56, MAIN_CORE_PROC, 56, -1}, {169, 1, 1, 57, MAIN_CORE_PROC, 57, -1},
|
||||
{170, 1, 1, 58, MAIN_CORE_PROC, 58, -1}, {171, 1, 1, 59, MAIN_CORE_PROC, 59, -1},
|
||||
{172, 1, 1, 60, MAIN_CORE_PROC, 60, -1}, {173, 1, 1, 61, MAIN_CORE_PROC, 61, -1},
|
||||
{174, 1, 1, 62, MAIN_CORE_PROC, 62, -1}, {175, 1, 1, 63, MAIN_CORE_PROC, 63, -1},
|
||||
{176, 1, 1, 64, MAIN_CORE_PROC, 64, -1}, {177, 1, 1, 65, MAIN_CORE_PROC, 65, -1},
|
||||
{178, 1, 1, 66, MAIN_CORE_PROC, 66, -1}, {179, 1, 1, 67, MAIN_CORE_PROC, 67, -1},
|
||||
{180, 1, 1, 68, MAIN_CORE_PROC, 68, -1}, {181, 1, 1, 69, MAIN_CORE_PROC, 69, -1},
|
||||
{182, 1, 1, 70, MAIN_CORE_PROC, 70, -1}, {183, 1, 1, 71, MAIN_CORE_PROC, 71, -1},
|
||||
{184, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {185, 1, 1, 73, MAIN_CORE_PROC, 73, -1},
|
||||
{186, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {187, 1, 1, 75, MAIN_CORE_PROC, 75, -1},
|
||||
{188, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {189, 1, 1, 77, MAIN_CORE_PROC, 77, -1},
|
||||
{190, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {191, 1, 1, 79, MAIN_CORE_PROC, 79, -1},
|
||||
{192, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {193, 1, 1, 81, MAIN_CORE_PROC, 81, -1},
|
||||
{194, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {195, 1, 1, 83, MAIN_CORE_PROC, 83, -1},
|
||||
{196, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {197, 1, 1, 85, MAIN_CORE_PROC, 85, -1},
|
||||
{198, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {199, 1, 1, 87, MAIN_CORE_PROC, 87, -1},
|
||||
{200, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {201, 1, 1, 89, MAIN_CORE_PROC, 89, -1},
|
||||
{202, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {203, 1, 1, 91, MAIN_CORE_PROC, 91, -1},
|
||||
{204, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {205, 1, 1, 93, MAIN_CORE_PROC, 93, -1},
|
||||
{206, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {207, 1, 1, 95, MAIN_CORE_PROC, 95, -1},
|
||||
{208, 1, 1, 96, MAIN_CORE_PROC, 96, -1}, {209, 1, 1, 97, MAIN_CORE_PROC, 97, -1},
|
||||
{210, 1, 1, 98, MAIN_CORE_PROC, 98, -1}, {211, 1, 1, 99, MAIN_CORE_PROC, 99, -1},
|
||||
{212, 1, 1, 100, MAIN_CORE_PROC, 100, -1}, {213, 1, 1, 101, MAIN_CORE_PROC, 101, -1},
|
||||
{214, 1, 1, 102, MAIN_CORE_PROC, 102, -1}, {215, 1, 1, 103, MAIN_CORE_PROC, 103, -1},
|
||||
{216, 1, 1, 104, MAIN_CORE_PROC, 104, -1}, {217, 1, 1, 105, MAIN_CORE_PROC, 105, -1},
|
||||
{218, 1, 1, 106, MAIN_CORE_PROC, 106, -1}, {219, 1, 1, 107, MAIN_CORE_PROC, 107, -1},
|
||||
{220, 1, 1, 108, MAIN_CORE_PROC, 108, -1}, {221, 1, 1, 109, MAIN_CORE_PROC, 109, -1},
|
||||
{222, 1, 1, 110, MAIN_CORE_PROC, 110, -1}, {223, 1, 1, 111, MAIN_CORE_PROC, 111, -1},
|
||||
}, // param[expected out]: The cpu_mapping_table of this simulated platform
|
||||
{
|
||||
{"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"},
|
||||
}, // param[in]: The CPU frequency information table of this simulated platform
|
||||
{{"0-55,112-167"}, {"56-111,168-223"}}, // param[in]: The numa node information table of this simulated platform
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_48cores_hyperthreading = {
|
||||
96,
|
||||
2,
|
||||
2,
|
||||
48,
|
||||
{{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
|
||||
{26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
|
||||
{28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
|
||||
{30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
|
||||
{32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
|
||||
{34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
|
||||
{36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1},
|
||||
{38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1},
|
||||
{40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1},
|
||||
{42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1},
|
||||
{44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1},
|
||||
{46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1},
|
||||
{48, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {49, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{50, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {51, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{52, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {53, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{54, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {55, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{56, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {57, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{58, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {59, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{60, 0, 0, 12, MAIN_CORE_PROC, 12, -1}, {61, 0, 0, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{62, 0, 0, 14, MAIN_CORE_PROC, 14, -1}, {63, 0, 0, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{64, 0, 0, 16, MAIN_CORE_PROC, 16, -1}, {65, 0, 0, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{66, 0, 0, 18, MAIN_CORE_PROC, 18, -1}, {67, 0, 0, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{68, 0, 0, 20, MAIN_CORE_PROC, 20, -1}, {69, 0, 0, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{70, 0, 0, 22, MAIN_CORE_PROC, 22, -1}, {71, 0, 0, 23, MAIN_CORE_PROC, 23, -1},
|
||||
{72, 1, 1, 24, MAIN_CORE_PROC, 24, -1}, {73, 1, 1, 25, MAIN_CORE_PROC, 25, -1},
|
||||
{74, 1, 1, 26, MAIN_CORE_PROC, 26, -1}, {75, 1, 1, 27, MAIN_CORE_PROC, 27, -1},
|
||||
{76, 1, 1, 28, MAIN_CORE_PROC, 28, -1}, {77, 1, 1, 29, MAIN_CORE_PROC, 29, -1},
|
||||
{78, 1, 1, 30, MAIN_CORE_PROC, 30, -1}, {79, 1, 1, 31, MAIN_CORE_PROC, 31, -1},
|
||||
{80, 1, 1, 32, MAIN_CORE_PROC, 32, -1}, {81, 1, 1, 33, MAIN_CORE_PROC, 33, -1},
|
||||
{82, 1, 1, 34, MAIN_CORE_PROC, 34, -1}, {83, 1, 1, 35, MAIN_CORE_PROC, 35, -1},
|
||||
{84, 1, 1, 36, MAIN_CORE_PROC, 36, -1}, {85, 1, 1, 37, MAIN_CORE_PROC, 37, -1},
|
||||
{86, 1, 1, 38, MAIN_CORE_PROC, 38, -1}, {87, 1, 1, 39, MAIN_CORE_PROC, 39, -1},
|
||||
{88, 1, 1, 40, MAIN_CORE_PROC, 40, -1}, {89, 1, 1, 41, MAIN_CORE_PROC, 41, -1},
|
||||
{90, 1, 1, 42, MAIN_CORE_PROC, 42, -1}, {91, 1, 1, 43, MAIN_CORE_PROC, 43, -1},
|
||||
{92, 1, 1, 44, MAIN_CORE_PROC, 44, -1}, {93, 1, 1, 45, MAIN_CORE_PROC, 45, -1},
|
||||
{94, 1, 1, 46, MAIN_CORE_PROC, 46, -1}, {95, 1, 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"},
|
||||
},
|
||||
{
|
||||
{"0-23,48-71"},
|
||||
{"24-47,72-95"},
|
||||
},
|
||||
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_48cores_hyperthreading_1 = {
|
||||
96,
|
||||
4,
|
||||
2,
|
||||
48,
|
||||
{{96, 48, 0, 48, -1, -1},
|
||||
{24, 12, 0, 12, 0, 0},
|
||||
{24, 12, 0, 12, 1, 0},
|
||||
{24, 12, 0, 12, 2, 1},
|
||||
{24, 12, 0, 12, 3, 1}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 1, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 0, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 1, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 0, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 1, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 0, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 1, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 0, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 1, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 0, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 1, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 0, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 2, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 2, 1, 25, HYPER_THREADING_PROC, 25, -1},
|
||||
{26, 2, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 2, 1, 27, HYPER_THREADING_PROC, 27, -1},
|
||||
{28, 2, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 2, 1, 29, HYPER_THREADING_PROC, 29, -1},
|
||||
{30, 2, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 2, 1, 31, HYPER_THREADING_PROC, 31, -1},
|
||||
{32, 2, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 2, 1, 33, HYPER_THREADING_PROC, 33, -1},
|
||||
{34, 2, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 2, 1, 35, HYPER_THREADING_PROC, 35, -1},
|
||||
{36, 3, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 3, 1, 37, HYPER_THREADING_PROC, 37, -1},
|
||||
{38, 3, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 3, 1, 39, HYPER_THREADING_PROC, 39, -1},
|
||||
{40, 3, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 3, 1, 41, HYPER_THREADING_PROC, 41, -1},
|
||||
{42, 3, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 3, 1, 43, HYPER_THREADING_PROC, 43, -1},
|
||||
{44, 3, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 3, 1, 45, HYPER_THREADING_PROC, 45, -1},
|
||||
{46, 3, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 3, 1, 47, HYPER_THREADING_PROC, 47, -1},
|
||||
{48, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {49, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{50, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {51, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{52, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {53, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{54, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {55, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{56, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {57, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{58, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {59, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{60, 1, 0, 12, MAIN_CORE_PROC, 12, -1}, {61, 1, 0, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{62, 1, 0, 14, MAIN_CORE_PROC, 14, -1}, {63, 1, 0, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{64, 1, 0, 16, MAIN_CORE_PROC, 16, -1}, {65, 1, 0, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{66, 1, 0, 18, MAIN_CORE_PROC, 18, -1}, {67, 1, 0, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{68, 1, 0, 20, MAIN_CORE_PROC, 20, -1}, {69, 1, 0, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{70, 1, 0, 22, MAIN_CORE_PROC, 22, -1}, {71, 1, 0, 23, MAIN_CORE_PROC, 23, -1},
|
||||
{72, 2, 1, 24, MAIN_CORE_PROC, 24, -1}, {73, 2, 1, 25, MAIN_CORE_PROC, 25, -1},
|
||||
{74, 2, 1, 26, MAIN_CORE_PROC, 26, -1}, {75, 2, 1, 27, MAIN_CORE_PROC, 27, -1},
|
||||
{76, 2, 1, 28, MAIN_CORE_PROC, 28, -1}, {77, 2, 1, 29, MAIN_CORE_PROC, 29, -1},
|
||||
{78, 2, 1, 30, MAIN_CORE_PROC, 30, -1}, {79, 2, 1, 31, MAIN_CORE_PROC, 31, -1},
|
||||
{80, 2, 1, 32, MAIN_CORE_PROC, 32, -1}, {81, 2, 1, 33, MAIN_CORE_PROC, 33, -1},
|
||||
{82, 2, 1, 34, MAIN_CORE_PROC, 34, -1}, {83, 2, 1, 35, MAIN_CORE_PROC, 35, -1},
|
||||
{84, 3, 1, 36, MAIN_CORE_PROC, 36, -1}, {85, 3, 1, 37, MAIN_CORE_PROC, 37, -1},
|
||||
{86, 3, 1, 38, MAIN_CORE_PROC, 38, -1}, {87, 3, 1, 39, MAIN_CORE_PROC, 39, -1},
|
||||
{88, 3, 1, 40, MAIN_CORE_PROC, 40, -1}, {89, 3, 1, 41, MAIN_CORE_PROC, 41, -1},
|
||||
{90, 3, 1, 42, MAIN_CORE_PROC, 42, -1}, {91, 3, 1, 43, MAIN_CORE_PROC, 43, -1},
|
||||
{92, 3, 1, 44, MAIN_CORE_PROC, 44, -1}, {93, 3, 1, 45, MAIN_CORE_PROC, 45, -1},
|
||||
{94, 3, 1, 46, MAIN_CORE_PROC, 46, -1}, {95, 3, 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"},
|
||||
},
|
||||
{
|
||||
{"0-11,48-59"},
|
||||
{"12-23,60-71"},
|
||||
{"24-35,72-83"},
|
||||
{"36-47,84-95"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_24cores_hyperthreading = {
|
||||
48,
|
||||
2,
|
||||
2,
|
||||
24,
|
||||
{{48, 24, 0, 24, -1, -1}, {24, 12, 0, 12, 0, 0}, {24, 12, 0, 12, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 1, 1, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 1, 1, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 1, 1, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 1, 1, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 1, 1, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 1, 1, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 1, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 1, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 1, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {25, 1, 1, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{26, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {27, 1, 1, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{28, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {29, 1, 1, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{30, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {31, 1, 1, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{32, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {33, 1, 1, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{34, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {35, 1, 1, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{36, 0, 0, 12, MAIN_CORE_PROC, 12, -1}, {37, 1, 1, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{38, 0, 0, 14, MAIN_CORE_PROC, 14, -1}, {39, 1, 1, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{40, 0, 0, 16, MAIN_CORE_PROC, 16, -1}, {41, 1, 1, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{42, 0, 0, 18, MAIN_CORE_PROC, 18, -1}, {43, 1, 1, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{44, 0, 0, 20, MAIN_CORE_PROC, 20, -1}, {45, 1, 1, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{46, 0, 0, 22, MAIN_CORE_PROC, 22, -1}, {47, 1, 1, 23, MAIN_CORE_PROC, 23, -1},
|
||||
},
|
||||
{
|
||||
{"0,24", "0", "3500000"}, {"1,25", "1", "3500000"}, {"2,26", "0", "3500000"}, {"3,27", "1", "3500000"},
|
||||
{"4,28", "0", "3500000"}, {"5,29", "1", "3500000"}, {"6,30", "0", "3500000"}, {"7,31", "1", "3500000"},
|
||||
{"8,32", "0", "3500000"}, {"9,33", "1", "3500000"}, {"10,34", "0", "3500000"}, {"11,35", "1", "3500000"},
|
||||
{"12,36", "0", "3500000"}, {"13,37", "1", "3500000"}, {"14,38", "0", "3500000"}, {"15,39", "1", "3500000"},
|
||||
{"16,40", "0", "3500000"}, {"17,41", "1", "3500000"}, {"18,42", "0", "3500000"}, {"19,43", "1", "3500000"},
|
||||
{"20,44", "0", "3500000"}, {"21,45", "1", "3500000"}, {"22,46", "0", "3500000"}, {"23,47", "1", "3500000"},
|
||||
{"0,24", "0", "3500000"}, {"1,25", "1", "3500000"}, {"2,26", "0", "3500000"}, {"3,27", "1", "3500000"},
|
||||
{"4,28", "0", "3500000"}, {"5,29", "1", "3500000"}, {"6,30", "0", "3500000"}, {"7,31", "1", "3500000"},
|
||||
{"8,32", "0", "3500000"}, {"9,33", "1", "3500000"}, {"10,34", "0", "3500000"}, {"11,35", "1", "3500000"},
|
||||
{"12,36", "0", "3500000"}, {"13,37", "1", "3500000"}, {"14,38", "0", "3500000"}, {"15,39", "1", "3500000"},
|
||||
{"16,40", "0", "3500000"}, {"17,41", "1", "3500000"}, {"18,42", "0", "3500000"}, {"19,43", "1", "3500000"},
|
||||
{"20,44", "0", "3500000"}, {"21,45", "1", "3500000"}, {"22,46", "0", "3500000"}, {"23,47", "1", "3500000"},
|
||||
},
|
||||
{
|
||||
{"0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46"},
|
||||
{"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 freq_2sockets_24cores_hyperthreading_1 = {
|
||||
48,
|
||||
4,
|
||||
2,
|
||||
24,
|
||||
{{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 2, 1, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 2, 1, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 2, 1, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 2, 1, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 2, 1, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 2, 1, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 1, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 3, 1, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 1, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 3, 1, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 1, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 3, 1, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 1, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 3, 1, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 1, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 3, 1, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 1, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 3, 1, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {25, 2, 1, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{26, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {27, 2, 1, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{28, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {29, 2, 1, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{30, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {31, 2, 1, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{32, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {33, 2, 1, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{34, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {35, 2, 1, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{36, 1, 0, 12, MAIN_CORE_PROC, 12, -1}, {37, 3, 1, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{38, 1, 0, 14, MAIN_CORE_PROC, 14, -1}, {39, 3, 1, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{40, 1, 0, 16, MAIN_CORE_PROC, 16, -1}, {41, 3, 1, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{42, 1, 0, 18, MAIN_CORE_PROC, 18, -1}, {43, 3, 1, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{44, 1, 0, 20, MAIN_CORE_PROC, 20, -1}, {45, 3, 1, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{46, 1, 0, 22, MAIN_CORE_PROC, 22, -1}, {47, 3, 1, 23, MAIN_CORE_PROC, 23, -1},
|
||||
},
|
||||
{
|
||||
{"0,24", "0", "3500000"}, {"1,25", "1", "3500000"}, {"2,26", "0", "3500000"}, {"3,27", "1", "3500000"},
|
||||
{"4,28", "0", "3500000"}, {"5,29", "1", "3500000"}, {"6,30", "0", "3500000"}, {"7,31", "1", "3500000"},
|
||||
{"8,32", "0", "3500000"}, {"9,33", "1", "3500000"}, {"10,34", "0", "3500000"}, {"11,35", "1", "3500000"},
|
||||
{"12,36", "0", "3500000"}, {"13,37", "1", "3500000"}, {"14,38", "0", "3500000"}, {"15,39", "1", "3500000"},
|
||||
{"16,40", "0", "3500000"}, {"17,41", "1", "3500000"}, {"18,42", "0", "3500000"}, {"19,43", "1", "3500000"},
|
||||
{"20,44", "0", "3500000"}, {"21,45", "1", "3500000"}, {"22,46", "0", "3500000"}, {"23,47", "1", "3500000"},
|
||||
{"0,24", "0", "3500000"}, {"1,25", "1", "3500000"}, {"2,26", "0", "3500000"}, {"3,27", "1", "3500000"},
|
||||
{"4,28", "0", "3500000"}, {"5,29", "1", "3500000"}, {"6,30", "0", "3500000"}, {"7,31", "1", "3500000"},
|
||||
{"8,32", "0", "3500000"}, {"9,33", "1", "3500000"}, {"10,34", "0", "3500000"}, {"11,35", "1", "3500000"},
|
||||
{"12,36", "0", "3500000"}, {"13,37", "1", "3500000"}, {"14,38", "0", "3500000"}, {"15,39", "1", "3500000"},
|
||||
{"16,40", "0", "3500000"}, {"17,41", "1", "3500000"}, {"18,42", "0", "3500000"}, {"19,43", "1", "3500000"},
|
||||
{"20,44", "0", "3500000"}, {"21,45", "1", "3500000"}, {"22,46", "0", "3500000"}, {"23,47", "1", "3500000"},
|
||||
},
|
||||
{
|
||||
{"0,2,4,6,8,10,24,26,28,30,32,34"},
|
||||
{"12,14,16,18,20,22,36,38,40,42,44,46"},
|
||||
{"1,3,5,7,9,11,25,27,29,31,33,35"},
|
||||
{"13,15,17,19,21,23,37,39,41,43,45,47"},
|
||||
},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_20cores_hyperthreading = {
|
||||
40,
|
||||
2,
|
||||
2,
|
||||
20,
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 1, 1, 10, HYPER_THREADING_PROC, 10, -1}, {11, 1, 1, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 1, 1, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 1, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 1, 1, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 1, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 1, 1, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 1, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {21, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {23, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {25, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {27, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{28, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {29, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{30, 1, 1, 10, MAIN_CORE_PROC, 10, -1}, {31, 1, 1, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{32, 1, 1, 12, MAIN_CORE_PROC, 12, -1}, {33, 1, 1, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{34, 1, 1, 14, MAIN_CORE_PROC, 14, -1}, {35, 1, 1, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{36, 1, 1, 16, MAIN_CORE_PROC, 16, -1}, {37, 1, 1, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{38, 1, 1, 18, MAIN_CORE_PROC, 18, -1}, {39, 1, 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"},
|
||||
},
|
||||
{{"0-9,20-29"}, {"10-19,30-39"}},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_2sockets_20cores_hyperthreading_1 = {
|
||||
40,
|
||||
2,
|
||||
2,
|
||||
20,
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 1, 1, 10, HYPER_THREADING_PROC, 10, -1}, {11, 1, 1, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 1, 1, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 1, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 1, 1, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 1, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 1, 1, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 1, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {21, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {23, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {25, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {27, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{28, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {29, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{30, 1, 1, 10, MAIN_CORE_PROC, 10, -1}, {31, 1, 1, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{32, 1, 1, 12, MAIN_CORE_PROC, 12, -1}, {33, 1, 1, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{34, 1, 1, 14, MAIN_CORE_PROC, 14, -1}, {35, 1, 1, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{36, 1, 1, 16, MAIN_CORE_PROC, 16, -1}, {37, 1, 1, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{38, 1, 1, 18, MAIN_CORE_PROC, 18, -1}, {39, 1, 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,
|
||||
2,
|
||||
20,
|
||||
{{20, 20, 0, 0, -1, -1}, {10, 10, 0, 0, 0, 0}, {10, 10, 0, 0, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{6, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{8, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{10, 1, 1, 10, MAIN_CORE_PROC, 10, -1}, {11, 1, 1, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{12, 1, 1, 12, MAIN_CORE_PROC, 12, -1}, {13, 1, 1, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{14, 1, 1, 14, MAIN_CORE_PROC, 14, -1}, {15, 1, 1, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{16, 1, 1, 16, MAIN_CORE_PROC, 16, -1}, {17, 1, 1, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{18, 1, 1, 18, MAIN_CORE_PROC, 18, -1}, {19, 1, 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"},
|
||||
},
|
||||
{{"0-9"}, {"10-19"}},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_32cores_hyperthreading = {
|
||||
64,
|
||||
1,
|
||||
1,
|
||||
32,
|
||||
{{64, 32, 0, 32, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
|
||||
{10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
|
||||
{12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
|
||||
{14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
|
||||
{16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
|
||||
{18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1},
|
||||
{20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1},
|
||||
{22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1},
|
||||
{24, 0, 0, 24, HYPER_THREADING_PROC, 24, -1}, {25, 0, 0, 25, HYPER_THREADING_PROC, 25, -1},
|
||||
{26, 0, 0, 26, HYPER_THREADING_PROC, 26, -1}, {27, 0, 0, 27, HYPER_THREADING_PROC, 27, -1},
|
||||
{28, 0, 0, 28, HYPER_THREADING_PROC, 28, -1}, {29, 0, 0, 29, HYPER_THREADING_PROC, 29, -1},
|
||||
{30, 0, 0, 30, HYPER_THREADING_PROC, 30, -1}, {31, 0, 0, 31, HYPER_THREADING_PROC, 31, -1},
|
||||
{32, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {33, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{34, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {35, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{36, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {37, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{38, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {39, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{40, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {41, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
|
||||
{42, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {43, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
|
||||
{44, 0, 0, 12, MAIN_CORE_PROC, 12, -1}, {45, 0, 0, 13, MAIN_CORE_PROC, 13, -1},
|
||||
{46, 0, 0, 14, MAIN_CORE_PROC, 14, -1}, {47, 0, 0, 15, MAIN_CORE_PROC, 15, -1},
|
||||
{48, 0, 0, 16, MAIN_CORE_PROC, 16, -1}, {49, 0, 0, 17, MAIN_CORE_PROC, 17, -1},
|
||||
{50, 0, 0, 18, MAIN_CORE_PROC, 18, -1}, {51, 0, 0, 19, MAIN_CORE_PROC, 19, -1},
|
||||
{52, 0, 0, 20, MAIN_CORE_PROC, 20, -1}, {53, 0, 0, 21, MAIN_CORE_PROC, 21, -1},
|
||||
{54, 0, 0, 22, MAIN_CORE_PROC, 22, -1}, {55, 0, 0, 23, MAIN_CORE_PROC, 23, -1},
|
||||
{56, 0, 0, 24, MAIN_CORE_PROC, 24, -1}, {57, 0, 0, 25, MAIN_CORE_PROC, 25, -1},
|
||||
{58, 0, 0, 26, MAIN_CORE_PROC, 26, -1}, {59, 0, 0, 27, MAIN_CORE_PROC, 27, -1},
|
||||
{60, 0, 0, 28, MAIN_CORE_PROC, 28, -1}, {61, 0, 0, 29, MAIN_CORE_PROC, 29, -1},
|
||||
{62, 0, 0, 30, MAIN_CORE_PROC, 30, -1}, {63, 0, 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"},
|
||||
},
|
||||
{{"0-63"}},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_16cores_hyperthreading = {
|
||||
24,
|
||||
1,
|
||||
1,
|
||||
16,
|
||||
{{24, 8, 8, 8, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
{20, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {21, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1},
|
||||
{22, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {23, 0, 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,
|
||||
1,
|
||||
16,
|
||||
{{16, 8, 8, 0, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{1, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{2, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{3, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{4, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{5, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{6, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{7, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
{12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1},
|
||||
{13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1},
|
||||
{14, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1},
|
||||
{15, 0, 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"},
|
||||
},
|
||||
{{"0-15"}},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_16cores_1_hyperthreading = {
|
||||
22,
|
||||
1,
|
||||
1,
|
||||
16,
|
||||
{{22, 6, 10, 6, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1},
|
||||
{14, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{16, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
{18, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1},
|
||||
{20, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {21, 0, 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,
|
||||
1,
|
||||
12,
|
||||
{{14, 2, 10, 2, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, EFFICIENT_CORE_PROC, 2, -1},
|
||||
{5, 0, 0, 3, EFFICIENT_CORE_PROC, 3, -1},
|
||||
{6, 0, 0, 4, EFFICIENT_CORE_PROC, 4, -1},
|
||||
{7, 0, 0, 5, EFFICIENT_CORE_PROC, 5, -1},
|
||||
{8, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1},
|
||||
{9, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1},
|
||||
{10, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{11, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{12, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{13, 0, 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"},
|
||||
},
|
||||
{{"0-13"}},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_8cores_hyperthreading = {
|
||||
16,
|
||||
1,
|
||||
1,
|
||||
8,
|
||||
{{16, 8, 0, 8, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{15, 0, 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_hyperthreading_1 = {
|
||||
16,
|
||||
1,
|
||||
1,
|
||||
8,
|
||||
{{16, 8, 0, 8, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{8, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{9, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{10, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{11, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{12, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{13, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{14, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{15, 0, 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"},
|
||||
},
|
||||
{{"0-15"}},
|
||||
};
|
||||
LinuxCpuMapTestCase freq_1sockets_4cores = {
|
||||
4,
|
||||
1,
|
||||
1,
|
||||
4,
|
||||
{{4, 4, 0, 0, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{1, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{2, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{3, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
},
|
||||
{
|
||||
{"0", "0", "1800000"},
|
||||
{"1", "0", "1800000"},
|
||||
{"2", "0", "1800000"},
|
||||
{"3", "0", "1800000"},
|
||||
},
|
||||
{},
|
||||
};
|
||||
|
||||
TEST_P(LinuxCpuMapFreqParserTests, LinuxFreq) {}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(CPUMap,
|
||||
LinuxCpuMapFreqParserTests,
|
||||
testing::Values(freq_2sockets_112cores_hyperthreading,
|
||||
freq_2sockets_48cores_hyperthreading,
|
||||
freq_2sockets_48cores_hyperthreading_1,
|
||||
freq_2sockets_24cores_hyperthreading,
|
||||
freq_2sockets_24cores_hyperthreading_1,
|
||||
freq_2sockets_20cores_hyperthreading,
|
||||
freq_2sockets_20cores_hyperthreading_1,
|
||||
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_hyperthreading_1,
|
||||
freq_1sockets_4cores));
|
||||
|
||||
#endif
|
||||
} // namespace
|
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@
|
||||
#include <common_test_utils/test_common.hpp>
|
||||
|
||||
#include "ie_system_conf.h"
|
||||
#include "streams_executor.hpp"
|
||||
#include "os/cpu_map_info.hpp"
|
||||
|
||||
using namespace testing;
|
||||
using namespace ov;
|
||||
@ -53,366 +53,366 @@ public:
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_1 = {
|
||||
{}, // param[in]: The logical processors selected in this simulation case does not include the physical core of
|
||||
// Pcore
|
||||
{{40, 20, 0, 20},
|
||||
{20, 10, 0, 10},
|
||||
{20, 10, 0, 10}}, // param[in]: The proc_type_table of simulated platform which is 2 sockets, 20 Pcores
|
||||
{{40, 20, 0, 20, -1, -1},
|
||||
{20, 10, 0, 10, 0, 0},
|
||||
{20, 10, 0, 10, 1, 1}}, // param[in]: The proc_type_table of simulated platform which is 2 sockets, 20 Pcores
|
||||
// and 40 logical processors with hyper-threading enabled.
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
}, // param[in]: This simulation case select logcial processor 0, 2, 4 and 6 which is marked as logcial core of
|
||||
// Pcore in original cpu_mapping_table.
|
||||
1, // param[expected out]: Since all selected logical processors are in one socket, the number of sockets changes
|
||||
// to 1.
|
||||
4, // param[expected out]: Since only 4 logical processors are selected, the number of cores changes to 4.
|
||||
{{4, 4, 0, 0}}, // param[expected out]: The proc_type_table changes to 4 Pcores only
|
||||
{{4, 4, 0, 0, 0, 0}}, // param[expected out]: The proc_type_table changes to 4 Pcores only
|
||||
{
|
||||
{0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{0, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
}, // param[expected out]: cpu_mapping_table changes to physical core of Pcore.
|
||||
};
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_2 = {
|
||||
{1, 3, 5, 7},
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{21, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{21, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
},
|
||||
1,
|
||||
4,
|
||||
{{4, 4, 0, 0}},
|
||||
{{4, 4, 0, 0, 0, 0}},
|
||||
{
|
||||
{21, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{21, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_3 = {
|
||||
{1, 3, 5, 7},
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{21, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{21, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
},
|
||||
1,
|
||||
8,
|
||||
{{8, 8, 0, 0}},
|
||||
{{8, 8, 0, 0, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{21, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{0, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{21, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{23, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{25, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{27, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_4 = {
|
||||
{0, 2, 4, 6},
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
},
|
||||
1,
|
||||
4,
|
||||
{{8, 4, 0, 4}},
|
||||
{{8, 4, 0, 4, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_5 = {
|
||||
{},
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{10, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{10, 1, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
},
|
||||
2,
|
||||
8,
|
||||
{{8, 8, 0, 0}, {4, 4, 0, 0}, {4, 4, 0, 0}},
|
||||
{{8, 8, 0, 0, -1, -1}, {4, 4, 0, 0, 0, 0}, {4, 4, 0, 0, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{10, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{12, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{14, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{16, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
{0, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{10, 1, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{12, 1, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{14, 1, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{16, 1, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_6 = {
|
||||
{0, 2, 4, 6, 10, 12, 14, 16},
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
},
|
||||
2,
|
||||
8,
|
||||
{{8, 8, 0, 0}, {4, 4, 0, 0}, {4, 4, 0, 0}},
|
||||
{{8, 8, 0, 0, -1, -1}, {4, 4, 0, 0, 0, 0}, {4, 4, 0, 0, 1, 1}},
|
||||
{
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_7 = {
|
||||
{0, 2, 4, 6},
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{10, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{10, 1, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
},
|
||||
2,
|
||||
8,
|
||||
{{8, 8, 0, 0}, {4, 4, 0, 0}, {4, 4, 0, 0}},
|
||||
{{8, 8, 0, 0, -1, -1}, {4, 4, 0, 0, 0, 0}, {4, 4, 0, 0, 1, 1}},
|
||||
{
|
||||
{10, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{12, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{14, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{16, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{10, 1, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{12, 1, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{14, 1, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{16, 1, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_2sockets_20cores_hyperthreading_8 = {
|
||||
{0, 2, 4, 6, 10, 12, 14, 16},
|
||||
{{40, 20, 0, 20}, {20, 10, 0, 10}, {20, 10, 0, 10}},
|
||||
{{40, 20, 0, 20, -1, -1}, {20, 10, 0, 10, 0, 0}, {20, 10, 0, 10, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{10, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{10, 1, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
},
|
||||
2,
|
||||
8,
|
||||
{{16, 8, 0, 8}, {8, 4, 0, 4}, {8, 4, 0, 4}},
|
||||
{{16, 8, 0, 8, -1, -1}, {8, 4, 0, 4, 0, 0}, {8, 4, 0, 4, 1, 1}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{10, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
{20, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{10, 1, 1, 10, HYPER_THREADING_PROC, 10, -1},
|
||||
{12, 1, 1, 12, HYPER_THREADING_PROC, 12, -1},
|
||||
{14, 1, 1, 14, HYPER_THREADING_PROC, 14, -1},
|
||||
{16, 1, 1, 16, HYPER_THREADING_PROC, 16, -1},
|
||||
{20, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{22, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{24, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{26, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{30, 1, 1, 10, MAIN_CORE_PROC, 10, -1},
|
||||
{32, 1, 1, 12, MAIN_CORE_PROC, 12, -1},
|
||||
{34, 1, 1, 14, MAIN_CORE_PROC, 14, -1},
|
||||
{36, 1, 1, 16, MAIN_CORE_PROC, 16, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_1sockets_16cores_hyperthreading_1 = {
|
||||
{},
|
||||
{{24, 8, 8, 8}},
|
||||
{{24, 8, 8, 8, 0, 0}},
|
||||
{
|
||||
{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},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
1,
|
||||
4,
|
||||
{{4, 0, 4, 0}},
|
||||
{{4, 0, 4, 0, 0, 0}},
|
||||
{
|
||||
{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},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_1sockets_16cores_hyperthreading_2 = {
|
||||
{},
|
||||
{{24, 8, 8, 8}},
|
||||
{{24, 8, 8, 8, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 6, HYPER_THREADING_PROC, 6, -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},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
1,
|
||||
8,
|
||||
{{8, 4, 4, 0}},
|
||||
{{8, 4, 4, 0, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 6, MAIN_CORE_PROC, 6, -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},
|
||||
{0, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{4, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{6, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_1sockets_16cores_hyperthreading_3 = {
|
||||
{0, 1, 2, 3},
|
||||
{{24, 8, 8, 8}},
|
||||
{{24, 8, 8, 8, 0, 0}},
|
||||
{
|
||||
{1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 3, MAIN_CORE_PROC, 3, -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},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
1,
|
||||
8,
|
||||
{{8, 4, 4, 0}},
|
||||
{{8, 4, 4, 0, 0, 0}},
|
||||
{
|
||||
{1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 3, MAIN_CORE_PROC, 3, -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},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_1sockets_16cores_hyperthreading_4 = {
|
||||
{0, 1, 2, 3},
|
||||
{{24, 8, 8, 8}},
|
||||
{{24, 8, 8, 8, 0, 0}},
|
||||
{
|
||||
{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},
|
||||
{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},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
1,
|
||||
8,
|
||||
{{12, 4, 4, 4}},
|
||||
{{12, 4, 4, 4, 0, 0}},
|
||||
{
|
||||
{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},
|
||||
{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},
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
};
|
||||
LinuxNumactlTestCase numactl_1sockets_16cores_hyperthreading_5 = {
|
||||
{0, 1, 2, 3},
|
||||
{{24, 8, 8, 8}},
|
||||
{{24, 8, 8, 8, 0, 0}},
|
||||
{
|
||||
{1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{10, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{12, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{14, 0, 7, HYPER_THREADING_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},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
|
||||
{10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
|
||||
{12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
|
||||
{14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
1,
|
||||
12,
|
||||
{{12, 8, 4, 0}},
|
||||
{{12, 8, 4, 0, 0, 0}},
|
||||
{
|
||||
{1, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{14, 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},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
{8, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
|
||||
{10, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
|
||||
{12, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
|
||||
{14, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
|
||||
{16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},
|
||||
{17, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1},
|
||||
{18, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1},
|
||||
{19, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1},
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -19,7 +19,6 @@
|
||||
|
||||
namespace ov {
|
||||
namespace intel_cpu {
|
||||
|
||||
struct Config {
|
||||
Config();
|
||||
|
||||
@ -40,6 +39,12 @@ struct Config {
|
||||
Disable,
|
||||
};
|
||||
|
||||
enum class LatencyThreadingMode {
|
||||
PER_NUMA_NODE,
|
||||
PER_SOCKET,
|
||||
PER_PLATFORM,
|
||||
};
|
||||
|
||||
bool collectPerfCounters = false;
|
||||
bool exclusiveAsyncRequests = false;
|
||||
SnippetsMode snippetsMode = SnippetsMode::Enable;
|
||||
@ -59,6 +64,7 @@ struct Config {
|
||||
ov::hint::SchedulingCoreType schedulingCoreType = ov::hint::SchedulingCoreType::ANY_CORE;
|
||||
bool enableHyperThreading = true;
|
||||
bool changedHyperThreading = false;
|
||||
Config::LatencyThreadingMode scopeOflatencyCandidate = Config::LatencyThreadingMode::PER_SOCKET;
|
||||
#if defined(OPENVINO_ARCH_X86) || defined(OPENVINO_ARCH_X86_64)
|
||||
LPTransformsMode lpTransformsMode = LPTransformsMode::On;
|
||||
bool enforceBF16 = true;
|
||||
|
@ -23,9 +23,12 @@ namespace ov {
|
||||
namespace intel_cpu {
|
||||
|
||||
std::vector<std::vector<int>> get_streams_info_table(const int input_streams,
|
||||
const bool input_streams_changed,
|
||||
const int input_threads,
|
||||
const int input_infer_requests,
|
||||
const int model_prefer_threads,
|
||||
const std::string input_perf_hint,
|
||||
const Config::LatencyThreadingMode scopeOflatencyCandidate,
|
||||
const std::vector<std::vector<int>> proc_type_table) {
|
||||
std::vector<int> stream_info(CPU_STREAMS_TABLE_SIZE);
|
||||
std::vector<std::vector<int>> streams_info_table;
|
||||
@ -49,7 +52,9 @@ std::vector<std::vector<int>> get_streams_info_table(const int input_streams,
|
||||
}
|
||||
};
|
||||
|
||||
if (1 == input_streams) {
|
||||
if (((input_streams_changed == false) && (input_perf_hint == CONFIG_VALUE(LATENCY)) &&
|
||||
((scopeOflatencyCandidate == Config::LatencyThreadingMode::PER_PLATFORM) || (proc_type_table.size() == 1))) ||
|
||||
((input_streams_changed == true) && (input_streams == 1))) {
|
||||
stream_info[NUMBER_OF_STREAMS] = 1;
|
||||
if (input_threads > 0) {
|
||||
stream_info[THREADS_PER_STREAM] = std::min(proc_type_table[0][ALL_PROC], input_threads);
|
||||
@ -91,6 +96,40 @@ std::vector<std::vector<int>> get_streams_info_table(const int input_streams,
|
||||
}
|
||||
}
|
||||
return streams_info_table;
|
||||
} else if ((input_streams_changed == false) && (input_perf_hint == CONFIG_VALUE(LATENCY))) {
|
||||
stream_info[PROC_TYPE] = MAIN_CORE_PROC;
|
||||
int max_per_numa_node = 0;
|
||||
int numa_node_cnt = 0;
|
||||
std::vector<int> proc_per_socket;
|
||||
proc_per_socket.resize(proc_type_table.size(), 0);
|
||||
for (long unsigned int i = 1; i < proc_type_table.size(); i++) {
|
||||
if (max_per_numa_node < proc_type_table[i][ALL_PROC]) {
|
||||
max_per_numa_node = proc_type_table[i][ALL_PROC];
|
||||
numa_node_cnt = 1;
|
||||
} else if (max_per_numa_node == proc_type_table[i][ALL_PROC]) {
|
||||
numa_node_cnt++;
|
||||
}
|
||||
proc_per_socket[proc_type_table[i][PROC_SOCKET_ID]] += proc_type_table[i][ALL_PROC];
|
||||
}
|
||||
if (scopeOflatencyCandidate == Config::LatencyThreadingMode::PER_NUMA_NODE) {
|
||||
stream_info[NUMBER_OF_STREAMS] = numa_node_cnt;
|
||||
stream_info[THREADS_PER_STREAM] = max_per_numa_node;
|
||||
} else {
|
||||
int max_per_socket = 0;
|
||||
int socket_cnt = 0;
|
||||
for (long unsigned int i = 0; i < proc_per_socket.size(); i++) {
|
||||
if (max_per_socket < proc_per_socket[i]) {
|
||||
max_per_socket = proc_per_socket[i];
|
||||
socket_cnt = 1;
|
||||
} else if (max_per_socket == proc_per_socket[i]) {
|
||||
socket_cnt++;
|
||||
}
|
||||
}
|
||||
stream_info[NUMBER_OF_STREAMS] = socket_cnt;
|
||||
stream_info[THREADS_PER_STREAM] = max_per_socket;
|
||||
}
|
||||
streams_info_table.push_back(stream_info);
|
||||
return streams_info_table;
|
||||
} else {
|
||||
int n_streams = 0;
|
||||
int n_threads = 0;
|
||||
@ -100,7 +139,7 @@ std::vector<std::vector<int>> get_streams_info_table(const int input_streams,
|
||||
n_threads =
|
||||
(0 == input_threads) ? proc_type_table[0][ALL_PROC] : std::min(proc_type_table[0][ALL_PROC], input_threads);
|
||||
|
||||
if (0 != input_streams) {
|
||||
if ((input_streams_changed == true) && (input_streams > 0)) {
|
||||
base_type = (proc_type_table[0][MAIN_CORE_PROC] == 0) ? EFFICIENT_CORE_PROC : MAIN_CORE_PROC;
|
||||
n_streams = (input_infer_requests > 0) ? std::min(input_streams, input_infer_requests) : input_streams;
|
||||
if (n_streams >= n_threads) {
|
||||
@ -292,10 +331,13 @@ void generate_stream_info(const int streams,
|
||||
model_prefer_threads = get_model_prefer_threads(streams, proc_type_table, ngraphFunc, executor_config);
|
||||
}
|
||||
|
||||
executor_config._streams_info_table = get_streams_info_table(streams,
|
||||
executor_config._streams_info_table = get_streams_info_table(executor_config._streams,
|
||||
executor_config._streams_changed,
|
||||
executor_config._threads,
|
||||
config.perfHintsConfig.ovPerfHintNumRequests,
|
||||
model_prefer_threads,
|
||||
config.perfHintsConfig.ovPerfHint,
|
||||
config.scopeOflatencyCandidate,
|
||||
proc_type_table);
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "config.h"
|
||||
#include "graph.h"
|
||||
#include "openvino/runtime/properties.hpp"
|
||||
|
||||
@ -19,10 +20,10 @@ namespace ov {
|
||||
namespace intel_cpu {
|
||||
/**
|
||||
* @brief Generate streams information table according to processors type table.
|
||||
* @param[in] input_streams is the targeted number of streams set by user via ov::num_streams or hints.
|
||||
* - input "0" indicates the optimal number of streams generated by the function.
|
||||
* - When user sets LATENCY hint, OpenVINO runtime generate one stream per CPU node.
|
||||
* @param[in] input_threads is the max number of threads set by user via ov::inference_num_threads.
|
||||
* @param[in] input_streams is the targeted number of streams set by user via ov::num_streams or the default value.
|
||||
* @param[in] input_streams_changed indicates if streams is set by user via ov::num_streams.
|
||||
* @param[in] input_threads is the max number of threads set by user via ov::inference_num_threads or the default
|
||||
* value.
|
||||
* - input "0" indicates that the function can use all resource in proc_type_table.
|
||||
* - If user limits the max number of threads, the final number of streams output cannot exceed the max
|
||||
* number of threads.
|
||||
@ -34,15 +35,21 @@ namespace intel_cpu {
|
||||
* function.
|
||||
* - input "0" indicates that the function generates the optimal number of threads per stream based on
|
||||
* processors type information.
|
||||
* @param[in] input_perf_hint is performance hint set by user via ov::hint::performance_mode or the default value.
|
||||
* @param[in] scopeOflatencyCandidate is the scope of candidate processors per stream for latency hint
|
||||
* - user can select all processors per numa node, per socket, or per platform.
|
||||
* @param[in] proc_type_table is currently available candidate processors.
|
||||
* - candidate processors have benn updated based on user input hints like ov::hint::scheduling_core_type
|
||||
* in previous function.
|
||||
* @return streams information table which will be used by StreamsExecutor.
|
||||
*/
|
||||
std::vector<std::vector<int>> get_streams_info_table(const int input_streams,
|
||||
const bool input_streams_changed,
|
||||
const int input_threads,
|
||||
const int input_infer_requests,
|
||||
const int model_prefer_threads,
|
||||
const std::string input_perf_hint,
|
||||
const Config::LatencyThreadingMode scopeOflatencyCandidate,
|
||||
const std::vector<std::vector<int>> proc_type_table);
|
||||
/**
|
||||
* @brief Get model_prefer_threads
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user