【问题标题】:Compiling Caffe with Cuda 8.0 on GTX 1080在 GTX 1080 上使用 Cuda 8.0 编译 Caffe
【发布时间】:2018-02-03 03:55:06
【问题描述】:

我使用的是 Nvidia GeForce GTX 1080,它需要 Cuda 8.0。尽管如此,从实验中,我发现它在 Cuda 7.5 上运行良好,但是当我的网络有 dropout 层时会出现错误。另一方面,当我使用 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

我假设问题可能是我使用 Cuda 7.5 和以下 CUDA_ARCH 参数编译了 Caffe。

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 参数是什么。如果不是,问题是什么?

【问题讨论】:

    标签: caffe


    【解决方案1】:

    解决办法就是:

    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 \
    

    【讨论】:

      【解决方案2】:

      您没有包含正确的 NVIDIA nvcc sm 标志来为 GTX1080(SM 架构 61)编译 CUDA。

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

      【讨论】:

        猜你喜欢
        • 2017-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-13
        • 2018-04-12
        相关资源
        最近更新 更多