We have outsourced a lot of functionality of PyTorch Geometric to other packages, which needs to be installed in advance. These packages come with their own CPU and GPU kernel implementations based on the newly introduced C++/CUDA extensions in PyTorch 0.4.0.
Please follow the steps below for a successful installation:
Ensure that at least PyTorch 1.0.0 is installed:
$ python -c "import torch; print(torch.__version__)" >>> 1.0.0
Ensure CUDA is setup correctly (optional):
Check if PyTorch is installed with CUDA support:
$ python -c "import torch; print(torch.cuda.is_available())" >>> True
Add CUDA to
$CPATH(note that your actual CUDA path may vary from
$ PATH=/usr/local/cuda/bin:$PATH $ echo $PATH >>> /usr/local/cuda/bin:... $ CPATH=/usr/local/cuda/include:$CPATH $ echo $CPATH >>> /usr/local/cuda/include:...
Add CUDA to
$LD_LIBRARY_PATHon Linux and to
$DYLD_LIBRARY_PATHon macOS (note that your actual CUDA path may vary from
$ LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH $ echo $LD_LIBRARY_PATH >>> /usr/local/cuda/lib64:... $ DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH $ echo $DYLD_LIBRARY_PATH >>> /usr/local/cuda/lib:...
nvccis accessible from terminal:
$ nvcc --version >>> 10.0
Ensure that PyTorch and system CUDA versions match:
$ python -c "import torch; print(torch.version.cuda)" >>> 10.0 $ nvcc --version >>> 10.0
Install all needed packages:
$ pip install --verbose --no-cache-dir torch-scatter $ pip install --verbose --no-cache-dir torch-sparse $ pip install --verbose --no-cache-dir torch-cluster $ pip install --verbose --no-cache-dir torch-spline-conv (optional) $ pip install torch-geometric
In rare cases, CUDA or Python path problems can prevent a successful installation.
pip may even signal a successful installation, but runtime errors complain about missing modules, .e.g.,
No module named 'torch_*.*_cuda', or execution simply crashes with
Segmentation fault (core dumped).
We collected a lot of common installation errors in the Frequently Asked Questions subsection.
In case the FAQ does not help you in solving your problem, please create an issue.
You should additionally verify that your CUDA is set up correctly by following the official installation guide, and that the official extension example runs on your machine.
C++/CUDA Extensions on macOS¶
In order to compile CUDA extensions on macOS, you need to replace the call
def spawn(self, cmd): spawn(cmd, dry_run=self.dry_run)
import subprocess def spawn(self, cmd): subprocess.call(cmd)
Frequently Asked Questions¶
ImportError: ***: cannot open shared object file: No such file or directory: Add CUDA to your
undefined symbol:, e.g.
_ZN2at6detail20DynamicCUDAInterface10set_deviceE: Clear the pip cache and reinstall the respective package (see Issue#7). On macOS, it may help to install clang compilers via conda (see Issue#18):
$ conda install -y clang_osx-64 clangxx_osx-64 gfortran_osx-64
Unable to import
*_cuda: You need to
import torchfirst before importing any of the extension packages (see Issue#6).
return __and_<is_constructible<_Elements, _UElements&&>...>::value: Ensure that your
gccversion is at least 4.9 (and below 6) (see Issue#25b). You will also need to reinstall PyTorch because
gccversions must be consistent across all PyTorch packages.
file not recognized: file format not recognized: Clean the repository and temporarily rename Anaconda’s
ldlinker (see Issue#16683).
undefined symbol: __cudaPopCallConfiguration: Ensure that your PyTorch CUDA version and system CUDA version match (see Issue#19):
$ python -c "import torch; print(torch.version.cuda)" $ nvcc --version
undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationERKSs: The
std::stringabi does not match between building PyTorch and its extensions. This is fixable by building extensions with
-D_GLIBCXX_USE_CXX11_ABI=1or building PyTorch from source (see this PyTorch thread).
'gcc' failed with exit status 1: Install the respective packages by using the following environment variables (see Issue#21):
$ MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install
ld: warning: directory not found for option '-L/usr/local/cuda/lib64'and
ld: library not found for -lcudart: Symlink
$ sudo ln -s /usr/local/cuda/lib /usr/local/cuda/lib64
The version of the host compiler ('Apple clang') is not supported: Downgrade your command line tools (see this StackOverflow thread) with the respective version annotated in the CUDA Installation Guide for Mac (Section 1.1) for your specific CUDA version. You can download previous command line tool versions here.