Carry ggml-metal.metal as payload

This commit is contained in:
Daniel Hiltgen
2023-12-18 18:32:04 -08:00
parent 5646826a79
commit 54dbfa4c4a
3 changed files with 65 additions and 47 deletions

View File

@@ -1,18 +1,32 @@
package llm
import (
"embed"
"fmt"
"log"
"os"
"github.com/jmorganca/ollama/api"
)
// no-op stubs for mac
//go:embed llama.cpp/gguf/build/*/bin/ggml-metal.metal
var libEmbed embed.FS
func newRocmShimExtServer(model string, adapters, projectors []string, numLayers int64, opts api.Options) (extServer, error) {
// should never happen...
return nil, fmt.Errorf("ROCM GPUs not supported on Mac")
}
func nativeInit(workDir string) error {
func nativeInit(workdir string) error {
err := extractLib(workdir, "llama.cpp/gguf/build/*/bin/ggml-metal.metal")
if err != nil {
if err == payloadMissing {
// TODO perhaps consider this a hard failure on arm macs?
log.Printf("ggml-meta.metal payload missing")
return nil
}
return err
}
os.Setenv("GGML_METAL_PATH_RESOURCES", workdir)
return nil
}