考虑到rodinia套装提供的makefile,我尝试用cuda 5.5在我的电脑上运行Rodinia。在公共配置文件中,我将目录位置从/ usr / local / cuda /更改为/ usr / local / cuda / cuda并保持一切不变。我的nvcc工作正常。但是,当我输入make时,我收到了错误
/ usr / local / cuda / cuda / bin / nvcc -I / usr / local / cuda / cuda / include -O2 -c backprop_cuda.cu backprop_cuda.cu:12:35:错误:backprop_cuda_kernel.cu:没有这样的文件或目录
虽然目录中有一个名为backprop_cuda_kernel.cu
的文件backprop.c backprop.h facetrain.o Makefile
backprop_cuda.cu backprop.o imagenet.c Makefile_nvidia
backprop_cuda_kernel.cu facetrain.c imagenet.o run
make文件是:
include ../../common/make.config
CC = gcc
CC_FLAGS = -g -O2
NVCC = $(CUDA_DIR)/bin/nvcc
NVCC_FLAGS = -I$(CUDA_DIR)/include
ifeq ($(dbg),1)
NVCC_FLAGS += -g -O0
else
NVCC_FLAGS += -O2
endif
ifeq ($(emu),1)
NVCC_FLAGS += -deviceemu
endif
backprop: backprop.o facetrain.o imagenet.o backprop_cuda.o
$(CC) $ (CC_FLAGS) backprop.o facetrain.o imagenet.o backprop_cuda.o -o backprop -
L$(CUDA_LIB_DIT) -lcuda -lcudart -lm
%.o: %.[ch]
$(CC) $(CC_FLAGS) $< -c
facetrain.o: facetrain.c backprop.h
$(CC) $(CC_FLAGS) facetrain.c -c
backprop.o: backprop.c backprop.h
$(CC) $(CC_FLAGS) backprop.c -c
backprop_cuda.o:backprop_cuda.cu backprop.h $(NVCC) $(NVCC_FLAGS) -c backprop_cuda.cu
imagenet.o: imagenet.c backprop.h $(CC) $(CC_FLAGS) imagenet.c -c
clean: rm -f *.o *~ backprop backprop_cuda.linkinfo
抱歉,我不能把它放在代码格式中,网站一直告诉我,我的缩进是错误的
提前谢谢你。
答案 0 :(得分:1)
我对nvcc等了解不多,但是这个错误:
backprop_cuda.cu:12:35: error: backprop_cuda_kernel.cu: No such file or directory
表示在backprop_cuda.cu
的第12行,您包含一个名为backprop_cude_kernel.cu
的文件。你说这个文件存在于你当前的目录中。但是,您为nvcc
提供的编译行不会将当前目录列为搜索包含文件的位置。
如果默认情况下nvcc
没有搜索本地目录,那么您必须在-I$(CURDIR)
行添加nvcc
之类的内容才能让它看到那里。
答案 1 :(得分:0)
只需用 #include&#34; backprop_cuda_kernel.cu&#34; 替换backprop_cuda.cu文件中的 #include backprop_cuda_kernel.cu backprop_cuda_kernel.cu存在于您正在进行make的目录中。