安装SpConv时Caffe2无法识别cuDNN的问题求助
解决Caffe2无法识别非默认路径cuDNN的问题
看起来你遇到的核心问题是:编译SpConv时,Caffe2的CMake配置没法自动定位到/usr/lib/cuda下的cuDNN库——毕竟它默认只会去/usr/local/cuda找。下面给你几个实用的解决办法,按操作简便性排序:
方法一:临时设置环境变量(最快生效)
在运行编译命令前,先在终端里告诉CMake cuDNN的具体位置:
export CUDNN_INCLUDE_DIR=/usr/lib/cuda/include export CUDNN_LIBRARY=/usr/lib/cuda/lib64/libcudnn.so
设置完直接执行你的编译命令就行:
python3 setup.py bdist_wheel
方法二:修改SpConv的setup.py(永久生效)
如果不想每次编译都手动输环境变量,可以直接修改SpConv目录下的setup.py,把cuDNN路径硬编码进CMake参数:
- 打开
setup.py,找到构造cmake_args的代码段(你报错日志里已经列出了这个参数列表); - 在列表末尾添加两行参数:
cmake_args.extend([ '-DCUDNN_INCLUDE_DIR=/usr/lib/cuda/include', '-DCUDNN_LIBRARY=/usr/lib/cuda/lib64/libcudnn.so' ])
- 保存文件后重新运行编译命令即可。
前置检查:确认cuDNN安装无误
在尝试上面的方法前,先确认你的cuDNN确实在指定路径:
- 运行
ls /usr/lib/cuda/include/cudnn.h,如果输出文件路径,说明头文件存在; - 运行
ls /usr/lib/cuda/lib64/libcudnn.so*,如果能看到libcudnn.so、libcudnn.so.7、libcudnn.so.7.6.3这类文件,说明库文件没问题。
要是这些文件不存在,你得重新安装cuDNN:把cuDNN包内include目录的文件复制到/usr/lib/cuda/include,lib64目录的文件复制到/usr/lib/cuda/lib64,再用sudo chmod给文件设置合理权限(比如头文件设644,库文件设755)。
内容的提问来源于stack exchange,提问作者Ivan Novikov
相关产品推荐
相关产品推荐

