赞
踩
Minkowski 引擎是稀疏张量的自动微分库。它支持所有标准的神经网络层,例如稀疏张量的卷积、池化、反池化和广播操作。
因实验需要, 笔者先后在ubuntu18.04和Ubuntu20.04中配置了MinkowskiEngine,现将遇到的一些问题进行存档。所述内容仅供参考,如有不对的地方也请大佬指正。
笔者个人建议直接采用conda安装,具体安装步骤可以参照官网链接: MinkowskiEngine.
有博主指出:要先安装pytorch再安装openblas-devel,而不是像官方这样,因为先安装openblas-devel,之后安装pytorch可能会报版本不兼容的错。但笔者安装openblas-devel后,原本环境中的pytorch失效,无奈只能卸载并重新安装的pytorch。因此建议先安装openblas-devel ,运行指令:
conda install openblas-devel -c anaconda # 安装依赖
再安装pytorch,运行指令:
conda install pytorch=1.9.0 torchvision cudatoolkit=11.1 -c pytorch -c nvidia
# -c anaconda/-c nvidia 表示从指定官网中下载,具体pytorch版本需要参照cuda版本
其次,在执行安装MinkowskiEngine指令之前,需要配置ninja库以防止出现问题2,而官方文档并未指明。
pip install torch ninja
安装完成之后测试一下是否能正常导入MinkowskiEngine:
python
>>> import MinkowskiEngine as ME
>>> print(ME.__version__)
0.5.4
Cudn10.1\10.2需要指定版本>=7.4.0且<8,因此个人建议7.5.0;Cudn>=11.0时,没有特定要求。因此在cudn10.X的环境下需要执行:
export CXX=g++-7
而在cudn11.X的环境下无需执行。
关于g++与gcc的配置与版本切换,可以参照下文 gcc/g++傻傻分不清?如何实现ubuntu多版本gcc/g++切换.
ninja是一种编译工具,类似cmake,这里很爱使用ninja对torch库进行编译。出现上述报错往往是因为torch 、torchvision 、ninja版本问题,torch版本与ninja版本不匹配,无法满足对torch库的编译。
解决办法:安装最新版本的ninja:
pip install torch ninja
参考博客:pytorch配置安装 ninja报错:ninja: build stopped: subcommand failed.(个人趟坑).
compute_86 是说当前 GPU 3090 的算力是 8.6,而当前 CUDA 11.0 不支持算力 8.6。
关于 GPU 算力和 CUDA 算力的关系是:CUDA 支持的最高算力要大于等于GPU本身的算力,CUDA 10.x 最高支持算力为 7.x,CUDA 11.x 最高支持算力为 8.x。
解决方案: 设置环境变量,降低算力要求。
# 打开配置文件
vi ~/.bashrc
# 在配置文件中添加如下一行
export TORCH_CUDA_ARCH_LIST="8.0" # 因为是CUDA11.0,对应的算力为8.0
# 保存后source更新
source ~/.bashrc
在更改算力时,有时需要把引号去掉,即:
export TORCH_CUDA_ARCH_LIST=8.0
原文链接:https://blog.csdn.net/qq_31347869/article/details/123348901
很多同学的最后报错信息为“raise RuntimeError(message) from e RuntimeError: Error compiling objects for extension” ,如下图所示,但其错误原因往往是因为第二条和第三条,可以上翻报错信息进行查看。
如果是个人电脑,CPU核数不够多的,安装之前先把并行安装的thread数降低,否则会导致进程卡死;即把setup.py文件内位于142行的MAX_COMPILATION_THREADS变量值从12改成4。若是实验室服务器配置比较好的可以忽略此步骤。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。