The build tags rocm or cuda must be specified to both go generate and go build. ROCm builds should have both ROCM_PATH set (and the ROCM SDK present) as well as CLBlast installed (for GGML) and CLBlast_DIR set in the environment to the CLBlast cmake directory (likely /usr/lib/cmake/CLBlast). Build tags are also used to switch VRAM detection between cuda and rocm implementations, using added "accelerator_foo.go" files which contain architecture specific functions and variables. accelerator_none is used when no tags are set, and a helper function addRunner will ignore it if it is the chosen accelerator. Fix go generate commands, thanks @deadmeu for testing.
22 lines
429 B
Go
22 lines
429 B
Go
//go:build !rocm && !cuda
|
|
|
|
package llm
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
var (
|
|
errNoAccel = errors.New("no accelerator support in this binary")
|
|
)
|
|
|
|
// acceleratedRunner returns the runner for this accelerator given the provided buildPath string.
|
|
func acceleratedRunner(buildPath string) []ModelRunner {
|
|
return make([]ModelRunner, 0, 1)
|
|
}
|
|
|
|
// CheckVRAM is a stub with no accelerator.
|
|
func CheckVRAM() (int64, error) {
|
|
return 0, errNoGPU
|
|
}
|