spconv1.2.1库的编译与安装

SpConv是一个稀疏卷积库,在点云相关的深度学习算法中用的比较多。由于目前官方升级到了2.0,然而有些算法(比如审稿人要我复现的Cylinder3D)仍需要用到1.2.1版本,因此本人花了亿点点时间折腾了一下。。。

本机安装cuda+cudnn+pytorch(pytorch应该可以在虚拟环境中装,有兴趣的通知可以尝试一下)

现在anaconda已经支持直接命令行安装cuda和cudnn了,因此很多人(包括我)直接用那个装完了事。然而编译1.x版本的SpConv库遇到的最大的问题也正是这个。

我用anaconda折腾了两天,总是会有奇奇怪怪的问题,有几次虽然编译过了但到运行代码的阶段也会莫名出错。下载别人编译好的版本照着其描述的环境安装虽然可以,但代码运行时还是有问题。于是最后还是回归最原始的cuda+cudnn的安装方法。

下面就简单介绍一下:

到英伟达官网查看下载cuda

官网:https://developer.nvidia.com/cuda-11.1.0-download-archive

bash 复制代码
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
sudo sh cuda_11.1.0_455.23.05_linux.run

下载cuda对应的cudnn并安装

得到cudnn-11.1-linux-x64-v8.0.5.39.tgz后解压缩,随后执行以下代码(注意自己的cuda版本):

bash 复制代码
# 复制cudnn头文件
sudo cp cuda/include/* /usr/local/cuda-11.1/include/
# 复制cudnn的库
sudo cp cuda/lib64/* /usr/local/cuda-11.1/lib64/
# 添加可执行权限
sudo chmod +x /usr/local/cuda-11.1/include/cudnn.h
sudo chmod +x /usr/local/cuda-11.1/lib64/libcudnn*

安装pytorch(注意这里用的CUDA11.1,另外应该也可以创建一个conda的虚拟环境来安装)

bash 复制代码
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

检查cuda和cudnn是否安装成功

python 复制代码
# 检查cuda和cudnn是否安装成功的代码
import torch
# 若正常则静默
a = torch.tensor(1.)
# 若正常则静默
print(a.cuda())
# 若正常则返回 tensor(1., device='cuda:0')
from torch.backends import cudnn
# 若正常则静默
print(cudnn.is_available())
# 若正常则返回 True
print(cudnn.is_acceptable(a.cuda()))
# 若正常则返回 True
print(torch.cuda.is_available())
# 返回GPU的数量
print(torch.cuda.device_count())

添加cuda相关的环境变量到终端中

bash 复制代码
 gedit ~/.zshrc

把下面的语句添加到文件的尾部

bash 复制代码
export LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/cuda-11.1/bin:$PATH"
export CUDA_HOME=/usr/local/cuda-11.1

检查nvcc是否安装成功

bash 复制代码
nvcc -V

安装cmake

bash 复制代码
sudo apt-get install cmake

安装boost

bash 复制代码
sudo apt-get install libboost-all-dev

下载spconv1.2.1代码

bash 复制代码
git clone -b v1.2.1 https://github.com/traveller59/spconv.git --recursive

编译spconv1.2.1代码

bash 复制代码
python setup.py bdist_wheel

编译成功的话会在dist文件夹下生成一个spconv-1.2.1-xx-xx-xx.whl文件,这个文件就是我们要的,在需要安装spconv1.2.1的环境执行如下命令:

bash 复制代码
pip install spconv-1.2.1-xx-xx-xx.whl

即可完成安装。

相关推荐
代码不行的搬运工4 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
秀儿还能再秀15 小时前
神经网络(系统性学习三):多层感知机(MLP)
神经网络·学习笔记·mlp·多层感知机
老艾的AI世界17 小时前
AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)
人工智能·深度学习·神经网络·机器学习·ai·ai翻唱·ai唱歌·ai歌曲
sp_fyf_202420 小时前
【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理
CoderIsArt20 小时前
基于 BP 神经网络整定的 PID 控制
人工智能·深度学习·神经网络
EterNity_TiMe_20 小时前
【论文复现】神经网络的公式推导与代码实现
人工智能·python·深度学习·神经网络·数据分析·特征分析
sp_fyf_20241 天前
【大语言模型】ACL2024论文-18 MINPROMPT:基于图的最小提示数据增强用于少样本问答
人工智能·深度学习·神经网络·目标检测·机器学习·语言模型·自然语言处理
Mr.谢尔比1 天前
李宏毅机器学习课程知识点摘要(1-5集)
人工智能·pytorch·深度学习·神经网络·算法·机器学习·计算机视觉
曼城周杰伦1 天前
自然语言处理:第六十二章 KAG 超越GraphRAG的图谱框架
人工智能·pytorch·神经网络·自然语言处理·chatgpt·nlp·gpt-3
南门听露1 天前
适用于资源受限IoT系统的非对称语义图像压缩技术
深度学习·神经网络·物联网