MinkowskiEngine安装与配置

摘要: 本文是关于一个巨麻烦的库MinkowskiEngine的安装与配置。在当前时间下,许多新版本的库和系统都用不了这个工具,所以作者甚至直接release了一个docker环境。真的巨麻烦!


〓 Table of Contents 〓





MinkowskiEngine简介

〓 ReTURN 〓

项目主页

The Minkowski Engine is an auto-differentiation library for sparse tensors. It supports all standard neural network layers such as convolution, pooling, unpooling, and broadcasting operations for sparse tensors.




update information

〓 ReTURN 〓

  • 2021-08-11 Docker installation instruction added
  • 2021-08-06 All installation errors with pytorch 1.8 and 1.9 have been resolved.
  • 2021-04-08 Due to recent errors in pytorch 1.8 + CUDA 11, it is recommended to use anaconda for installation.
  • 2020-12-24 v0.5 is now available! The new version provides CUDA accelerations for all coordinate management functions.




功能简介

〓 ReTURN 〓

The Minkowski Engine supports various functions that can be built on a sparse tensor. We list a few popular network architectures and applications here. To run the examples, please install the package and run the command in the package root directory.




安装部署流程

〓 ReTURN 〓

 仅仅按照官方文档里去安装这个库的坑非常多 ,这个博主总结的比较全面



安装ME之前先确定cuda版本,建议使用cuda11.1,这是多次尝试之后最靠谱的版本!

〓 ReTURN 〓

在Nvidia官网找到cuda-11.1的下载命令:Nvidia官网

1
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run



安装cuda之前,具有确认gcc版本, 建议使用gcc-7.5.0

〓 ReTURN 〓

gcc/g++的版本不能过高,否则安装ME库的时候也无法编译,官方要求版本>=7.4.0,实际使用7.5.0到8.0.1都没问题,建议不要高于9.5.0。

我尝试通过常规源码包编译的方式安装编译gcc-7.5.0失败。最终通过conda-forge工具解决了这个问题,这也拓展了我的思路,可能很多项目的c++库都用conda-forge或者conda来管理才是最明智的选择。



使用conda-forge来安装编译gcc-7.5.0

〓 ReTURN 〓

虽然conda不直接提供特定版本的gcc,但conda-forge有提供跨平台的编译工具链:

1
2
conda install -c conda-forge gcc_linux-64=7.5.0
conda install -c conda-forge gxx_linux-64=7.5.0

这种方式在安装时会处理所有的依赖问题,并且方便在conda环境中进行管理。



安装完成后, 更新系统路径

〓 ReTURN 〓

单单是conda安装完成是不够的,现在系统默认还是使用的是原来的gcc,必须将上述conda forge安装的gcc路径放在系统路径的前置位置,确保Conda环境中的gcc优先于系统默认的gcc,这样才会默认使用这个gcc。

步骤:

  1. 激活环境conda activate your_env_name

  2. 查找GCC和G++的实际路径:

    1
    2
    conda list gcc
    conda list gxx
  3. 查找GCC的二进制路径

    1
    2
    find $(conda info --base)/envs/your_env_name -name gcc
    find $(conda info --base)/envs/your_env_name -name g++

    例如,我找到我的新安装的gcc所在的位置是: /ssddata/lijiawei421/env/miniconda38/envs/openscene/libexec/gcc/x86_64-conda-linux-gnu/7.5.0/gcc, 这是一个可执行文件,通过/ssddata/lijiawei421/env/miniconda38/envs/openscene/libexec/gcc/x86_64-conda-linux-gnu/7.5.0/gcc --version命令可以查看到它的版本是7.5.0

  4. 刷新系统路径:

    1
    export PATH=/ssddata/lijiawei421/env/miniconda38/envs/openscene/libexec/gcc/x86_64-conda-linux-gnu/7.5.0/:$PATH



现在可以开始安装cuda-11.1了

〓 ReTURN 〓

1
sh cuda_11.1.0_455.23.05_linux.run



完成cuda安装后, 记得要source新的cuda环境

〓 ReTURN 〓

1
2
3
4
5
6
7
8
9
10
# CUDA
export PATH="/ssddata/lijiawei421/env/lib/cuda-11.1/bin:$PATH"
export LD_LIBRARY_PATH="/ssddata/lijiawei421/env/lib/cuda-11.1/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME="/ssddata/lijiawei421/env/lib/cuda-11.1"
export CUDA_TOOLKIT_ROOT_DIR=$CUDA_HOME
export LD_LIBRARY_PATH="$CUDA_HOME/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
export LIBRARY_PATH=$CUDA_HOME/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export CFLAGS="-I$CUDA_HOME/include $CFLAGS"
export LD_LIBRARY_PATH="$CUDA_HOME/include:$LD_LIBRARY_PATH"



务必先安装pytorch,然后再安装依赖

〓 ReTURN 〓

坑点,官方文档让先安装依赖再安装pytorch,这里务必先安装pytorch,然后再安装依赖,经过该博主多次尝试,最合适的pytorch版本就是1.9.0和1.9.1。最新版本的pytorch也会出问题。

1
2
3
4
conda install pytorch=1.9.0 torchvision cudatoolkit=11.1 -c pytorch -c nvidia

pip install ninja #官方文档没说,这里依赖还需要安装ninja库
conda install openblas-devel -c anaconda #安装依赖

测试安装

1
2
3
4
python
>>> import torch
>>> torch.cuda.is_available()
True



源码安装Minkowski Engine

〓 ReTURN 〓

1
2
3
git clone https://github.com/NVIDIA/MinkowskiEngine
cd MinkowskiEngine
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas



安装完成后测试是否能正常导入MinkowskiEngine

1
2
3
4
python
>>> import MinkowskiEngine as ME
>>> print(ME.__version__)
0.5.4
作者

Jiawei Li

发布于

2024-06-05

更新于

2024-06-05

许可协议