最近在安装spconv的时候,本地编译出现了问题,没有cudnn支持,所以按照教程安装:
Install CuDNN[Solved] How to verify CuDNN installation? | 9to5Answer
Step 1: Register an nvidia developer account and download cudnn here (about 80 MB). You might need nvcc --version
to get your cuda version.
Step 2: Check where your cuda installation is. For most people, it will be /usr/local/cuda/
. You can check it with which nvcc
.
Step 3: Copy the files:
$ cd folder/extracted/contents
$ sudo cp include/cudnn.h /usr/local/cuda/include
$ sudo cp lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
但是在执行python setup.py bdist_wheel命令后,还是报错:
Found cuDNN: v? (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libcudnn.so) CMake Error
发现有解决方法:
新版本cudnn的版本信息包含在cudnn_version.h中,而不是cudnn.h中
修改:libtorch/share/cmake/Caffe2/public/cuda.cmake,148行
替换: file(READ ${CUDNN_INCLUDE_PATH}/cudnn.h CUDNN_HEADER_CONTENTS) 为 : file(READ ${CUDNN_INCLUDE_PATH}/cudnn_version.h CUDNN_HEADER_CONTENTS)
同样地,查询cuDNN版本也要更改为cudnn_version.h
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
但是上面这个方法,还是不行,仔细看148行(实际149行,已经考虑到兼容旧版本这个问题),所以只要执行:
sudo cp cuda/include/cudnn_version.h /usr/local/cuda/include/
这样就可以了。
进一步执行: cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2