给的代码需要1.8的pytorch,相应的cudatoolkit是11.1的,但服务器上已经装的cuda各种运行库的版本是12的,在装detectron时报错装不下去,因此尝试在conda环境中安装11版本的nvcc等运行库,最终成功安装。
后面重新装的时候conda软件源的顺序会导致安装失败,我按下面的软件源安装就正常,但之后把pkgs/main放到最前面结果就报错了,很奇怪。对比conda list有些包的版本不一样了,有些包的源也不一样,试着改包的版本,但没效果,后来调整了源之后重新再装过就正常了。

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch-lts
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r

需要安装的库如下:

conda create -n detic python=3.8.19
conda install pytorch==1.8.0 torchvision==0.9.0 cudatoolkit=11.1
conda install gcc=8.5.0 gxx=8.5.0 cuda-nvcc=11 cuda-cccl=11 \
cuda-cudart=11 cuda-cudart-dev=11 libcublas=11 libcublas-dev=11\
 libcusparse-dev=12 libcusolver-dev=11 libnvjitlink-dev=12 -c nvidia

我装好这些库就能够成功编译安装detectron2库了。


下面是编译detectron库碰到的报错,以及找到的需要安装的相应库(没有完整的记录,只是事后回忆,不一定准确):

一、gcc版本错误

gcc versions later than 6 are not supported!
conda install gcc=8.5.0 gxx=8.5.0

提示的是gcc不能大于6,但我装了5.4.0又有其它的报错。
然而conda又搜不到6的gcc,于是装了8.5.0,结果就没有关于gcc的报错了。
gcc和g++版本得匹配,conda装gcc时不会自动装g++。
g++原来用gxx来表示了。

二、找不到头文件或链接库

一般找不到就搜对应的包安装就可以了。

cc1plus: fatal error: cuda_runtime.h: No such file or directory
conda install cuda-cudart=11 cuda-cudart-dev=11 -c nvidia
nvcc fatal   : Unknown option '-generate-dependencies-with-compile'
conda install cuda-nvcc=11 -c nvidia ##这个不确定,但如果提示的是调用nvcc时出的问题,应该是版本不对吧。
ImportError: libnvJitLink.so.12: cannot open shared object file
conda install libnvjitlink-dev=12 -c nvidia
fatal error: cublas_v2.h: No such file or directory
conda install libcublas=11 libcublas-dev=11 -c nvidia
fatal error: cusparse.h: No such file or directory
ImportError: libcusparse.so.12: cannot open shared object file: No such file or directory
conda install libcusparse-dev=12 -c nvidia

因为我一开始都是默认装11的,然后11的没有libcusparse.so.12,然后我就装12的,然后又会把libcusparse.so.11给删掉,导致又提示11的没有。于是只能自己到目录里添加软链接。

cd ~/.conda/envs/det/lib/ ##det换成自己的conda虚拟环境的名字
ln -s libcusparse.so.11.3.0.10 libcusparse.so.11

其实直接先装12的包可能就没有问题了。


可能有方法可以一次过完整装完所有需要的库,只是我没找到。


最后列一下conda下安装的相关库(应该就这些吧?)。

python                    3.8.19          hd12c33a_0_cpython    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
cuda-cccl                 11.8.89                       0    nvidia
cuda-cudart               11.8.89                       0    nvidia
cuda-cudart-dev           11.8.89                       0    nvidia
cuda-nvcc                 11.8.89                       0    nvidia
libcublas                 11.11.3.6                     0    nvidia
libcublas-dev             11.11.3.6                     0    nvidia
libcusolver               11.6.1.9                      0    nvidia
libcusolver-dev           11.6.1.9                      0    nvidia
libcusparse               12.3.1.170                    0    nvidia
libcusparse-dev           12.3.1.170                    0    nvidia
libnvjitlink              12.4.127                      0    nvidia
libnvjitlink-dev          12.4.127                      0    nvidia
cudatoolkit               11.1.1              hb139c0e_13    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
gcc                       8.5.0               h143be6b_10    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
gcc_impl_linux-64         8.5.0               hef569ad_19    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
gxx                       8.5.0               h143be6b_10    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
gxx_impl_linux-64         8.5.0               hef569ad_19    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libgcc-devel_linux-64     8.5.0               ha5d7ed8_19    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libstdcxx-devel_linux-64  8.5.0               ha5d7ed8_19    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
Logo

欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。

更多推荐