#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;
}
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 (RegQueryValueExA(hKey,
+ TEXT("ProcessorNameString"),
+ NULL,
+ NULL,
+ (LPBYTE)cpu_brand,
+ &cpu_brand_size) == ERROR_SUCCESS) {
+ id.assign(cpu_brand, cpu_brand_size);
+ }
+ RegCloseKey(hKey);
#endif
// TODO: other platforms
return id;