Add support for getting cpu info on Windows for llama_bench
This commit is contained in:
parent
e09a800f9a
commit
32e7e0b2b7
1 changed files with 40 additions and 0 deletions
|
@ -27,6 +27,14 @@
|
|||
#include "ggml-cann.h"
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#ifndef NOMINMAX
|
||||
# define NOMINMAX
|
||||
#endif
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
// utils
|
||||
static uint64_t get_time_ns() {
|
||||
using clock = std::chrono::high_resolution_clock;
|
||||
|
@ -96,6 +104,38 @@ static std::string get_cpu_info() {
|
|||
}
|
||||
fclose(f);
|
||||
}
|
||||
#elif defined(_WIN32)
|
||||
HKEY hKey;
|
||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
|
||||
TEXT("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"),
|
||||
0,
|
||||
KEY_READ,
|
||||
&hKey) != ERROR_SUCCESS) {
|
||||
// fail to open registry key
|
||||
return "";
|
||||
}
|
||||
char cpu_brand[256];
|
||||
DWORD cpu_brand_size = sizeof(cpu_brand);
|
||||
if (RegQueryValueEx(hKey,
|
||||
TEXT("ProcessorNameString"),
|
||||
NULL,
|
||||
NULL,
|
||||
(LPBYTE)cpu_brand,
|
||||
&cpu_brand_size) != ERROR_SUCCESS) {
|
||||
RegCloseKey(hKey);
|
||||
// fail to read processor information
|
||||
return "";
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
|
||||
// ensure the string is null-terminated
|
||||
if (cpu_brand_size >= sizeof(cpu_brand)) {
|
||||
cpu_brand[sizeof(cpu_brand) - 1] = '\0';
|
||||
} else {
|
||||
cpu_brand[cpu_brand_size] = '\0';
|
||||
}
|
||||
|
||||
id = std::string(cpu_brand);
|
||||
#endif
|
||||
// TODO: other platforms
|
||||
return id;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue