非root用户安装MinkowskiEngine到anaconda虚拟环境遇到的问题记录

一、需要安装MinkowskiEngine的目标环境

主机:

Centos Linux8,cuda12.2.

anaconda:

python3.9,gcc9.5.0(用conda安装的gcc),pytorch2.3.1(对应cuda12左右的版本)

二、直接安装

pip有安装MinkowskiEngine的命令,首先肯定是直接尝试安装

pip install MinkowskiEngine -i https://pypi.tuna.tsinghua.edu.cn/simple

问题一:

直接安装是报错的,然后稍微往上面翻了一下报错,缺少cblas.h。

自动安装不行所以选择了手动安装。

三、手动安装

找到MinkowskiEngine的git官网:MinkowskiEngine的git链接

可以手动下载整个压缩包或者使用git命令下载

git clone https://github.com/NVIDIA/MinkowskiEngine.git
cd MinkowskiEngine

下载好之后也就是正常开始安装,当然肯定也是报错的。

# 这里CONDA_PREFIX换成anaconda本身的虚拟环境名称即可。
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas

错误一:cuda版本不匹配的问题

RuntimeError: The detected CUDA version (12.2) mismatches the version that was used to compile

一般的手动setup.py安装会有版本检测,注释检测即可。

错误二:虚拟环境pip安装ninja引起的问题

我个人把ninja理解成安装助手的意思,看到然后因为ninja报错不太好看bug所以有些博主直接pip

uninstall ninja这里我们也采用了暂时卸载ninja的做法,但是这一步骤做不做感觉都可以,感兴趣的自己试试。

错误三:回到了直接安装时出现bug的地方,没有cblas.h头文件

缺少了openblas这个包。linux本身的包,解决:

openblas安装方法很多,conda、apt-get、手动安装

  • 没有root所以apt-get无法使用,如果有root的朋友可以直接:
sudo apt-get install libopenblas-dev
  • conda安装,conda本身也可以装,大家参考MinkowskiEnginegit官网的安装教程:
conda install openblas-devel -c anaconda
  • 第一种我没法用,第二种我由于某些原因也没装上,所以有了第三种:目的安装openblas,没有root。

还是日常去官网找zip或者tar包https://sourceforge.net/projects/openblas/files/加压。这里注意一下跟gcc的匹配关系,个人感觉应该是有关系的,我是gcc9.5,找了openblas-0.3.21,安装成功了但是安装结果说的是不完全安装,不过对我来讲够了。有其他需求的朋友找别的博客细看一下不完全安装的原因吧。

安装:

cd openblas-0.3.21/
# 这里找到的需要gfoetran的命令,如果没有的朋友自己想办法或者直接make试试
make FC=gfortran NO_AVX2=1 
make install PREFIX=/非root可以配置的自己想要安装到的目录

不幸运的是不完全安装,但是好在安装成功了也就不管了继续MinkowskiEngine的安装。

当然手动安装需要配置环境变量:vim一下.bashrc,加入下面的几行

OPEN_BLAS_HOME=PREFIX/openblas # PREFIX改成安装的openblas路径
export CPLUS_INCLUDE_PATH=$OPEN_BLAS_HOME/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=$OPEN_BLAS_HOME/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=$OPEN_BLAS_HOME/lib:$LD_LIBRARY_PATH

错误四:这里遇到了MinkowskiEngine源代码里面的一些文件报错,找了官网问题讨论里面的一些参考https://github.com/NVIDIA/MinkowskiEngine/issues/543

emmm大概就按照下面步骤自己操作了:

1. 找到setup文件中
MAX_COMPILATION_THREADS = 12

改成

MAX_COMPILATION_THREADS = 4

2. 有些文件里面好像缺少了头文件,直接按照下面操作

修改:MinkowskiEngine/src/convolution_kernel.cuh文件,加入:

#include <thrust/execution_policy.h>

修改:MinkowskiEngine/src/coordinate_map_gpu.cu文件,加入:

#include <thrust/unique.h>
#include <thrust/remove.h>

修改:MinkowskiEngine/src/spmm.cu文件,加入:

#include <thrust/execution_policy.h>
#include <thrust/reduce.h> 
#include <thrust/sort.h>

修改:MinkowskiEngine/src/3rdparty/concurrent_unordered_map.cuh文件,加入:

#include <thrust/execution_policy.h>

四、安装成功

解决完上面的bug回到手动安装的命令

# 这里CONDA_PREFIX换成anaconda本身的虚拟环境名称即可。
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas

差不多没啥问题了。

最后给出一些我参考的链接:

记录MinkowskiEngine 安装过程中的踩坑经历_minkowski engine-CSDN博客

安装MMdetection3D和MinkowskiEngine - MSTK - 博客园 (cnblogs.com)

非root用户安装OpenBLAS_非root 安装 openblas-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值