INSTALL.md 4.94 KB
Newer Older
facebook-github-bot's avatar
facebook-github-bot committed
1
2
3
4
5
6
7
# Installation


## Requirements

### Core library

8
The core library is written in PyTorch. Several components have underlying implementation in CUDA for improved performance. A subset of these components have CPU implementations in C++/Pytorch. It is advised to use PyTorch3D with GPU support in order to use all the features.
facebook-github-bot's avatar
facebook-github-bot committed
9

10
- Linux or macOS or Windows
11
12
13
- Python 3.6, 3.7 or 3.8
- PyTorch 1.4, 1.5.0, 1.5.1 or 1.6.0
- torchvision that matches the PyTorch installation. You can install them together as explained at pytorch.org to make sure of this.
facebook-github-bot's avatar
facebook-github-bot committed
14
15
- gcc & g++ ≥ 4.9
- [fvcore](https://github.com/facebookresearch/fvcore)
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
16
- If CUDA is to be used, use at least version 9.2.
Christoph Lassner's avatar
Christoph Lassner committed
17
- If CUDA is to be used, the CUB library must be available. Starting from CUDA 11, CUB is part of CUDA. If you're using an earlier CUDA version and are not using conda, download the CUB library from https://github.com/NVIDIA/cub/releases and unpack it to a folder of your choice. Define the environment variable CUB_HOME before building and point it to the directory that contains `CMakeLists.txt` for CUB.
facebook-github-bot's avatar
facebook-github-bot committed
18

Christoph Lassner's avatar
Christoph Lassner committed
19
The dependencies can be installed by running:
facebook-github-bot's avatar
facebook-github-bot committed
20
```
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
21
conda create -n pytorch3d python=3.8
facebook-github-bot's avatar
facebook-github-bot committed
22
conda activate pytorch3d
23
conda install -c pytorch pytorch=1.6.0 torchvision cudatoolkit=10.2
Haoqi Fan's avatar
Haoqi Fan committed
24
conda install -c conda-forge -c fvcore fvcore
Christoph Lassner's avatar
Christoph Lassner committed
25
conda install -c cub
facebook-github-bot's avatar
facebook-github-bot committed
26
27
28
29
```

### Tests/Linting and Demos

Christoph Lassner's avatar
Christoph Lassner committed
30
For developing on top of PyTorch3D or contributing, you will need to run the linter and tests. If you want to run any of the notebook tutorials as `docs/tutorials` or the examples in `docs/examples` you will also need matplotlib and OpenCV.
facebook-github-bot's avatar
facebook-github-bot committed
31
32
33
34
35
36
37
38
- scikit-image
- black
- isort
- flake8
- matplotlib
- tdqm
- jupyter
- imageio
39
- plotly
Christoph Lassner's avatar
Christoph Lassner committed
40
- opencv-python
facebook-github-bot's avatar
facebook-github-bot committed
41
42
43

These can be installed by running:
```
Christoph Lassner's avatar
Christoph Lassner committed
44
# Demos and examples
facebook-github-bot's avatar
facebook-github-bot committed
45
conda install jupyter
Christoph Lassner's avatar
Christoph Lassner committed
46
pip install scikit-image matplotlib imageio plotly opencv-python
facebook-github-bot's avatar
facebook-github-bot committed
47
48

# Tests/Linting
49
pip install black 'isort<5' flake8 flake8-bugbear flake8-comprehensions
facebook-github-bot's avatar
facebook-github-bot committed
50
51
```

52
## Installing prebuilt binaries for PyTorch3D
facebook-github-bot's avatar
facebook-github-bot committed
53
54
After installing the above dependencies, run one of the following commands:

55
### 1. Install with CUDA support from Anaconda Cloud, on Linux only
facebook-github-bot's avatar
facebook-github-bot committed
56
57
58

```
# Anaconda Cloud
Yun Chen's avatar
Yun Chen committed
59
conda install pytorch3d -c pytorch3d
facebook-github-bot's avatar
facebook-github-bot committed
60
61
```

Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
62
63
64
65
66
Or, to install a nightly (non-official, alpha) build:
```
# Anaconda Cloud
conda install pytorch3d -c pytorch3d-nightly
```
67
68
### 2. Install from PyPI, on Linux and Mac
This works with pytorch 1.6.0 only.
69
70
71
```
pip install pytorch3d
```
72
On Linux this has support for CUDA 10.1. On Mac this is CPU-only.
73
74

## Building / installing from source.
75
CUDA support will be included if CUDA is available in pytorch or if the environment variable
76
`FORCE_CUDA` is set to `1`.
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
77

78
### 1. Install from GitHub
facebook-github-bot's avatar
facebook-github-bot committed
79
80
81
```
pip install 'git+https://github.com/facebookresearch/pytorch3d.git'
```
82
83
84
85
To install using the code of the released version instead of from the main branch, use the following instead.
```
pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'
```
facebook-github-bot's avatar
facebook-github-bot committed
86

Christoph Lassner's avatar
Christoph Lassner committed
87
88
For CUDA builds with versions earlier than CUDA 11, set `CUB_HOME` before building as described above.

89
**Install from Github on macOS:**
90
Some environment variables should be provided, like this.
91
92
93
94
95
```
MACOSX_DEPLOYMENT_TARGET=10.14 CC=clang CXX=clang++ pip install 'git+https://github.com/facebookresearch/pytorch3d.git'
```

### 2. Install from a local clone
facebook-github-bot's avatar
facebook-github-bot committed
96
97
98
99
```
git clone https://github.com/facebookresearch/pytorch3d.git
cd pytorch3d && pip install -e .
```
Christoph Lassner's avatar
Christoph Lassner committed
100
To rebuild after installing from a local clone run, `rm -rf build/ **/*.so` then `pip install -e .`. You often need to rebuild pytorch3d after reinstalling PyTorch. For CUDA builds with versions earlier than CUDA 11, set `CUB_HOME` before building as described above.
facebook-github-bot's avatar
facebook-github-bot committed
101
102
103

**Install from local clone on macOS:**
```
104
MACOSX_DEPLOYMENT_TARGET=10.14 CC=clang CXX=clang++ pip install -e .
facebook-github-bot's avatar
facebook-github-bot committed
105
```
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142

**Install from local clone on Windows:**

If you are using pre-compiled pytorch 1.4 and torchvision 0.5, you should make the following changes to the pytorch source code to successfully compile with Visual Studio 2019 (MSVC 19.16.27034) and CUDA 10.1.

Change python/Lib/site-packages/torch/include/csrc/jit/script/module.h

L466, 476, 493, 506, 536
```
-static constexpr *
+static const *
```
Change python/Lib/site-packages/torch/include/csrc/jit/argument_spec.h

L190
```
-static constexpr size_t DEPTH_LIMIT = 128;
+static const size_t DEPTH_LIMIT = 128;
```

Change python/Lib/site-packages/torch/include/pybind11/cast.h

L1449
```
-explicit operator type&() { return *(this->value); }
+explicit operator type& () { return *((type*)(this->value)); }
```

After patching, you can go to "x64 Native Tools Command Prompt for VS 2019" to compile and install
```
cd pytorch3d
python3 setup.py install
```
After installing, verify whether all unit tests have passed
```
cd tests
python3 -m unittest discover -p *.py
Jeremy Reizenstein's avatar
Jeremy Reizenstein committed
143
```
Nikhila Ravi's avatar
Nikhila Ravi committed
144
145
146
147
148
149

# FAQ

### Can I use Docker?

We don't provide a docker file but see [#113](https://github.com/facebookresearch/pytorch3d/issues/113) for a docker file shared by a user (NOTE: this has not been tested by the PyTorch3D team).