Cuda kernel failed. Error: invalid device function

Cuda kernel failed. Error: invalid device function

出现这种错误是由于makefile.config中的问题,cuda计算能力设置错误(即-arch=sm_35)。
#-gencode=arch=compute_35,code=sm_35
#-gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_52,code=compute_52

all: 
	nvcc -O3 -m64 -arch=sm_35 -c bhsparse_cuda.cu -o bhsparse_cuda.o $(INCLUDES)
	nvcc -O3 -m64 -arch=sm_35 -c ref.cu -o ref.o $(INCLUDES)
	$(CC) -m64 -O3 main.cpp bhsparse.cpp bhsparse_cuda.o ref.o -o spgemm $(INCLUDES) $(LIBS)

需要根据GPU的计算能力设置其参数,不同GPU对应的计算能力如下图所示。

你可能感兴趣的:(Cuda kernel failed. Error: invalid device function)