@@ -216,35 +216,48 @@ ifdef WHISPER_OPENBLAS
216216endif
217217
218218ifdef WHISPER_CUBLAS
219+ # WHISPER_CUBLAS is deprecated and will be removed in the future
220+ WHISPER_CUDA := 1
221+ endif
222+
223+ ifdef WHISPER_CUDA
219224 ifeq ($(shell expr $(NVCC_VERSION) \>= 11.6), 1)
220225 CUDA_ARCH_FLAG ?= native
221226 else
222227 CUDA_ARCH_FLAG ?= all
223228 endif
224229
225- CFLAGS += -DGGML_USE_CUBLAS -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
226- CXXFLAGS += -DGGML_USE_CUBLAS -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
230+ CFLAGS += -DGGML_USE_CUDA -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
231+ CXXFLAGS += -DGGML_USE_CUDA -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include
227232 LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L/usr/local/cuda/lib64 -L/opt/cuda/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L/usr/lib/wsl/lib
228233 WHISPER_OBJ += ggml-cuda.o
234+ WHISPER_OBJ += $(patsubst %.cu,%.o,$(wildcard ggml-cuda/*.cu))
229235 NVCC = nvcc
230236 NVCCFLAGS = --forward-unknown-to-host-compiler -arch=$(CUDA_ARCH_FLAG)
231237
232- ggml-cuda.o : ggml-cuda.cu ggml-cuda.h
238+ ggml-cuda/% .o : ggml-cuda/% .cu ggml-cuda/% .cuh ggml.h ggml-common.h ggml-cuda/common.cuh
239+ $(NVCC ) $(NVCCFLAGS ) $(CXXFLAGS ) -c $< -o $@
240+
241+ ggml-cuda.o : ggml-cuda.cu ggml-cuda.h ggml.h ggml-backend.h ggml-backend-impl.h ggml-common.h $(wildcard ggml-cuda/* .cuh)
233242 $(NVCC ) $(NVCCFLAGS ) $(CXXFLAGS ) -Wno-pedantic -c $< -o $@
234243endif
235244
236245ifdef WHISPER_HIPBLAS
237246 ROCM_PATH ?= /opt/rocm
238247 HIPCC ?= $(ROCM_PATH)/bin/hipcc
239248 GPU_TARGETS ?= $(shell $(ROCM_PATH)/llvm/bin/amdgpu-arch)
240- CFLAGS += -DGGML_USE_HIPBLAS -DGGML_USE_CUBLAS
241- CXXFLAGS += -DGGML_USE_HIPBLAS -DGGML_USE_CUBLAS
249+ CFLAGS += -DGGML_USE_HIPBLAS -DGGML_USE_CUDA
250+ CXXFLAGS += -DGGML_USE_HIPBLAS -DGGML_USE_CUDA
242251 LDFLAGS += -L$(ROCM_PATH)/lib -Wl,-rpath=$(ROCM_PATH)/lib
243252 LDFLAGS += -lhipblas -lamdhip64 -lrocblas
244253 HIPFLAGS += $(addprefix --offload-arch=,$(GPU_TARGETS))
245254 WHISPER_OBJ += ggml-cuda.o
255+ WHISPER_OBJ += $(patsubst %.cu,%.o,$(wildcard ggml-cuda/*.cu))
256+
257+ ggml-cuda/% .o : ggml-cuda/% .cu ggml-cuda/% .cuh ggml.h ggml-common.h ggml-cuda/common.cuh
258+ $(HIPCC ) $(CXXFLAGS ) $(HIPFLAGS ) -x hip -c -o $@ $<
246259
247- ggml-cuda.o : ggml-cuda.cu ggml-cuda.h
260+ ggml-cuda.o : ggml-cuda.cu ggml-cuda.h ggml.h ggml-backend.h ggml-backend-impl.h ggml-common.h $( wildcard ggml-cuda/ * .cuh)
248261 $(HIPCC ) $(CXXFLAGS ) $(HIPFLAGS ) -x hip -c -o $@ $<
249262endif
250263
@@ -309,6 +322,13 @@ $(info I CC: $(CCV))
309322$(info I CXX : $(CXXV ) )
310323$(info )
311324
325+ ifdef WHISPER_CUBLAS
326+ $(info !!!!)
327+ $(info WHISPER_CUBLAS is deprecated and will be removed in the future. Use WHISPER_CUDA instead.)
328+ $(info !!!!)
329+ $(info )
330+ endif
331+
312332#
313333# Build library
314334#
@@ -410,8 +430,8 @@ lsp: examples/lsp/lsp.cpp $(SRC_COMMON) $(SRC_COMMON_SDL) $(WHISPER_OBJ)
410430talk : examples/talk/talk.cpp examples/talk/gpt-2.cpp $(SRC_COMMON ) $(SRC_COMMON_SDL ) $(WHISPER_OBJ )
411431 $(CXX ) $(CXXFLAGS ) examples/talk/talk.cpp examples/talk/gpt-2.cpp $(SRC_COMMON ) $(SRC_COMMON_SDL ) $(WHISPER_OBJ ) -o talk $(CC_SDL ) $(LDFLAGS )
412432
413- talk-llama : examples/talk-llama/talk-llama.cpp examples/talk-llama/llama.cpp examples/talk-llama/unicode.cpp $(SRC_COMMON ) $(SRC_COMMON_SDL ) $(WHISPER_OBJ )
414- $(CXX ) $(CXXFLAGS ) examples/talk-llama/talk-llama.cpp examples/talk-llama/llama.cpp examples/talk-llama/unicode.cpp $(SRC_COMMON ) $(SRC_COMMON_SDL ) $(WHISPER_OBJ ) -o talk-llama $(CC_SDL ) $(LDFLAGS )
433+ talk-llama : examples/talk-llama/talk-llama.cpp examples/talk-llama/llama.cpp examples/talk-llama/unicode.cpp examples/talk-llama/unicode-data.cpp $(SRC_COMMON ) $(SRC_COMMON_SDL ) $(WHISPER_OBJ )
434+ $(CXX ) $(CXXFLAGS ) examples/talk-llama/talk-llama.cpp examples/talk-llama/llama.cpp examples/talk-llama/unicode.cpp examples/talk-llama/unicode-data.cpp $(SRC_COMMON ) $(SRC_COMMON_SDL ) $(WHISPER_OBJ ) -o talk-llama $(CC_SDL ) $(LDFLAGS )
415435
416436#
417437# Audio samples
0 commit comments