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

即可完成安装。

相关推荐
Blossom.1189 小时前
大模型量化压缩实战:从FP16到INT4的生产级精度保持之路
开发语言·人工智能·python·深度学习·神经网络·目标检测·机器学习
Ro Jace10 小时前
三国华容道(横刀立马)移动策略
android·java·数据库·人工智能·深度学习·神经网络·游戏
大千AI助手1 天前
Prefix-Tuning:大语言模型的高效微调新范式
人工智能·神经网络·自然语言处理·llm·prefix-tuning·大千ai助手·前缀微调
领航猿1号1 天前
如何通过神经网络看模型参数量?
人工智能·python·神经网络·大模型参数量
大囚长1 天前
神经网络AI在人类发明史上的独特性
人工智能·深度学习·神经网络
嵌入式-老费1 天前
自己动手写深度学习框架(数值法实现神经网络的训练)
人工智能·深度学习·神经网络
Gitpchy1 天前
简单CNN——作业(补充)
人工智能·神经网络·cnn
飞飞是甜咖啡1 天前
【文献阅读】网络复杂系统演化历史的重建
神经网络·复杂网络
fie88892 天前
基于MATLAB实现的Elman神经网络用于电力负载预测
神经网络·机器学习·matlab
咋吃都不胖lyh2 天前
激活函数是什么,神经网络中为什么要有激活函数
人工智能·深度学习·神经网络·激活函数