MinkowskiEngine(ME)是计算稀疏张量常用的库,但是官方文档里安装这个库的坑还是蛮多的。本来看到CVPR2022的REGTR这篇文章想先看看作者模型的实际效果怎么样,结果环境配置这一块就折腾好几天,从cuda11.1到cuda11.3都尝试了一遍,最后总结出一些安装心得。(现在配这个环境我真的是熟练工2333)
安装ME之前先确定cuda版本,建议使用cuda11.1,这是多次尝试之后最靠谱的版本!安装不同版本的cuda这一参考我同门兄弟的这篇安装指南:
https://www.cnblogs.com/nrocky/p/13767316.html
查看cuda版本:
nvcc -V
输出:
现在就OK了,是cuda11.1。注意:nvidia-smi里面看到的驱动cuda版本你可以理解成能支持的最高cuda版本。
比如我这里驱动最高支持的就是cuda11.6。
另一个是gcc/g++的版本,不能过高,否则安装ME库的时候也无法编译,官方要求版本>=7.4.0,实际使用7.5.0到8.0.1都没问题,建议不要高于9.5.0。
先安装gcc/g++:
sudo apt install gcc-7
sudo apt install g++-7
更换gcc/g++版本:
rm /usr/bin/gcc #删除现有的gcc
ln -s /usr/bin/gcc-7 /usr/bin/gcc #更换gcc
rm /usr/bin/g++ #删除现有的g++
ln -s /usr/bin/g++-7 /usr/bin/g++ #更换g++
#查看gcc/g++版本
gcc --version
g++ --version
输出:
conda create -n me python==3.8 #创建conda虚拟环境
conda activate me #激活虚拟环境
接下来就是一个坑了,官方文档让你先安装依赖再安装pytorch,这里务必先安装pytorch,然后再安装依赖,经过我多次尝试,最合适的pytorch版本就是1.9.0和1.9.1最新版本的pytorch也会出问题。
conda install pytorch=1.9.0 torchvision cudatoolkit=11.1 -c pytorch -c nvidia #安装pytorch
#测试一下,确保cuda可以使用
python
>>> import torch
>>> torch.cuda.is_available()
True
>>> quit()
pip install ninja #官方文档没说,这里依赖还需要安装ninja库
conda install openblas-devel -c anaconda #安装依赖
因为github经常连不上而且速度慢,所以考虑通过本地进行安装,MinkowskiEngine官方地址:
https://github.com/NVIDIA/MinkowskiEngine
执行安装:
cd MinkowskiEngine
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas
安装完成之后测试一下是否能正常导入MinkowskiEngine:
python
>>> import MinkowskiEngine as ME
>>> print(ME.__version__)
0.5.4
到此MinkowskiEngine安装完毕。