2017-08-25 114 views
0

我使用的是Nvidia GeForce GTX 1080,它需要Cuda 8.0。尽管如此,从实验中,我发现它与Cuda 7.5的配合良好,但是当我的网络有一个丢失层时出现错误。在另一方面,当我使用的Cuda 8.0,我得到的错误:在GTX 1080上编译Caffe与Cuda 8.0

./build/tools/caffe: error while loading shared libraries: libcudart.so.7.5: cannot open shared object file: No such file or directory 

我认为这个问题可能是我编了来自Caffe使用CUDA 7.5及以下CUDA_ARCH参数。

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ 
    -gencode arch=compute_20,code=sm_21 \ 
    -gencode arch=compute_30,code=sm_30 \ 
    -gencode arch=compute_35,code=sm_35 \ 
    -gencode arch=compute_50,code=sm_50 \ 
    -gencode arch=compute_50,code=compute_50 

当我使用这些参数,并尝试使用CUDA 8.0编译,我得到以下错误:

make: *** No rule to make target `/usr/local/cuda/include/thrust/detail/type_traits/result_of.h', needed by `.build_release/cuda/src/caffe/layers/softmax_layer.o'. Stop. 

你认为这是什么问题?如果是,Cuda 8.0和GTX 1080的参数CUDA_ARCH是否正确。如果不是,那么问题是什么?

回答

0

的解决方案就是:

make clean 
make all 

而且我用下面的CUDA_ARCH参数:

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ 
    -gencode arch=compute_20,code=sm_21 \ 
    -gencode arch=compute_30,code=sm_30 \ 
    -gencode arch=compute_35,code=sm_35 \ 
    -gencode arch=compute_50,code=sm_50 \ 
    -gencode arch=compute_50,code=compute_50 
    -gencode=arch=compute_52,code=sm_52 \ 
    -gencode=arch=compute_52,code=compute_52 \ 
    -gencode=arch=compute_60,code=sm_60 \ 
    -gencode=arch=compute_61,code=sm_61 \ 
0

您还没有正确的NVIDIA NVCC SM标志编译CUDA的GTX1080(SM架构61)。

您应该将-gencode=arch=compute_61,code=sm_61添加到您的CUDA_ARCH参数中并重新编译。