mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2024-09-19 23:35:41 +00:00
Initial build variant auto detection
This commit is contained in:
parent
1e037f868d
commit
bdfdaedc80
@ -49,11 +49,24 @@ Dlhandle *get_implementation(std::ifstream& f, const std::string& buildVariant)
|
|||||||
return nullptr;
|
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) {
|
LLModel *LLModel::construct(const std::string &modelPath, std::string buildVariant) {
|
||||||
//TODO: Auto-detect
|
//TODO: Auto-detect
|
||||||
if (buildVariant == "auto") {
|
if (buildVariant == "auto") {
|
||||||
|
if (requires_avxonly()) {
|
||||||
|
buildVariant = "avxonly";
|
||||||
|
} else {
|
||||||
buildVariant = "default";
|
buildVariant = "default";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Read magic
|
// Read magic
|
||||||
std::ifstream f(modelPath, std::ios::binary);
|
std::ifstream f(modelPath, std::ios::binary);
|
||||||
if (!f) return nullptr;
|
if (!f) return nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user