MinkowskiEngine安装(CUDA11.8+torch2.0.1+RTX4070TI)

发布于:2025-02-22 ⋅ 阅读:(14) ⋅ 点赞:(0)

1、背景

1)因为项目要用这个库:MinkowskiEngine,Minkowski Engine — MinkowskiEngine 0.5.3 documentation

然后就用了之前安装好 MinkowskiEngine 的torch1.8.1,cuda11.1的环境。

2)自己的代码出现cuda不支持torch用gpu进行矩阵运算的情况。

现象是可以跑大部分程序,查看GPU使用情况也会显示大部分显存被用着。

但torch.det/inverse等计算矩阵就报错:

MAGMA error: function-specific error, see documentation (10) in magma_sgetrf_gpu_expert at /opt/conda/conda-bld/magma-cuda111_1605822518874/work/src/sgetrf_gpu.cpp:126

inverse_matrix = torch.inverse(matrix)

RuntimeError: cusolver error: 7, when calling cusolverDnCreate(handle)

然后查了不少,装个依赖库和magma库解决不了问题。

移到cpu上不报错,但这个项目类似计算不少,还是从根源解决问题吧。

然后大部分都说是cuda和torch版本不匹配。

然后我系统装了12.1和11.1的cuda,改为12.1的时候的虚拟环境是不报错的。但MinkowskiEngine 不能支持太高版本的cuda,目前我能查到的是11.8装成功的案例。

最后查到了一个东西,说明就是cuda11.1版本太低了。

https://en.wikipedia.org/wiki/CUDA#GPUs_supported

总结就是40系的显卡,最低装CUDA11.8

2、修改过程

安装CUDA11.8,

可参考https://blog.csdn.net/2201_75663877/article/details/145207222

更新旧版本选择no,更新已有软连接选择no。不装driver,不选最后一项kernel(这个是加速计算的,但选了会报错)。

这个时候系统有好几个版本的CUDA了,使用update-alternatives工具管理,update-alternatives链接到/usr/local/cuda,update-alternatives加进来所有cuda,这样每次改alternative的选择就可以了。gcc我也只如此管理https://blog.csdn.net/SimpleForest/article/details/144018234。

CUDA的环境变量只设置/usr/local/cuda就够了。

安装好后创建虚拟环境过程不再赘述。

3、安装准备

和cuda版本匹配的gpu版的torch等。

说明一下的是,我在虚拟环境中和base中都装了OpenBLAS和ninja,用户系统环境之前装过。因为用到了,但不知道具体用的哪里的。但不想在这费功夫。

4、安装过程及问题解决

MinkowskiEngine在cuda11.8中成功安装_minkowskiengine 11.8-CSDN博客

以上过程很简单,但实际中一般都会报错。

我报错,查GPT好像是CUDA的问题,但虚拟环境我都设置了,并且设置对了。前人也能在11.8上装,torch是gpu版且与cuda版本也都对应。

然后去查源文件。打开setup.py

比较清楚:--cuda_home都是可以编译的时候在终端输入的,,我检查了其它设置没啥问题,也不用特意设置,

if not (CUDA_HOME is False): # False when not set, str otherwise

    print(f"Using CUDA_HOME={CUDA_HOME}")

这个安装过程终端没有打印,说明还是没get到CUDA_HOME,原因未知

然后安装命令最后手动加上了CUDA_HOME路径

python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas --cuda_home=/usr/local/cuda

如果电脑一般,中间可能会闪退,按照其它教程改小140多行的MAX_COMPILATION_THREADS = 12就行,我这里改为4.

然后虽然会有很多warning,最后还是安成了,python测试暂时没问题。

2025年2月20