0%

PyTorch3D_cpu_cuda__3步安装指南

自动摘要: 系统环境: Windows10+Python3.9+cuda11.6+VisualStudio2019+PyTorch13.1 ……..

系统环境:

  • Windows 10 + Python 3.9 + cuda 11.6 + Visual Studio 2019 + PyTorch 13.1
    • 因为window版需要cuda的nvcc,所以需要从NVIDIA官网下载2GB的cuda toolkit,conda安装的只是cuda运行库,不是工具包。

    • 因为需要编译文件,所以需要vs的cl.exe, vs2019只安装编译工具:https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/history ,安装后选择C++开发,语言里勾选英文。

  • 如果是**linux(无论是cpu/cuda)**,直接运行以下命令即可
    1
    conda install pytorch3d -c pytorch3d

安装步骤:

  1. 按照PyTorch官网 https://pytorch.org/ 的说明,下载与系统cuda版本对应的PyTorch。

    1
    2
    3
    conda create -n pytorch3d python=3.9 
    conda activate pytorch3d
    conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia
  2. 参考 PyTorch3D 说明文档https://github.com/facebookresearch/pytorch3d/blob/main/INSTALL.md,进行配置。

1
conda install -c fvcore -c iopath -c conda-forge fvcore iopath		
1
pip install "git+https://github.com/facebookresearch/pytorch3d.git"	
  1. 安装完成,如图

如遇到错误,请看下文:


  1. 可能有以下报错
    1. 解决方法:https://github.com/facebookresearch/pytorch3d/issues/1398,原因cuda版本建议cuda11.3或者cuda11.7,cuda11.6就会报这个错。在“C:\Users\sindre\AppData\Local\Temp\pip-req-build-senb7u_k\pytorch3d\csrc\marching_cubes”(根据pip安装在哪里,自己修改对应路径)替换同名marching_cubes.cu.txt(记得去除尾缀txt)

    2. 解决方法:

      1. 网络问题,可以添加steam++,加速git访问;
      2. 也可以换成国内镜像加速下载:
1
pip install "git+https://kgithub.com/facebookresearch/pytorch3d.git"

如果要离线安装,请看下文:

  • 如果要离线编译,则按照以下进行编译
    1. 注意(低于cuda11.7需安装cub依赖):
      1. 下载NVIDIA CUB:https://github.com/NVIDIA/cub/releases,然后解压。我从Release里下载了0.17.2版本。
      2. 设置环境变量 CUB_HOME=解压目录。可以在cmd里执行 set CUB_HOME=解压目录,也可以在系统设置里弄。
      3. 下载源码包https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.2,然后运行
1
2
cd pytorch3d
python3 setup.py install
     - 如果编译的时候报了以下的错误(原因是你的cuda已经含有cub,要么重新取消CUB_HOME环境变量,要么强制安装),**下面是强制安装方法**
1
2
3
fatal error C1189: #error:  The version of CUB in your include path is not compatible with this release of Thrust.
CUB is now included in the CUDA Toolkit, so you no longer need to use your own checkout of CUB.
Define THRUST_IGNORE_CUB_VERSION_CHECK to ignore this.
     - 强制修改cuda源文件config.h(在C盘cuda工具包下),找到这一部分
1
2
3
4
5
6
7
#ifndef THRUST_IGNORE_CUB_VERSION_CHECK //添加这行,代表不使用内置cub,注意ifndef 需要于endif配对
#include <thrust/version.h>
#include <cub/util_namespace.cuh> // This includes <cub/version.cuh> in newer releases.
#if THRUST_VERSION != CUB_VERSION
#error The version of CUB in your include path is not compatible with this release of Thrust. CUB is now included in the CUDA Toolkit, so you no longer need to use your own checkout of CUB. Define THRUST_IGNORE_CUB_VERSION_CHECK to ignore this.
#endif
#endif
  1. 测试:
     1. 安装以下依赖,供测试程序运行,不然容易造成测试不通过;
1
2
3
conda install jupyter
pip install scikit-image matplotlib imageio plotly opencv-python black usort flake8 flake8-bugbear flake8-comprehensions
python -m unittest discover -v -s tests -t .

欢迎关注我的其它发布渠道