shim_darwin.go 764 B

1234567891011121314151617181920212223242526272829303132
  1. package llm
  2. import (
  3. "embed"
  4. "fmt"
  5. "log"
  6. "os"
  7. "github.com/jmorganca/ollama/api"
  8. )
  9. //go:embed llama.cpp/gguf/ggml-metal.metal
  10. var libEmbed embed.FS
  11. func newDynamicShimExtServer(library, model string, adapters, projectors []string, numLayers int64, opts api.Options) (extServer, error) {
  12. // should never happen...
  13. return nil, fmt.Errorf("Dynamic library loading not supported on Mac")
  14. }
  15. func nativeInit(workdir string) error {
  16. _, err := extractDynamicLibs(workdir, "llama.cpp/gguf/ggml-metal.metal")
  17. if err != nil {
  18. if err == payloadMissing {
  19. // TODO perhaps consider this a hard failure on arm macs?
  20. log.Printf("ggml-meta.metal payload missing")
  21. return nil
  22. }
  23. return err
  24. }
  25. os.Setenv("GGML_METAL_PATH_RESOURCES", workdir)
  26. return nil
  27. }