|
@@ -9,20 +9,16 @@ HIP_ARCHS_COMMON := gfx900 gfx940 gfx941 gfx942 gfx1010 gfx1012 gfx1030 gfx1100
|
|
|
HIP_ARCHS_LINUX := gfx906:xnack- gfx908:xnack- gfx90a:xnack+ gfx90a:xnack-
|
|
|
|
|
|
ifeq ($(OS),windows)
|
|
|
- GPU_LIB_DIR_WIN := $(shell cygpath -m -s "$(HIP_PATH)\bin")
|
|
|
- # If HIP_PATH has spaces, hipcc trips over them when subprocessing
|
|
|
- HIP_PATH := $(shell cygpath -m -s "$(HIP_PATH)\")
|
|
|
- CGO_EXTRA_LDFLAGS_WIN := -L$(shell cygpath -m -s "$(HIP_PATH)\lib")
|
|
|
- export HIP_PATH
|
|
|
- GPU_COMPILER_WIN := $(HIP_PATH)bin/hipcc.bin.exe
|
|
|
+ GPU_LIB_DIR_WIN := $(shell cygpath -m -s "$(HIP_PATH)/bin")
|
|
|
+ CGO_EXTRA_LDFLAGS_WIN := -L$(shell cygpath -m -s "$(HIP_PATH)/lib")
|
|
|
+ GPU_COMPILER_WIN := $(HIP_PATH)/bin/hipcc.bin.exe
|
|
|
GPU_COMPILER:=$(GPU_COMPILER_WIN)
|
|
|
else ifeq ($(OS),linux)
|
|
|
- HIP_PATH?=/opt/rocm
|
|
|
GPU_LIB_DIR_LINUX := $(HIP_PATH)/lib
|
|
|
GPU_COMPILER_LINUX := $(shell X=$$(which hipcc 2>/dev/null) && echo $$X)
|
|
|
GPU_COMPILER:=$(GPU_COMPILER_LINUX)
|
|
|
- ROCM_TRANSITIVE_LIBS_INITIAL = $(sort $(shell ldd $(ROCM_LIBS) | grep "=>" | cut -f2 -d= | cut -f2 -d' ' | grep -e rocm -e amdgpu -e libtinfo -e libnuma -e libelf))
|
|
|
- ROCM_TRANSITIVE_LIBS = $(sort $(shell readlink -f $(ROCM_TRANSITIVE_LIBS_INITIAL)) $(ROCM_TRANSITIVE_LIBS_INITIAL))
|
|
|
+ ROCM_TRANSITIVE_LIBS_INITIAL = $(sort $(shell ldd $(GPU_LIBS) | grep "=>" | cut -f2 -d= | cut -f2 -d' ' | grep -e rocm -e amdgpu -e libtinfo -e libnuma -e libelf))
|
|
|
+ GPU_TRANSITIVE_LIBS = $(sort $(shell readlink -f $(ROCM_TRANSITIVE_LIBS_INITIAL)) $(ROCM_TRANSITIVE_LIBS_INITIAL))
|
|
|
endif
|
|
|
|
|
|
# TODO future multi-variant support for ROCm
|
|
@@ -42,13 +38,13 @@ GPU_COMPILER_CFLAGS_LINUX = $(CFLAGS) -fPIC -D_GNU_SOURCE
|
|
|
GPU_COMPILER_CXXFLAGS_WIN = $(CXXFLAGS) -D_WIN32_WINNT=0x602
|
|
|
GPU_COMPILER_CXXFLAGS_LINUX = $(CXXFLAGS) -fPIC -D_GNU_SOURCE
|
|
|
|
|
|
-ROCM_LIBS = $(wildcard $(addsuffix .$(SHARED_EXT),$(addprefix $(GPU_LIB_DIR)/$(SHARED_PREFIX),$(GPU_RUNNER_LIBS_SHORT))))
|
|
|
+GPU_LIBS = $(wildcard $(addsuffix .$(SHARED_EXT),$(addprefix $(GPU_LIB_DIR)/$(SHARED_PREFIX),$(GPU_RUNNER_LIBS_SHORT))))
|
|
|
ifeq ($(OS),windows)
|
|
|
ROCM_DIST_DEPS_DIR = $(abspath $(SRC_DIR)/../dist/$(OS)-$(ARCH))/lib/ollama
|
|
|
else ifeq ($(OS),linux)
|
|
|
ROCM_DIST_DEPS_DIR = $(abspath $(SRC_DIR)/../dist/$(OS)-$(ARCH)-rocm)/lib/ollama
|
|
|
endif
|
|
|
-ROCM_DIST_DEPS_LIBS= $(sort $(addprefix $(ROCM_DIST_DEPS_DIR)/,$(notdir $(ROCM_LIBS)) $(notdir $(ROCM_TRANSITIVE_LIBS))))
|
|
|
+GPU_DIST_DEPS_LIBS= $(sort $(addprefix $(ROCM_DIST_DEPS_DIR)/,$(notdir $(GPU_LIBS)) $(notdir $(GPU_TRANSITIVE_LIBS))))
|
|
|
ROCBLAS_DIST_DEP_MANIFEST = $(ROCM_DIST_DEPS_DIR)/rocblas/library/TensileManifest.txt
|
|
|
|
|
|
ifeq ($(OS),linux)
|
|
@@ -94,12 +90,9 @@ GPU_COMPILER_CUFLAGS = \
|
|
|
include make/gpu.make
|
|
|
|
|
|
# Adjust the rules from gpu.make to handle the ROCm dependencies properly
|
|
|
-$(RUNNERS_DIST_DIR)/$(GPU_RUNNER_NAME)/ollama_llama_server$(EXE_EXT): $(ROCBLAS_DIST_DEP_MANIFEST) $(ROCM_DIST_DEPS_LIBS)
|
|
|
+$(RUNNERS_DIST_DIR)/$(GPU_RUNNER_NAME)/ollama_llama_server$(EXE_EXT): $(ROCBLAS_DIST_DEP_MANIFEST)
|
|
|
$(ROCBLAS_DIST_DEP_MANIFEST):
|
|
|
@-mkdir -p $(dir $@)
|
|
|
@echo "Copying rocblas library..."
|
|
|
cd $(GPU_LIB_DIR)/rocblas/library/ && tar cf - . | (cd $(dir $@) && tar xf - )
|
|
|
@echo "rocblas library copy complete"
|
|
|
-$(ROCM_DIST_DEPS_LIBS):
|
|
|
- @-mkdir -p $(dir $@)
|
|
|
- $(CP) $(dir $(filter %$(notdir $@),$(ROCM_LIBS) $(ROCM_TRANSITIVE_LIBS)))/$(notdir $@) $(dir $@)
|