Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marian-nmt/intgemm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intgemm/intgemm.cc')
-rw-r--r--intgemm/intgemm.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/intgemm/intgemm.cc b/intgemm/intgemm.cc
index 7ccd21b..d6c26b9 100644
--- a/intgemm/intgemm.cc
+++ b/intgemm/intgemm.cc
@@ -87,16 +87,17 @@ CPUType RealCPUID() {
#endif
}
+#ifdef INTGEMM_CPUID_ENVIRONMENT
CPUType EnvironmentCPUID() {
-#if defined(_MSC_VER)
+# if defined(_MSC_VER)
char env_override[11];
size_t len = 0;
if (getenv_s(&len, env_override, sizeof(env_override), "INTGEMM_CPUID")) return CPUType::AVX512VNNI;
if (!len) return CPUType::AVX512VNNI;
-#else
+# else
const char *env_override = getenv("INTGEMM_CPUID");
if (!env_override) return CPUType::AVX512VNNI; /* This will be capped to actual ID */
-#endif
+# endif
if (!strcmp(env_override, "AVX512VNNI")) return CPUType::AVX512VNNI;
if (!strcmp(env_override, "AVX512BW")) return CPUType::AVX512BW;
if (!strcmp(env_override, "AVX2")) return CPUType::AVX2;
@@ -105,11 +106,17 @@ CPUType EnvironmentCPUID() {
fprintf(stderr, "Ignoring unrecognized INTGEMM_CPUID %s\n", env_override);
return CPUType::AVX512VNNI;
}
+#endif
} // namespace
CPUType GetCPUID() {
- static const CPUType kLocalCPU = std::min(RealCPUID(), EnvironmentCPUID());
+ static const CPUType kLocalCPU =
+#ifdef INTGEMM_CPUID_ENVIRONMENT
+ std::min(RealCPUID(), EnvironmentCPUID());
+#else
+ RealCPUID();
+#endif
return kLocalCPU;
}