diff --git a/src/configure b/src/configure index c4a1445efbd..ebd9e8f62c3 100755 --- a/src/configure +++ b/src/configure @@ -462,7 +462,8 @@ function configure_cuda { elif [ "`uname -m`" == "ppc64le" ]; then cat makefiles/cuda_64bit.mk >> kaldi.mk else - cat makefiles/cuda_32bit.mk >> kaldi.mk + echo "CUDA will not be used! CUDA is not supported with 32-bit builds." + exit 1; fi else diff --git a/src/makefiles/cuda_32bit.mk b/src/makefiles/cuda_32bit.mk deleted file mode 100644 index 9dcc965d7b6..00000000000 --- a/src/makefiles/cuda_32bit.mk +++ /dev/null @@ -1,15 +0,0 @@ -ifndef DOUBLE_PRECISION -$(error DOUBLE_PRECISION not defined.) -endif -ifndef CUDATKDIR -$(error CUDATKDIR not defined.) -endif - -CUDA_INCLUDE= -I$(CUDATKDIR)/include -I$(CUBROOT) -CUDA_FLAGS = -Xcompiler "-fPIC -pthread -isystem $(OPENFSTINC)" --verbose --machine 32 -DHAVE_CUDA \ - -ccbin $(CXX) -DKALDI_DOUBLEPRECISION=$(DOUBLE_PRECISION) \ - -std=c++11 -DCUDA_API_PER_THREAD_DEFAULT_STREAM - -CXXFLAGS += -DHAVE_CUDA -I$(CUDATKDIR)/include -CUDA_LDFLAGS += -L$(CUDATKDIR)/lib -Wl,-rpath,$(CUDATKDIR)/lib -CUDA_LDLIBS += -lcublas -lcusparse -lcudart -lcurand -lnvToolsExt #LDLIBS : The libs are loaded later than static libs in implicit rule diff --git a/src/makefiles/cuda_64bit.mk b/src/makefiles/cuda_64bit.mk index 72314d45622..dbe0b6d9416 100644 --- a/src/makefiles/cuda_64bit.mk +++ b/src/makefiles/cuda_64bit.mk @@ -5,11 +5,13 @@ ifndef CUDATKDIR $(error CUDATKDIR not defined.) endif +CXXFLAGS += -DHAVE_CUDA -I$(CUDATKDIR)/include -fPIC -pthread -isystem $(OPENFSTINC) -rdynamic --verbose + CUDA_INCLUDE= -I$(CUDATKDIR)/include -I$(CUBROOT) -CUDA_FLAGS = -Xcompiler "-fPIC -pthread -isystem $(OPENFSTINC)" --verbose --machine 64 -DHAVE_CUDA \ +CUDA_FLAGS = --machine 64 -DHAVE_CUDA \ -ccbin $(CXX) -DKALDI_DOUBLEPRECISION=$(DOUBLE_PRECISION) \ - -std=c++11 -DCUDA_API_PER_THREAD_DEFAULT_STREAM + -std=c++11 -DCUDA_API_PER_THREAD_DEFAULT_STREAM -lineinfo \ + -Xcompiler "$(CXXFLAGS)" -CXXFLAGS += -DHAVE_CUDA -I$(CUDATKDIR)/include CUDA_LDFLAGS += -L$(CUDATKDIR)/lib64 -Wl,-rpath,$(CUDATKDIR)/lib64 CUDA_LDLIBS += -lcublas -lcusparse -lcudart -lcurand -lnvToolsExt #LDLIBS : The libs are loaded later than static libs in implicit rule diff --git a/src/makefiles/default_rules.mk b/src/makefiles/default_rules.mk index ee0f3c2e90b..956e0eedc33 100644 --- a/src/makefiles/default_rules.mk +++ b/src/makefiles/default_rules.mk @@ -114,8 +114,30 @@ valgrind: .valgrind rm valgrind.out touch .valgrind + +#buid up dependency commands +CC_SRCS=$(wildcard *.cc) +#check if files exist to run dependency commands on +ifneq ($(CC_SRCS),) +CC_DEP_COMMAND=$(CXX) -M $(CXXFLAGS) $(CC_SRCS) +endif + +ifeq ($(CUDA), true) +CUDA_SRCS=$(wildcard *.cu) +#check if files exist to run dependency commands on +ifneq ($(CUDA_SRCS),) +NVCC_DEP_COMMAND = $(CUDATKDIR)/bin/nvcc -M $(CUDA_FLAGS) $(CUDA_INCLUDE) $(CUDA_SRCS) +endif +endif + depend: - -$(CXX) -M $(CXXFLAGS) *.cc > .depend.mk + rm -f .depend.mk +ifneq ($(CC_DEP_COMMAND),) + $(CC_DEP_COMMAND) >> .depend.mk +endif +ifneq ($(NVCC_DEP_COMMAND),) + $(NVCC_DEP_COMMAND) >> .depend.mk +endif # removing automatic making of "depend" as it's quite slow. #.depend.mk: depend