avoid adding new function
This commit is contained in:
parent
1d1e6e8ee4
commit
f0a35519b0
2 changed files with 21 additions and 37 deletions
|
@ -80,38 +80,6 @@ using json = nlohmann::ordered_json;
|
||||||
//
|
//
|
||||||
// CPU utils
|
// CPU utils
|
||||||
//
|
//
|
||||||
#ifdef _WIN32
|
|
||||||
int32_t cpu_get_num_cores_win(bool print_physical_core_num) {
|
|
||||||
DWORD buffer_size = 0;
|
|
||||||
GetLogicalProcessorInformationEx(RelationProcessorCore, nullptr, &buffer_size);
|
|
||||||
std::vector<char> buffer(buffer_size);
|
|
||||||
if (!GetLogicalProcessorInformationEx(RelationProcessorCore, reinterpret_cast<PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(buffer.data()), &buffer_size)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int num_cores_win = 0;
|
|
||||||
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info = reinterpret_cast<PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(buffer.data());
|
|
||||||
while (buffer_size > 0) {
|
|
||||||
if (info->Relationship == RelationProcessorCore) {
|
|
||||||
if (print_physical_core_num) {
|
|
||||||
num_cores_win += info->Processor.GroupCount;
|
|
||||||
} else {
|
|
||||||
for (WORD i = 0; i < info->Processor.GroupCount; ++i) {
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
num_cores_win += __popcnt64(info->Processor.GroupMask[i].Mask);
|
|
||||||
#else
|
|
||||||
num_cores_win += _popcnt64(info->Processor.GroupMask[i].Mask);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
buffer_size -= info->Size;
|
|
||||||
info = reinterpret_cast<PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(reinterpret_cast<char*>(info) + info->Size);
|
|
||||||
}
|
|
||||||
|
|
||||||
return num_cores_win;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int32_t cpu_get_num_physical_cores() {
|
int32_t cpu_get_num_physical_cores() {
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
@ -143,7 +111,24 @@ int32_t cpu_get_num_physical_cores() {
|
||||||
return num_physical_cores;
|
return num_physical_cores;
|
||||||
}
|
}
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
return cpu_get_num_cores_win(true);
|
DWORD buffer_size = 0;
|
||||||
|
GetLogicalProcessorInformationEx(RelationProcessorCore, nullptr, &buffer_size);
|
||||||
|
std::vector<char> buffer(buffer_size);
|
||||||
|
if (!GetLogicalProcessorInformationEx(RelationProcessorCore, reinterpret_cast<PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(buffer.data()), &buffer_size)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t num_physical_cores = 0;
|
||||||
|
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info = reinterpret_cast<PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(buffer.data());
|
||||||
|
while (buffer_size > 0) {
|
||||||
|
if (info->Relationship == RelationProcessorCore) {
|
||||||
|
num_physical_cores += info->Processor.GroupCount;
|
||||||
|
}
|
||||||
|
buffer_size -= info->Size;
|
||||||
|
info = reinterpret_cast<PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(reinterpret_cast<char*>(info) + info->Size);
|
||||||
|
}
|
||||||
|
|
||||||
|
return num_physical_cores;
|
||||||
#endif
|
#endif
|
||||||
unsigned int n_threads = std::thread::hardware_concurrency();
|
unsigned int n_threads = std::thread::hardware_concurrency();
|
||||||
return n_threads > 0 ? (n_threads <= 4 ? n_threads : n_threads / 2) : 4;
|
return n_threads > 0 ? (n_threads <= 4 ? n_threads : n_threads / 2) : 4;
|
||||||
|
@ -1749,7 +1734,8 @@ std::string gpt_params_get_system_info(const gpt_params & params) {
|
||||||
os << " (n_threads_batch = " << params.n_threads_batch << ")";
|
os << " (n_threads_batch = " << params.n_threads_batch << ")";
|
||||||
}
|
}
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
os << " / " << cpu_get_num_cores_win(false) << " | " << llama_print_system_info();
|
DWORD logicalProcessorCount = GetActiveProcessorCount(ALL_PROCESSOR_GROUPS);
|
||||||
|
os << " / " << logicalProcessorCount << " | " << llama_print_system_info();
|
||||||
#else
|
#else
|
||||||
os << " / " << std::thread::hardware_concurrency() << " | " << llama_print_system_info();
|
os << " / " << std::thread::hardware_concurrency() << " | " << llama_print_system_info();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -44,9 +44,7 @@ struct llama_control_vector_load_info;
|
||||||
//
|
//
|
||||||
// CPU utils
|
// CPU utils
|
||||||
//
|
//
|
||||||
#ifdef _WIN32
|
|
||||||
int32_t cpu_get_num_cores_win(bool print_physical_core_num);
|
|
||||||
#endif
|
|
||||||
int32_t cpu_get_num_physical_cores();
|
int32_t cpu_get_num_physical_cores();
|
||||||
int32_t cpu_get_num_math();
|
int32_t cpu_get_num_math();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue