shim_darwin.go 764 Bytes
Newer Older
1
2
3
package llm

import (
4
	"embed"
5
	"fmt"
6
7
	"log"
	"os"
8
9
10
11

	"github.com/jmorganca/ollama/api"
)

Daniel Hiltgen's avatar
Daniel Hiltgen committed
12
//go:embed llama.cpp/gguf/ggml-metal.metal
13
var libEmbed embed.FS
14

15
func newDynamicShimExtServer(library, model string, adapters, projectors []string, numLayers int64, opts api.Options) (extServer, error) {
16
	// should never happen...
17
	return nil, fmt.Errorf("Dynamic library loading not supported on Mac")
18
19
}

20
func nativeInit(workdir string) error {
21
	_, err := extractDynamicLibs(workdir, "llama.cpp/gguf/ggml-metal.metal")
22
23
24
25
26
27
28
29
30
	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)
31
32
	return nil
}