一、roreg复现
[github链接][参考]
1.1 报错1
Traceback (most recent call last):
File "setup.py", line 52, in <module>
import torch
File "/home/w/anaconda3/envs/pty_roreg/lib/python3.7/site-packages/torch/__init__.py", line 189, in <module>
_load_global_deps()
File "/home/w/anaconda3/envs/pty_roreg/lib/python3.7/site-packages/torch/__init__.py", line 142, in _load_global_deps
ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL)
File "/home/w/anaconda3/envs/pty_roreg/lib/python3.7/ctypes/__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /home/w/anaconda3/envs/pty_roreg/lib/python3.7/site-packages/torch/lib/../../../../libcublas.so.11: undefined symbol: free_gemm_select, version libcublasLt.so.11
CUDA和cuDNN版本与PyTorch版本兼容问题:
查看linux系统使用的cuda版本[参考]: gedit ~/.bashrc
linux支持多版本cuda,如需切换cuda版本,查看/usr/local/下有那些版本,然后按上面格式修改bashrc,然后 source ~./bashrc刷新环境
或者nvidia的cuda compiler driver版本信息 nvcc --version
cuda 驱动是向下兼容的,如果你的驱动版本高,是兼容更低版本的 cuda toolkit 版本的[参考],那么我选择cudatoolkit时选择11.6以下的就可以,但是有人建议使用cuda11.1版本[MinkowskiEngine]
cuDNN与CUDA版本要对应
CUDA是NVIDIA推出的用于自家GPU的并行计算框架,CUDA的本质是一个工具包(ToolKit)
cuDNN是一个SDK,是一个专门用于神经网络的加速包。
安装CUDA 11.1,实现多版本切换[参考],然后重新创建环境[参考][参考]
conda create -n roreg python=3.8
conda activate roreg
conda install pytorch=1.9.0 torchvision cudatoolkit=11.1 -c pytorch -c nvidia #安装pytorch
pip install ninja #官方文档没说,这里依赖还需要安装ninja库
conda install openblas-devel -c anaconda #安装依赖
cd utils/MinkowskiEngine
export CUDA_HOME=/usr/local/cuda-11.1 #We have checked cuda-11.1.
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas
cd ../..
requirements.txt中有部分包已经在上面安装,所以手动安装requirements.txt中没有安装的包