Initial build variant auto detection

This commit is contained in:
niansa 2023-05-25 09:18:30 +02:00
parent 1e037f868d
commit bdfdaedc80

View File

@ -49,11 +49,24 @@ Dlhandle *get_implementation(std::ifstream& f, const std::string& buildVariant)
return nullptr;
}
static
bool requires_avxonly() {
#ifdef __x86_64__
return !__builtin_cpu_supports("avx2") && !__builtin_cpu_supports("fma");
#else
return false; // Don't know how to handle ARM
#endif
}
LLModel *LLModel::construct(const std::string &modelPath, std::string buildVariant) {
//TODO: Auto-detect
if (buildVariant == "auto") {
if (requires_avxonly()) {
buildVariant = "avxonly";
} else {
buildVariant = "default";
}
}
// Read magic
std::ifstream f(modelPath, std::ios::binary);
if (!f) return nullptr;