ollama/gpu/cpu_common.go
Gered 47c356a6cd
Some checks failed
release / build-darwin (push) Has been cancelled
release / generate-windows-cpu (push) Has been cancelled
release / generate-windows-rocm (push) Has been cancelled
release / generate-windows-cuda (map[url:https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.89_win10.exe version:11]) (push) Has been cancelled
release / generate-windows-cuda (map[url:https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_551.61_windows.exe version:12]) (push) Has been cancelled
release / build-windows (push) Has been cancelled
release / build-linux-amd64 (push) Has been cancelled
release / build-linux-arm64 (push) Has been cancelled
release / build-container-image (linux) (push) Has been cancelled
release / build-container-image (linux-arm64) (push) Has been cancelled
release / merge (push) Has been cancelled
release / build-container-image-rocm (push) Has been cancelled
release / release (push) Has been cancelled
disable avx while still allowing gpu support
as per discussion for this issue and the most recent comment on how
to fix this issue, at least temporarily, here:

https://github.com/ollama/ollama/issues/2187#issuecomment-2262876198
2024-09-22 13:27:17 -04:00

39 lines
721 B
Go

package gpu
import (
"os"
"path/filepath"
"runtime"
"strings"
"golang.org/x/sys/cpu"
)
func GetCPUCapability() CPUCapability {
if cpu.X86.HasAVX2 {
return CPUCapabilityAVX2
}
if cpu.X86.HasAVX {
return CPUCapabilityAVX
}
// else LCD
//return CPUCapabilityNone
return CPUCapabilityAVX
}
func IsNUMA() bool {
if runtime.GOOS != "linux" {
// numa support in llama.cpp is linux only
return false
}
ids := map[string]interface{}{}
packageIds, _ := filepath.Glob("/sys/devices/system/cpu/cpu*/topology/physical_package_id")
for _, packageId := range packageIds {
id, err := os.ReadFile(packageId)
if err == nil {
ids[strings.TrimSpace(string(id))] = struct{}{}
}
}
return len(ids) > 1
}