diff --git a/Makefile b/Makefile index 764e6a37..22607216 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ GOVET=$(GOCMD) vet BINARY_NAME=local-ai # llama.cpp versions -GOLLAMA_VERSION?=d9f6176409de0a2b5ce798de502545c6721e346e +GOLLAMA_VERSION?=d84f03c81a5e336c0146ec9c2ef1c96cb4fe7f09 GOLLAMA_STABLE_VERSION?=50cee7712066d9e38306eccadcfbb44ea87df4b7 @@ -38,6 +38,7 @@ STABLEDIFFUSION_VERSION?=d89260f598afb809279bc72aa0107b4292587632 GOGGLLM_VERSION?=862477d16eefb0805261c19c9b0d053e3b2b684b export BUILD_TYPE?= +export STABLE_BUILD_TYPE?=$(BUILD_TYPE) export CMAKE_ARGS?= CGO_LDFLAGS?= CUDA_LIBPATH?=/usr/local/cuda/lib64/ @@ -82,6 +83,18 @@ ifeq ($(BUILD_TYPE),cublas) export LLAMA_CUBLAS=1 endif +ifeq ($(BUILD_TYPE),hipblas) + ROCM_HOME ?= /opt/rocm + export CXX=$(ROCM_HOME)/llvm/bin/clang++ + export CC=$(ROCM_HOME)/llvm/bin/clang + # Llama-stable has no hipblas support, so override it here. + export STABLE_BUILD_TYPE= + GPU_TARGETS ?= gfx900,gfx90a,gfx1030,gfx1031,gfx1100 + AMDGPU_TARGETS ?= "$(GPU_TARGETS)" + CMAKE_ARGS+=-DLLAMA_HIPBLAS=ON -DAMDGPU_TARGETS="$(AMDGPU_TARGETS)" -DGPU_TARGETS="$(GPU_TARGETS)" + CGO_LDFLAGS += -O3 --rtlib=compiler-rt -unwindlib=libgcc -lhipblas -lrocblas --hip-link +endif + ifeq ($(BUILD_TYPE),metal) CGO_LDFLAGS+=-framework Foundation -framework Metal -framework MetalKit -framework MetalPerformanceShaders export LLAMA_METAL=1 @@ -208,7 +221,7 @@ go-llama/libbinding.a: go-llama $(MAKE) -C go-llama BUILD_TYPE=$(BUILD_TYPE) libbinding.a go-llama-stable/libbinding.a: go-llama-stable - $(MAKE) -C go-llama-stable BUILD_TYPE=$(BUILD_TYPE) libbinding.a + $(MAKE) -C go-llama-stable BUILD_TYPE=$(STABLE_BUILD_TYPE) libbinding.a go-piper/libpiper_binding.a: $(MAKE) -C go-piper libpiper_binding.a example/main diff --git a/go.mod b/go.mod index e0beacac..10f460a2 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/go-skynet/bloomz.cpp v0.0.0-20230529155654-1834e77b83fa github.com/go-skynet/go-bert.cpp v0.0.0-20230716133540-6abe312cded1 github.com/go-skynet/go-ggml-transformers.cpp v0.0.0-20230714203132-ffb09d7dd71e - github.com/go-skynet/go-llama.cpp v0.0.0-20230916071220-b471eb7d8c93 + github.com/go-skynet/go-llama.cpp v0.0.0-20230923221031-d84f03c81a5e github.com/gofiber/fiber/v2 v2.49.2 github.com/google/uuid v1.3.1 github.com/hashicorp/go-multierror v1.1.1 diff --git a/go.sum b/go.sum index 76108608..d37abe64 100644 --- a/go.sum +++ b/go.sum @@ -41,6 +41,8 @@ github.com/go-skynet/go-ggml-transformers.cpp v0.0.0-20230714203132-ffb09d7dd71e github.com/go-skynet/go-ggml-transformers.cpp v0.0.0-20230714203132-ffb09d7dd71e/go.mod h1:31j1odgFXP8hDSUVfH0zErKI5aYVP18ddYnPkwCso2A= github.com/go-skynet/go-llama.cpp v0.0.0-20230916071220-b471eb7d8c93 h1:aJQn0Lb5TQtSXw5hK+kAUuaUjsXwDXyEItzI9U+GiOA= github.com/go-skynet/go-llama.cpp v0.0.0-20230916071220-b471eb7d8c93/go.mod h1:VGPpMv2UMxRgBiDIFrs7AGMzrX884K0Vy8tqYu3if/Q= +github.com/go-skynet/go-llama.cpp v0.0.0-20230923221031-d84f03c81a5e h1:ubROx+GEi6onpAeQSi8L5n7lHzyMTZs7vq/m7wiUn7Y= +github.com/go-skynet/go-llama.cpp v0.0.0-20230923221031-d84f03c81a5e/go.mod h1:uejmv9IhRLb9FMhksGXgjAhvJpFnoTOX4+Dr9Lb0HSg= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=