"docs/source/vscode:/vscode.git/clone" did not exist on "edb305584bda536ee2b35db9c3e0615b43a5ee02"
index.rst 7.78 KB
Newer Older
Minjie Wang's avatar
Minjie Wang committed
1
2
3
Install DGL
============

Gan Quan's avatar
Gan Quan committed
4
At this stage, we recommend installing DGL from ``conda`` or ``pip``.
Minjie Wang's avatar
Minjie Wang committed
5

Gan Quan's avatar
Gan Quan committed
6
7
8
9
10
11
System requirements
-------------------
Currently DGL is tested on

* Ubuntu 16.04
* macOS X
12
* Windows 10
Gan Quan's avatar
Gan Quan committed
13
14

DGL is expected to work on all Linux distributions later than Ubuntu 16.04, macOS X, and
15
Windows 10.
Gan Quan's avatar
Gan Quan committed
16
17
18
19
20
21
22
23

DGL also requires the Python version to be 3.5 or later.  Python 3.4 or less is not
tested, and Python 2 support is coming.

DGL supports multiple tensor libraries (e.g. PyTorch, MXNet) as backends; refer
`Working with different backends`_ for requirements on backends and how to select a
backend.

24
25
26
27
Starting from 0.3 DGL is separated into CPU and CUDA builds.  The builds share the
same Python package name, so installing DGL with CUDA 9 build after installing the
CPU build will overwrite the latter.

Gan Quan's avatar
Gan Quan committed
28
29
30
31
32
33
34
Install from conda
----------------------
One can either grab `miniconda <https://conda.io/miniconda.html>`_ or
the full `anaconda <https://www.anaconda.com/download/>`_ if ``conda``
has not been installed.

Once the conda environment is activated, run
Minjie Wang's avatar
Minjie Wang committed
35
36
37

.. code:: bash

38
39
40
   conda install -c dglteam dgl              # For CPU Build
   conda install -c dglteam dgl-cuda9.0      # For CUDA 9.0 Build
   conda install -c dglteam dgl-cuda10.0     # For CUDA 10.0 Build
Minjie Wang's avatar
Minjie Wang committed
41

Gan Quan's avatar
Gan Quan committed
42
43
Install from pip
----------------
44
For CPU builds, one can simply run the following command to install via ``pip``:
Minjie Wang's avatar
Minjie Wang committed
45
46
47

.. code:: bash

Gan Quan's avatar
Gan Quan committed
48
   pip install dgl
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
   
For CUDA builds, one needs to specify the URL:

.. code:: bash

   pip install https://s3.us-east-2.amazonaws.com/dgl.ai/<BUILD-DIR>/dgl-0.3-<PYTHON-ABI>-<PLATFORM>.whl
   
where ``<BUILD-DIR>``, ``<PYTHON-ABI>`` and ``<PLATFORM>`` can take either of the following values:

+------------+---------------------+
| Build Type | ``<BUILD>``         |
+============+=====================+
| CUDA 9.0   | ``wheels/cuda9.0``  |
+------------+---------------------+
| CUDA 10.0  | ``wheels/cuda10.0`` |
+------------+---------------------+

+------------------+------------------+
| Python Version   | ``<PYTHON-ABI>`` |
+==================+==================+
| Python 3.5       | ``cp35-cp35m``   |
+------------------+------------------+
| Python 3.6       | ``cp36-cp36m``   |
+------------------+------------------+
| Python 3.7       | ``cp37-cp37m``   |
+------------------+------------------+

+-------------+-----------------------+
| OS/Arch     | ``<PLATFORM>``        |
+=============+=======================+
| Linux x64   | ``manylinux1_x86_64`` |
+-------------+-----------------------+
| Windows x64 | ``win_amd64``         |
+-------------+-----------------------+

For instance, if one wants to install the CUDA 9.0 build on Linux, Python 3.5, then the command is

.. code:: bash

   pip install https://s3.us-east-2.amazonaws.com/dgl.ai/wheels/cuda9.0/dgl-0.3-cp35-cp35m-manylinux1_x86_64.whl
Gan Quan's avatar
Gan Quan committed
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106

Working with different backends
-------------------------------

Currently DGL supports PyTorch and MXNet.

Switching backend
`````````````````

The backend is controlled by ``DGLBACKEND`` environment variable, which defaults to
``pytorch``.  Currently it supports the following values:

+---------+---------+--------------------------------------------------+
| Value   | Backend | Memo                                             |
+=========+=========+==================================================+
| pytorch | PyTorch | Requires 0.4.1 or later; see                     |
|         |         | `official website <https://pytorch.org>`_        |
+---------+---------+--------------------------------------------------+
Da Zheng's avatar
Da Zheng committed
107
108
109
| mxnet   | MXNet   | Requires MXNet 1.5; since MXNet 1.5 isn't        |
|         |         | officially released, please run the following    |
|         |         | command to install the MXNet nightly build:      |
Gan Quan's avatar
Gan Quan committed
110
111
112
|         |         |                                                  |
|         |         | .. code:: bash                                   |
|         |         |                                                  |
Da Zheng's avatar
Da Zheng committed
113
|         |         |    pip install mxnet==1.5.0b20190705             |
114
115
116
117
118
|         |         |                                                  |
|         |         | or cuda version (e.g. for cuda 9.0)              |
|         |         |                                                  |
|         |         | .. code:: bash                                   |
|         |         |                                                  |
Da Zheng's avatar
Da Zheng committed
119
|         |         |    pip install mxnet-cu90==1.5.0b20190605        |
120
|         |         |                                                  |
Gan Quan's avatar
Gan Quan committed
121
122
123
124
+---------+---------+--------------------------------------------------+
| numpy   | NumPy   | Does not support gradient computation            |
+---------+---------+--------------------------------------------------+

125
126
.. _install-from-source:

Gan Quan's avatar
Gan Quan committed
127
128
129
130
131
Install from source
-------------------
First, download the source files from GitHub:

.. code:: bash
Minjie Wang's avatar
Minjie Wang committed
132

Haibin Lin's avatar
Haibin Lin committed
133
   git clone --recursive https://github.com/dmlc/dgl.git
Minjie Wang's avatar
Minjie Wang committed
134

Gan Quan's avatar
Gan Quan committed
135
One can also clone the repository first and run the following:
Minjie Wang's avatar
Minjie Wang committed
136
137
138

.. code:: bash

Gan Quan's avatar
Gan Quan committed
139
140
141
142
143
   git submodule init
   git submodule update

Linux
`````
Minjie Wang's avatar
Minjie Wang committed
144

Gan Quan's avatar
Gan Quan committed
145
146
Install the system packages for building the shared library, for Debian/Ubuntu
users, run:
Minjie Wang's avatar
Minjie Wang committed
147
148
149

.. code:: bash

Gan Quan's avatar
Gan Quan committed
150
151
   sudo apt-get update
   sudo apt-get install -y build-essential build-dep python3-dev make cmake
Minjie Wang's avatar
Minjie Wang committed
152

Gan Quan's avatar
Gan Quan committed
153
For Fedora/RHEL/CentOS users, run:
Minjie Wang's avatar
Minjie Wang committed
154

Gan Quan's avatar
Gan Quan committed
155
156
157
.. code:: bash

   sudo yum install -y gcc-c++ python3-devel make cmake
Minjie Wang's avatar
Minjie Wang committed
158

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
Build the shared library. Use the configuration template ``cmake/config.cmake``.
Copy it to either the project directory or the build directory and change the
configuration as you wish. For example, change ``USE_CUDA`` to ``ON`` will
enable cuda build. You could also pass ``-DKEY=VALUE`` to the cmake command
for the same purpose.

- CPU-only build:
   .. code:: bash

      mkdir build
      cd build
      cmake ..
      make -j4
- Cuda build:
   .. code:: bash

      mkdir build
      cd build
      cmake -DUSE_CUDA=ON ..
      make -j4

Finally, install the Python binding.
Minjie Wang's avatar
Minjie Wang committed
181
182
183

.. code:: bash

Gan Quan's avatar
Gan Quan committed
184
185
186
187
188
189
190
191
   cd ../python
   python setup.py install

macOS
`````

Installation on macOS is similar to Linux. But macOS users need to install
building tools like clang, GNU Make, cmake first.
Minjie Wang's avatar
Minjie Wang committed
192

Gan Quan's avatar
Gan Quan committed
193
194
Tools like clang and GNU Make are packaged in **Command Line Tools** for macOS. To
install:
Minjie Wang's avatar
Minjie Wang committed
195
196
197

.. code:: bash

Gan Quan's avatar
Gan Quan committed
198
   xcode-select --install
Minjie Wang's avatar
Minjie Wang committed
199

Gan Quan's avatar
Gan Quan committed
200
201
202
203
204
To install other needed packages like cmake, we recommend first installing
**Homebrew**, which is a popular package manager for macOS. Detailed
instructions can be found on its `homepage <https://brew.sh/>`_.

After installation of Homebrew, install cmake by:
Minjie Wang's avatar
Minjie Wang committed
205
206
207

.. code:: bash

Gan Quan's avatar
Gan Quan committed
208
   brew install cmake
Minjie Wang's avatar
Minjie Wang committed
209

Gan Quan's avatar
Gan Quan committed
210
211
212
213
Then go to root directory of DGL repository, build shared library and
install Python binding for DGL:

.. code:: bash
Minjie Wang's avatar
Minjie Wang committed
214

Gan Quan's avatar
Gan Quan committed
215
216
217
218
219
220
   mkdir build
   cd build
   cmake ..
   make -j4
   cd ../python
   python setup.py install
Minjie Wang's avatar
Minjie Wang committed
221

Gan Quan's avatar
Gan Quan committed
222
223
We tested installation on macOS X with clang 10.0.0, GNU Make 3.81, and cmake
3.13.1.
Minjie Wang's avatar
Minjie Wang committed
224

Gan Quan's avatar
Gan Quan committed
225
226
Windows
```````
Minjie Wang's avatar
Minjie Wang committed
227

Gan Quan's avatar
Gan Quan committed
228
229
230
Currently Windows source build is tested with CMake and MinGW/GCC.  We highly recommend
using CMake and GCC from `conda installations <https://conda.io/miniconda.html>`_.  To
do so, run
Minjie Wang's avatar
Minjie Wang committed
231
232
233

.. code:: bash

Gan Quan's avatar
Gan Quan committed
234
235
236
237
238
239
240
241
   conda install cmake m2w64-gcc m2w64-make

Then build the shared library and install the Python binding:

.. code::

   md build
   cd build
242
   cmake -DCMAKE_CXX_FLAGS="-DDMLC_LOG_STACK_TRACE=0 -DDGL_EXPORTS" -DCMAKE_MAKE_PROGRAM=mingw32-make .. -G "MSYS Makefiles"
Gan Quan's avatar
Gan Quan committed
243
244
245
   mingw32-make
   cd ..\python
   python setup.py install
Quan (Andy) Gan's avatar
Quan (Andy) Gan committed
246
247
248
249
250
251
252
253
254
255
256
257
258

We also support building DGL with MSBuild.  With `MS Build Tools <https://go.microsoft.com/fwlink/?linkid=840931>`_
and `CMake on Windows <https://cmake.org/download/>`_ installed, run the following
in VS2017 x64 Native tools command prompt:

.. code::

   MD build
   CD build
   cmake -DCMAKE_CXX_FLAGS="/DDGL_EXPORTS" -DCMAKE_CONFIGURATION_TYPES="Release" .. -G "Visual Studio 15 2017 Win64"
   msbuild dgl.sln
   cd ..\python
   python setup.py install