本文主要是介绍Spconv库安装教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Spconv库安装教程
- 环境配置
- spconv1.2安装
- 报错
- 检查是否安装成功
环境配置
- 操作系统版本:Ubuntu 20.04
- GPU:RTX4090
- CUDA版本:11.3
- CUDNN版本:8.9.2.26
- Pytorch:1.10.1
- Python:3.8
- gcc版本:9.4.0(g++4.8.5,c++14需要g++5.2以上)
- cmake版本:3.29.2 (3.13.2及以上)
- github链接:GitHub - traveller59/spconv: Spatial Sparse Convolution in PyTorch
在开始安装之前,需要确定自己的系统是否已经安装好cuda,和cudnn等。确认cuda版本的方法,
ctrl+t
打开你的terminal,输入:nvcc -V
注意cudnn一定要与cuda版本对应,否则安装时会报错.cudnn下载链接
spconv1.2安装
- 克隆代码
git clone https://github.com/traveller59/spconv.git --recursive
- 安装依赖
sudo apt-get install libboost-all-dev
- 运行
python setup.py bdist_wheel
cd ./dist
pip install spconv-2.3.6-py3-none-any.whl
报错
- 安装过程中可能出现的错误:
①No CMAKE_CUDA_COMPILER could be found.
可能会出现如下错误:
/home/sdb1/zyan/lulu/lib/python3.7/site-packages/setuptools/distutils_patch.py:26: UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first."Distutils was imported before Setuptools. This usage is discouraged "
running bdist_wheel
running build
running build_py
running build_ext
Release
|||||CMAKE ARGS||||| ['-DCMAKE_PREFIX_PATH=/home/sdb1/zyan/lulu/lib/python3.7/site-packages/torch', '-DPYBIND11_PYTHON_VERSION=3.7', '-DSPCONV_BuildTests=OFF', '-DPYTORCH_VERSION=10600', '-DCMAKE_CUDA_FLAGS="--expt-relaxed-constexpr" -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/sdb1/zyan/lulu/spconv-1.2/build/lib.linux-x86_64-3.7/spconv', '-DCMAKE_BUILD_TYPE=Release']
-- The CUDA compiler identification is unknown
CMake Error at CMakeLists.txt:6 (project):No CMAKE_CUDA_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CUDACXX" or the CMake cache entry CMAKE_CUDA_COMPILER to the fullpath to the compiler, or to the compiler name if it is in the PATH.
-- Configuring incomplete, errors occurred!
See also "/home/sdb1/zyan/lulu/spconv-1.2/build/temp.linux-x86_64-3.7/CMakeFiles/CMakeOutput.log".
See also "/home/sdb1/zyan/lulu/spconv-1.2/build/temp.linux-x86_64-3.7/CMakeFiles/CMakeError.log".
Traceback (most recent call last):
解决方法:问题还是cuda和cudnn版本不对应,从上文链接中下载cudnn对应版本(建议选择cuDNN Library for Linux (x86_64)类型)
cd 下载(下载cudnn所在的文件夹)
tar -xvf cudnn-10.0-linux-x64-v7.3.1.20.tgz(换成你的文件名字)
执行以下命令(路径是自己安装cuda的路径,根据自己的更改就好):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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
再pip安装即可。
②Found cuDNN: v?
#可能出现以下错误
running build
running build_py
running build_ext
Release
|||||CMAKE ARGS||||| ['-DCMAKE_PREFIX_PATH=/home/zjy/anaconda3/envs/pcdet/lib/python3.6/site-packages/torch', '-DPYBIND11_PYTHON_VERSION=3.6', '-DSPCONV_BuildTests=OFF', '-DPYTORCH_VERSION=10800', '-DCMAKE_CUDA_FLAGS="--expt-relaxed-constexpr" -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/zjy/openpcdet/spconv-master/build/lib.linux-x86_64-3.6/spconv', '-DCMAKE_BUILD_TYPE=Release']
-- Caffe2: CUDA detected: 11.1
-- Caffe2: CUDA nvcc is: /usr/local/cuda-11.1/bin/nvcc
-- Caffe2: CUDA toolkit directory: /usr/local/cuda-11.1
-- Caffe2: Header version is: 11.1
-- Found CUDNN: /usr/local/cuda-11.1/lib64/libcudnn.so
-- Found cuDNN: v? (include: /usr/local/cuda-11.1/include, library: /usr/local/cuda-11.1/lib64/libcudnn.so)
CMake Error at /home/zjy/anaconda3/envs/pcdet/lib/python3.6/site-packages/torch/share/cmake/Caffe2/public/cuda.cmake:174 (message):
解决方法:有些cudnn的版本文件不在cudnn.h里,而在cudnn_version.h里,需要将cudnn_version.h文件复制过去
sudo cp cuda/include/cudnn_version.h /usr/local/cuda/include/
然后再pip安装即可
检查是否安装成功
python
import spconv
可以导入则安装成功。
这篇关于Spconv库安装教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!