MinkowskiEngine安装记录
MinkowskiEngine(ME)是计算稀疏张量常用的库,但是官方文档里安装这个库的坑还是蛮多的。
参考了好多经验贴,终于在自己电脑上成功安装编译MinkowskiEngine,uu们务必看完本贴再跟着操作,有些问题放在后面解释了
参考:
https://blog.csdn.net/m0_60197472/article/details/125293739
环境准备
我的环境:
ubuntu18.04
cuda版本:cuda 11.3
gcc版本:7.5.0
g++版本:7.5.0
linux查询指令:
nvcc -V
gcc --version
g++ --version
查询结果:
anaconda安装
官方教程
Anaconda
MinkowskiEngine supports both CUDA 10.2 and cuda 11.1, which work for most of latest pytorch versions.
我根据此教程流程安装:
1、这部分顺利安装
当然根据上面的经验贴,更改了安装顺序,先安装pytorch,然后再安装依赖
conda create -n 虚拟环境名 python=3.7.0
conda activate 虚拟环境名
从现在开始,所有指令走在虚拟环境中执行
# 去官网找对应的安装指令,我使用的指令与官方教程不同
conda installpytorch=1.8.0 torchvision cudatoolkit=11.1 -c pytorch -c nvidia
conda install openblas-devel -c anaconda
安装好pytorch后,最好测试一下
我一开始安装成了cpu版本的导致出错,这里可以去官网找对应的安装指令(我使用pytorch 1.8.0,cudatoolkit 11.1)
#测试一下,确保cuda可以使用
python
>>>import torch
>>> torch.cuda.is_available()
True
>>> quit()
2、开始出问题了
接下来到了Install MinkowskiEngine环节,网络问题选择本地安装
将代码下载后打开MinkowskiEngine目录
# Or if you want local MinkowskiEngine# 这里我手动下载解压的git clone https://github.com/NVIDIA/MinkowskiEngine.git
cd MinkowskiEngine
在执行这行
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas
命令时,出现了两个普遍的问题。
问题1:subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1.
看着两位大神的解释:
解决方案:
1、 降低版本是必不可能的
2、 修改torch中的将 [‘ninja’,‘-v’]改成[‘ninja’,‘–version’] (确实解决了这个报错,但是导致程序根本不编译,后续会找不到 .o 文件,网上也很难找到别人编译好的 .o 文件,因此此方法无效)
(PS:这里还需要安装ninja才会走到这步)
pip install ninja # 官方文档没说,这里依赖还需要安装ninja库
3、将MinkowskiEngine目录中 setup.py 文件中的“cmdclass={‘build_ext’: BuildExtension}”这一行改为“cmdclass={‘build_ext’: BuildExtension.with_options(use_ninja=False)}”,pytorch默认使用ninjia作为backend,这里把它禁用掉就好了;(之前的ninja白装了)
第一个报错解决后,又出来新问题:
问题2:error: command ‘:/usr/local/cuda/bin/nvcc’ failed: No such file or directory: ‘:/usr/local/cuda/bin/nvcc’
在对应路径下能找到nvcc,判断应该是环境变量路径设置有误
解决方案:
这里还有一个坑,修改环境变量后,回到了base环境,需要重新进入自己搭建的虚拟环境中运行 setup.py。
细节
执行 setup.py 需要一段时间
同时,如果在自己电脑上运行有可能会卡住
编译过程如果卡死,在setup文件里面142行左右,把12改小(我改成了4);
编译过程会报一堆warning,不影响安装,无所谓的;
安装成功后测试一下:
python
>>>import MinkowskiEngine as ME
>>> print(ME.__version__)0.5.4
版权归原作者 悬罄 所有, 如有侵权,请联系我们删除。