Linux Caffe2不';我好像没看见卡德恩?

Linux Caffe2不';我好像没看见卡德恩?,linux,pytorch,caffe,cudnn,Linux,Pytorch,Caffe,Cudnn,我正在尝试安装SpConv(空间稀疏卷积库),但是当运行python3 setup.py bdist_wheel时,我收到一个错误,它似乎与Caffe2无法看到cuDNN有关,因为我从该消息推断: CMake Error at /home/ivan/.local/lib/python3.6/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:96 (message): Your installed Caffe2 version

我正在尝试安装SpConv(空间稀疏卷积库),但是当运行
python3 setup.py bdist_wheel
时,我收到一个错误,它似乎与Caffe2无法看到cuDNN有关,因为我从该消息推断:

CMake Error at /home/ivan/.local/lib/python3.6/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:96 (message):
  Your installed Caffe2 version uses cuDNN but I cannot find the cuDNN
  libraries.  Please set the proper cuDNN prefixes and / or install cuDNN.
我尝试重新安装cuDNN,但没有成功。我可以手动将Caffe2指向cuDNN吗?这是因为cuda通常位于
/usr/local/cuda/
中,而我在
/usr/lib/cuda
中有它

完整输出如下:

running bdist_wheel
running build
running build_py
running build_ext
Release
|||||CMAKE ARGS||||| ['-DCMAKE_PREFIX_PATH=/home/ivan/.local/lib/python3.6/site-packages/torch', '-DPYBIND11_PYTHON_VERSION=3.6', '-DSPCONV_BuildTests=OFF', '-DCMAKE_CUDA_FLAGS="--expt-relaxed-constexpr" -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/mnt/home/ivan/second.pytorch/second/spconv/build/lib.linux-x86_64-3.6/spconv', '-DCMAKE_BUILD_TYPE=Release']
-- Caffe2: CUDA detected: 9.1
-- Caffe2: CUDA nvcc is: /usr/bin/nvcc
-- Caffe2: CUDA toolkit directory: /usr
-- Caffe2: Header version is: 9.1
-- Could NOT find CUDNN (missing: CUDNN_INCLUDE_DIR) 
CMake Warning at /home/ivan/.local/lib/python3.6/site-packages/torch/share/cmake/Caffe2/public/cuda.cmake:131 (message):
  Caffe2: Cannot find cuDNN library.  Turning the option off
Call Stack (most recent call first):
  /home/ivan/.local/lib/python3.6/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:88 (include)
  /home/ivan/.local/lib/python3.6/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:40 (find_package)
  CMakeLists.txt:20 (find_package)


-- Autodetected CUDA architecture(s):  6.1
-- Added CUDA NVCC flags for: -gencode;arch=compute_61,code=sm_61
CMake Error at /home/ivan/.local/lib/python3.6/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:96 (message):
  Your installed Caffe2 version uses cuDNN but I cannot find the cuDNN
  libraries.  Please set the proper cuDNN prefixes and / or install cuDNN.
Call Stack (most recent call first):
  /home/ivan/.local/lib/python3.6/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:40 (find_package)
  CMakeLists.txt:20 (find_package)


-- Configuring incomplete, errors occurred!
See also "/mnt/home/ivan/second.pytorch/second/spconv/build/temp.linux-x86_64-3.6/CMakeFiles/CMakeOutput.log".
See also "/mnt/home/ivan/second.pytorch/second/spconv/build/temp.linux-x86_64-3.6/CMakeFiles/CMakeError.log".
Traceback (most recent call last):
  File "setup.py", line 99, in <module>
    zip_safe=False,
  File "/home/ivan/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/wheel/bdist_wheel.py", line 204, in run
    self.run_command('build')
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.6/distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 40, in run
    self.build_extension(ext)
  File "setup.py", line 82, in build_extension
    subprocess.check_call(['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env)
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '/mnt/home/ivan/second.pytorch/second/spconv', '-DCMAKE_PREFIX_PATH=/home/ivan/.local/lib/python3.6/site-packages/torch', '-DPYBIND11_PYTHON_VERSION=3.6', '-DSPCONV_BuildTests=OFF', '-DCMAKE_CUDA_FLAGS="--expt-relaxed-constexpr" -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/mnt/home/ivan/second.pytorch/second/spconv/build/lib.linux-x86_64-3.6/spconv', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
运行bdist\u车轮
运行构建
运行build\u py
运行build_ext
释放
|||||CMAKE ARGS.['-DCMAKE|u PREFIX|u PATH=/home/ivan/.local/lib/python3.6/site packages/torch','-DPYBIND11_PYTHON_VERSION=3.6','-DSPCONV_BuildTests=OFF','-DCMAKE_CUDA_FLAGS=“-expt relaxed constr expr”-D_u-CUDA_-NO-HALF-u操作符-D_u-CUDA_-NO-HALF-u转换-D_u-CUDA_-NO-HALF-2操作符-DCMAKE-LIBRARY\u OUTPUT\u目录=/mnt/home/ivan/second.pytorch/second/spconv/build/lib.linux-x86\u 64-3.6/spconv','-DCMAKE\u build\u TYPE=Release']
--Caffe2:检测到CUDA:9.1
--Caffe2:CUDA nvcc为:/usr/bin/nvcc
--Caffe2:CUDA工具包目录:/usr
--Caffe2:标题版本为:9.1
--找不到CUDNN(缺少:CUDNN\u INCLUDE\u DIR)
CMake警告位于/home/ivan/.local/lib/python3.6/site packages/torch/share/CMake/Caffe2/public/cuda.CMake:131(消息):
Caffe2:找不到cuDNN库。关闭选项
调用堆栈(最新调用优先):
/home/ivan/.local/lib/python3.6/site packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:88(包括)
/home/ivan/.local/lib/python3.6/site packages/torch/share/cmake/torch/TorchConfig.cmake:40(查找包)
CMakeLists.txt:20(查找包)
--自动检测CUDA体系结构:6.1
--添加了CUDA NVCC标志:-gencode;arch=compute\u 61,code=sm\u 61
CMake错误位于/home/ivan/.local/lib/python3.6/site packages/torch/share/CMake/Caffe2/Caffe2Config.CMake:96(消息):
您安装的Caffe2版本使用cuDNN,但我找不到cuDNN
图书馆。请设置正确的cuDNN前缀和/或安装cuDNN。
调用堆栈(最新调用优先):
/home/ivan/.local/lib/python3.6/site packages/torch/share/cmake/torch/TorchConfig.cmake:40(查找包)
CMakeLists.txt:20(查找包)
--配置不完整,出现错误!
另请参见“/mnt/home/ivan/second.pytorch/second/spconv/build/temp.linux-x86_64-3.6/CMakeFiles/CMakeOutput.log”。
另请参见“/mnt/home/ivan/second.pytorch/second/spconv/build/temp.linux-x86_64-3.6/CMakeFiles/CMakeError.log”。
回溯(最近一次呼叫最后一次):
文件“setup.py”,第99行,在
zip_safe=False,
文件“/home/ivan/.local/lib/python3.6/site packages/setuptools/\uuuu init\uuuuu.py”,第145行,在安装程序中
返回distutils.core.setup(**attrs)
文件“/usr/lib/python3.6/distutils/core.py”,第148行,在安装程序中
dist.run_命令()
文件“/usr/lib/python3.6/distutils/dist.py”,第955行,在run_命令中
self.run_命令(cmd)
文件“/usr/lib/python3.6/distutils/dist.py”,第974行,在run_命令中
cmd_obj.run()
文件“/usr/lib/python3/dist packages/wheel/bdist_wheel.py”,第204行,运行中
self.run_命令('build'))
文件“/usr/lib/python3.6/distutils/cmd.py”,第313行,在run_命令中
self.distribution.run_命令(command)
文件“/usr/lib/python3.6/distutils/dist.py”,第974行,在run_命令中
cmd_obj.run()
文件“/usr/lib/python3.6/distutils/command/build.py”,第135行,运行中
self.run_命令(cmd_名称)
文件“/usr/lib/python3.6/distutils/cmd.py”,第313行,在run_命令中
self.distribution.run_命令(command)
文件“/usr/lib/python3.6/distutils/dist.py”,第974行,在run_命令中
cmd_obj.run()
运行中第40行的文件“setup.py”
自构建扩展(ext)
文件“setup.py”,第82行,内部版本扩展名
子进程检查调用(['cmake',ext.sourcedir]+cmake_参数,cwd=self.build_temp,env=env)
文件“/usr/lib/python3.6/subprocess.py”,第311行,在check_调用中
引发被调用的进程错误(retcode,cmd)
subprocess.CalledProcessError:Command'['cmake','/mnt/home/ivan/second.pytorch/second/spconv','-DCMAKE_PREFIX_PATH=/home/ivan/.local/lib/python3.6/site packages/torch','-DPYBIND11_PYTHON_VERSION=3.6','-DSPCONV_BuildTests=OFF','-DCMAKE_-CUDA_标志=“--expt released constr”-D_u-CUDA_-NO-HALF_操作符-D_u-CUDA_-NO-HALF_转换-D_u-CUDA_-NO-HALF 2_操作符,'-DCMAKE_-LIBRARY_-OUTPUT_目录=/mnt/home/ivan/second.pytorch/second/spconv/build/lib.linux-x86_64-3.6/spconv',“-DCMAKE_-build-TYPE=Release']”返回非零退出状态1。

系统:Ubuntu 18.04、CUDA 9.1、cuDNN 7.6.3发现了问题。我需要将
CUDNN\u INCLUDE\u DIR
设置为
/usr/lib/cuda/INCLUDE
(即
CUDNN.h
文件所在的位置)


吸取的教训:花时间理解错误,
缺失:CUDNN\u INCLUDE\u DIR
是关键

解决此问题的另一种方法:

  • 从中获取cuDNN。您可能需要注册才能这样做,但注册是免费的
  • 解压缩cuDNN存档文件
  • 按如下方式移动cuDNN文件:
  • sudo cp cuda/include/cudnn*.h/usr/local/cuda/include
    sudo cp cuda/lib64/libcudnn*/usr/local/cuda/lib64
    sudo chmod a+r/usr/local/cuda/include/cudnn*.h/usr/local/cuda/lib64/libcudnn*
    
  • 或者,在
    /usr/local/
    处放置一个符号链接,指向解包cuDNN存档产生的
    cuda
    目录