cuda.make 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # Common definitions for all cuda versions
  2. ifndef GPU_RUNNER_VARIANT
  3. dummy:
  4. $(error This makefile is not meant to build directly, but instead included in other Makefiles that set required variables)
  5. endif
  6. GPU_RUNNER_NAME := cuda$(GPU_RUNNER_VARIANT)
  7. GPU_RUNNER_GO_TAGS := cuda cuda$(GPU_RUNNER_VARIANT)
  8. GPU_RUNNER_DRIVER_LIB_LINK := -lcuda
  9. GPU_RUNNER_LIBS_SHORT := cublas cudart cublasLt
  10. GPU_LIB_DIR_WIN = $(GPU_PATH_ROOT_WIN)/bin
  11. GPU_LIB_DIR_LINUX = $(GPU_PATH_ROOT_LINUX)/lib64
  12. CGO_EXTRA_LDFLAGS_WIN = -L"$(GPU_PATH_ROOT_WIN)/lib/x64"
  13. GPU_COMPILER_WIN = $(GPU_PATH_ROOT_WIN)/bin/nvcc
  14. GPU_COMPILER_LINUX = $(GPU_PATH_ROOT_LINUX)/bin/nvcc
  15. GPU_COMPILER_CFLAGS_WIN = $(CFLAGS) -D_WIN32_WINNT=0x602
  16. GPU_COMPILER_CFLAGS_LINUX = $(CFLAGS) -Xcompiler -fPIC -D_GNU_SOURCE
  17. GPU_COMPILER_CXXFLAGS_WIN = $(CXXFLAGS) -D_WIN32_WINNT=0x602
  18. GPU_COMPILER_CXXFLAGS_LINUX = $(CXXFLAGS) -Xcompiler -fPIC -D_GNU_SOURCE
  19. GPU_LIBS = $(sort $(wildcard $(addsuffix *.$(SHARED_EXT)*,$(addprefix $(GPU_LIB_DIR)/$(SHARED_PREFIX),$(GPU_RUNNER_LIBS_SHORT)))))
  20. GPU_DIST_DEPS_LIBS= $(sort $(addprefix $(DIST_GPU_RUNNER_DEPS_DIR)/,$(notdir $(GPU_LIBS))))
  21. ifeq ($(OS),linux)
  22. CUDA_PATH?=/usr/local/cuda
  23. GPU_COMPILER_FPIC = -fPIC -Wno-unused-function -std=c++11
  24. endif
  25. GPU_RUNNER_ARCH_FLAGS := $(foreach arch,$(subst ;,$(space),$(CUDA_ARCHITECTURES)),--generate-code=arch=compute_$(arch)$(comma)code=[compute_$(arch)$(comma)sm_$(arch)]) \
  26. -DGGML_CUDA_USE_GRAPHS=1
  27. GPU_COMPILER_CUFLAGS = \
  28. $(GPU_COMPILER_FPIC) \
  29. -Xcompiler "$(addprefix $(CPU_FLAG_PREFIX),$(_OS_GPU_RUNNER_CPU_FLAGS))" \
  30. -t2 \
  31. -DGGML_CUDA_DMMV_X=32 \
  32. -DGGML_CUDA_MMV_Y=1 \
  33. -DGGML_CUDA_PEER_MAX_BATCH_SIZE=128 \
  34. -DGGML_USE_CUDA=1 \
  35. -DGGML_SHARED=1 \
  36. -DGGML_BUILD=1 \
  37. -DGGML_USE_LLAMAFILE \
  38. -DK_QUANTS_PER_ITERATION=2 \
  39. -DNDEBUG \
  40. -D_GNU_SOURCE \
  41. -D_XOPEN_SOURCE=600 \
  42. -Wno-deprecated-gpu-targets \
  43. --forward-unknown-to-host-compiler \
  44. -use_fast_math \
  45. -I. \
  46. -O3