alonfaraj commited on
Commit
01bbf00
·
unverified ·
1 Parent(s): 400c46a

make : check nvcc version and set flag (#1115)

Browse files
Files changed (1) hide show
  1. Makefile +13 -1
Makefile CHANGED
@@ -12,6 +12,12 @@ ifndef UNAME_M
12
  UNAME_M := $(shell uname -m)
13
  endif
14
 
 
 
 
 
 
 
15
  CCV := $(shell $(CC) --version | head -n 1)
16
  CXXV := $(shell $(CXX) --version | head -n 1)
17
 
@@ -167,12 +173,18 @@ ifdef WHISPER_OPENBLAS
167
  endif
168
 
169
  ifdef WHISPER_CUBLAS
 
 
 
 
 
 
170
  CFLAGS += -DGGML_USE_CUBLAS -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
171
  CXXFLAGS += -DGGML_USE_CUBLAS -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
172
  LDFLAGS += -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L/usr/local/cuda/lib64 -L/opt/cuda/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib
173
  WHISPER_OBJ += ggml-cuda.o
174
  NVCC = nvcc
175
- NVCCFLAGS = --forward-unknown-to-host-compiler -arch=any
176
 
177
  ggml-cuda.o: ggml-cuda.cu ggml-cuda.h
178
  $(NVCC) $(NVCCFLAGS) $(CXXFLAGS) -Wno-pedantic -c $< -o $@
 
12
  UNAME_M := $(shell uname -m)
13
  endif
14
 
15
+ ifndef NVCC_VERSION
16
+ ifeq ($(call,$(shell which nvcc))$(.SHELLSTATUS),0)
17
+ NVCC_VERSION := $(shell nvcc --version | egrep -o "V[0-9]+.[0-9]+.[0-9]+" | cut -c2-)
18
+ endif
19
+ endif
20
+
21
  CCV := $(shell $(CC) --version | head -n 1)
22
  CXXV := $(shell $(CXX) --version | head -n 1)
23
 
 
173
  endif
174
 
175
  ifdef WHISPER_CUBLAS
176
+ ifeq ($(shell expr $(NVCC_VERSION) \>= 11.6), 1)
177
+ CUDA_ARCH_FLAG=native
178
+ else
179
+ CUDA_ARCH_FLAG=all
180
+ endif
181
+
182
  CFLAGS += -DGGML_USE_CUBLAS -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
183
  CXXFLAGS += -DGGML_USE_CUBLAS -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
184
  LDFLAGS += -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L/usr/local/cuda/lib64 -L/opt/cuda/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib
185
  WHISPER_OBJ += ggml-cuda.o
186
  NVCC = nvcc
187
+ NVCCFLAGS = --forward-unknown-to-host-compiler -arch=$(CUDA_ARCH_FLAG)
188
 
189
  ggml-cuda.o: ggml-cuda.cu ggml-cuda.h
190
  $(NVCC) $(NVCCFLAGS) $(CXXFLAGS) -Wno-pedantic -c $< -o $@