Skip to content

Commit 779c920

Browse files
committed
Add GGML_MUSA in Makefile
Signed-off-by: Xiaodong Ye <[email protected]>
1 parent cb2c688 commit 779c920

File tree

1 file changed

+46
-9
lines changed

1 file changed

+46
-9
lines changed

Makefile

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -526,10 +526,21 @@ ifndef GGML_NO_ACCELERATE
526526
endif
527527
endif # GGML_NO_ACCELERATE
528528

529+
ifdef GGML_MUSA
530+
CC := clang
531+
CXX := clang++
532+
GGML_CUDA := 1
533+
MK_CPPFLAGS += -DGGML_USE_MUSA
534+
endif
535+
529536
ifndef GGML_NO_OPENMP
530537
MK_CPPFLAGS += -DGGML_USE_OPENMP
531538
MK_CFLAGS += -fopenmp
532539
MK_CXXFLAGS += -fopenmp
540+
ifdef GGML_MUSA
541+
MK_CPPFLAGS += -I/usr/lib/llvm-10/include/openmp
542+
MK_LDFLAGS += -L/usr/lib/llvm-10/lib
543+
endif # GGML_MUSA
533544
endif # GGML_NO_OPENMP
534545

535546
ifdef GGML_OPENBLAS
@@ -574,15 +585,27 @@ else
574585
endif # GGML_CUDA_FA_ALL_QUANTS
575586

576587
ifdef GGML_CUDA
577-
ifneq ('', '$(wildcard /opt/cuda)')
578-
CUDA_PATH ?= /opt/cuda
588+
ifdef GGML_MUSA
589+
ifneq ('', '$(wildcard /opt/musa)')
590+
CUDA_PATH ?= /opt/musa
591+
else
592+
CUDA_PATH ?= /usr/local/musa
593+
endif
594+
595+
MK_CPPFLAGS += -DGGML_USE_CUDA -I$(CUDA_PATH)/include
596+
MK_LDFLAGS += -lmusa -lmublas -lmusart -lpthread -ldl -lrt -L$(CUDA_PATH)/lib -L/usr/lib64
597+
MK_NVCCFLAGS += -x musa -mtgpu --cuda-gpu-arch=mp_22
579598
else
580-
CUDA_PATH ?= /usr/local/cuda
581-
endif
599+
ifneq ('', '$(wildcard /opt/cuda)')
600+
CUDA_PATH ?= /opt/cuda
601+
else
602+
CUDA_PATH ?= /usr/local/cuda
603+
endif
582604

583-
MK_CPPFLAGS += -DGGML_USE_CUDA -I$(CUDA_PATH)/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include -DGGML_CUDA_USE_GRAPHS
584-
MK_LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L$(CUDA_PATH)/lib64 -L/usr/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L$(CUDA_PATH)/lib64/stubs -L/usr/lib/wsl/lib
585-
MK_NVCCFLAGS += -use_fast_math
605+
MK_CPPFLAGS += -DGGML_USE_CUDA -I$(CUDA_PATH)/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include -DGGML_CUDA_USE_GRAPHS
606+
MK_LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L$(CUDA_PATH)/lib64 -L/usr/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L$(CUDA_PATH)/lib64/stubs -L/usr/lib/wsl/lib
607+
MK_NVCCFLAGS += -use_fast_math
608+
endif # GGML_MUSA
586609

587610
OBJ_GGML += ggml/src/ggml-cuda.o
588611
OBJ_GGML += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu))
@@ -592,9 +615,11 @@ ifdef LLAMA_FATAL_WARNINGS
592615
MK_NVCCFLAGS += -Werror all-warnings
593616
endif # LLAMA_FATAL_WARNINGS
594617

618+
ifndef GGML_MUSA
595619
ifndef JETSON_EOL_MODULE_DETECT
596620
MK_NVCCFLAGS += --forward-unknown-to-host-compiler
597621
endif # JETSON_EOL_MODULE_DETECT
622+
endif # GGML_MUSA
598623

599624
ifdef LLAMA_DEBUG
600625
MK_NVCCFLAGS += -lineinfo
@@ -607,8 +632,12 @@ endif # GGML_CUDA_DEBUG
607632
ifdef GGML_CUDA_NVCC
608633
NVCC = $(CCACHE) $(GGML_CUDA_NVCC)
609634
else
610-
NVCC = $(CCACHE) nvcc
611-
endif #GGML_CUDA_NVCC
635+
ifdef GGML_MUSA
636+
NVCC = $(CCACHE) mcc
637+
else
638+
NVCC = $(CCACHE) nvcc
639+
endif # GGML_MUSA
640+
endif # GGML_CUDA_NVCC
612641

613642
ifdef CUDA_DOCKER_ARCH
614643
MK_NVCCFLAGS += -Wno-deprecated-gpu-targets -arch=$(CUDA_DOCKER_ARCH)
@@ -679,9 +708,15 @@ define NVCC_COMPILE
679708
$(NVCC) -I. -Icommon -D_XOPEN_SOURCE=600 -D_GNU_SOURCE -DNDEBUG -DGGML_USE_CUDA -I/usr/local/cuda/include -I/opt/cuda/include -I/usr/local/cuda/targets/aarch64-linux/include -std=c++11 -O3 $(NVCCFLAGS) $(CPPFLAGS) -Xcompiler "$(CUDA_CXXFLAGS)" -c $< -o $@
680709
endef # NVCC_COMPILE
681710
else
711+
ifdef GGML_MUSA
712+
define NVCC_COMPILE
713+
$(NVCC) $(NVCCFLAGS) $(CPPFLAGS) -c $< -o $@
714+
endef # NVCC_COMPILE
715+
else
682716
define NVCC_COMPILE
683717
$(NVCC) $(NVCCFLAGS) $(CPPFLAGS) -Xcompiler "$(CUDA_CXXFLAGS)" -c $< -o $@
684718
endef # NVCC_COMPILE
719+
endif # GGML_MUSA
685720
endif # JETSON_EOL_MODULE_DETECT
686721

687722
ggml/src/ggml-cuda/%.o: \
@@ -907,6 +942,7 @@ $(info I CXX: $(shell $(CXX) --version | head -n 1))
907942
ifdef GGML_CUDA
908943
$(info I NVCC: $(shell $(NVCC) --version | tail -n 1))
909944
CUDA_VERSION := $(shell $(NVCC) --version | grep -oP 'release (\K[0-9]+\.[0-9])')
945+
ifndef GGML_MUSA
910946
ifeq ($(shell awk -v "v=$(CUDA_VERSION)" 'BEGIN { print (v < 11.7) }'),1)
911947

912948
ifndef CUDA_DOCKER_ARCH
@@ -916,6 +952,7 @@ endif # CUDA_POWER_ARCH
916952
endif # CUDA_DOCKER_ARCH
917953

918954
endif # eq ($(shell echo "$(CUDA_VERSION) < 11.7" | bc),1)
955+
endif # GGML_MUSA
919956
endif # GGML_CUDA
920957
$(info )
921958

0 commit comments

Comments
 (0)