ollama/llama/llama_darwin.go
jmorganca a483a4c4ed lint
2024-09-03 21:15:14 -04:00

25 lines
513 B
Go

package llama
// extern const char *ggml_metallib_start;
// extern const char *ggml_metallib_end;
import "C"
import (
_ "embed"
"strings"
"unsafe"
)
//go:embed ggml-common.h
var ggmlCommon string
//go:embed ggml-metal.metal
var ggmlMetal string
func init() {
metal := strings.ReplaceAll(ggmlMetal, `#include "ggml-common.h"`, ggmlCommon)
cMetal := C.CString(metal)
C.ggml_metallib_start = cMetal
C.ggml_metallib_end = (*C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(cMetal)) + uintptr(len(metal))))
}