安装和设置
系统要求
DGL 支持以下操作系统
Ubuntu 20.04+
CentOS 8+ (尽管需要 gcc 9)
RHEL 8+
macOS X
Windows 10
DGL 需要 Python 版本 3.7, 3.8, 3.9, 3.10, 3.11。
DGL 支持多种张量库作为后端,例如 PyTorch, MXNet。有关后端要求以及如何选择后端,请参阅 使用不同的后端。
从 0.3 版本开始,DGL 被分离为 CPU 和 CUDA 构建版本。这些构建版本共享相同的 Python 包名。如果您在安装 CPU 构建版本后安装 CUDA 9 构建版本的 DGL,则 CPU 构建版本将被覆盖。
从 Conda 或 Pip 安装
我们推荐使用 conda
或 pip
安装 DGL。请查阅 入门页面 上的说明。
注意
对于 Windows 用户:您需要安装 Visual C++ 2015 可再发行组件。
从源代码安装
从 GitHub 下载源文件。
git clone --recurse-submodules https://github.com/dmlc/dgl.git
(可选) 先克隆仓库,然后运行以下命令
git submodule update --init --recursive
Linux
安装用于构建共享库的系统软件包。对于 Debian 和 Ubuntu 用户,运行
sudo apt-get update
sudo apt-get install -y build-essential python3-dev make cmake
对于 Fedora/RHEL/CentOS 用户,运行
sudo yum install -y gcc-c++ python3-devel make cmake
要创建用于 CPU 开发的 Conda 环境,运行
bash script/create_dev_conda_env.sh -c
要创建用于 GPU 开发的 Conda 环境,运行
bash script/create_dev_conda_env.sh -g 11.7
要进一步配置 conda 环境,运行以下命令查看更多详细信息
bash script/create_dev_conda_env.sh -h
要构建用于 CPU 开发的共享库,运行
bash script/build_dgl.sh -c
要构建用于 GPU 开发的共享库,运行
bash script/build_dgl.sh -g
要进一步构建共享库,运行以下命令查看更多详细信息
bash script/build_dgl.sh -h
最后,安装 Python 绑定。
cd python
python setup.py install
# Build Cython extension
python setup.py build_ext --inplace
macOS
在 macOS 上的安装与 Linux 类似。但 macOS 用户需要先安装 clang、GNU Make 和 cmake 等构建工具。这些安装步骤在 macOS X 上进行了测试,使用的版本是 clang 10.0.0、GNU Make 3.81 和 cmake 3.13.1。
clang 和 GNU Make 等工具打包在 macOS 的 命令行工具 中。要安装,运行以下命令
xcode-select --install
要安装 cmake 等其他所需软件包,我们建议首先安装 Homebrew,它是 macOS 上流行的软件包管理器。要了解更多信息,请访问 Homebrew 网站。
安装 Homebrew 后,安装 cmake。
brew install cmake
进入 DGL 仓库根目录,构建共享库,然后安装 DGL 的 Python 绑定。
mkdir build
cd build
cmake -DUSE_OPENMP=off -DUSE_LIBXSMM=OFF ..
make -j4
cd ../python
python setup.py install
# Build Cython extension
python setup.py build_ext --inplace
Windows
您可以使用 MSBuild 构建 DGL。安装 MS Build Tools 和 Windows 上的 CMake 后,在 VS2019 x64 Native tools command prompt 中运行以下命令。
仅限 CPU 构建
MD build CD build cmake -DCMAKE_CXX_FLAGS="/DDGL_EXPORTS" -DCMAKE_CONFIGURATION_TYPES="Release" -DDMLC_FORCE_SHARED_CRT=ON .. -G "Visual Studio 16 2019" msbuild dgl.sln /m CD ..\python python setup.py install
CUDA 构建
MD build CD build cmake -DCMAKE_CXX_FLAGS="/DDGL_EXPORTS" -DCMAKE_CONFIGURATION_TYPES="Release" -DDMLC_FORCE_SHARED_CRT=ON -DUSE_CUDA=ON .. -G "Visual Studio 16 2019" msbuild dgl.sln /m CD ..\python python setup.py install
使用不同的后端
DGL 支持 PyTorch、MXNet 和 Tensorflow 后端。DGL 将根据以下选项选择后端(优先级从高到低)
使用
DGLBACKEND
环境变量您可以使用
DGLBACKEND=[BACKEND] python gcn.py ...
来指定后端或者使用
export DGLBACKEND=[BACKEND]
设置全局环境变量
修改 “~/.dgl” 下的
config.json
文件您可以使用
python -m dgl.backend.set_default_backend [BACKEND]
设置默认后端
当前 BACKEND 可从 mxnet, pytorch, tensorflow 中选择。
PyTorch 后端
将 DGLBACKEND
导出为 pytorch
以指定 PyTorch 后端。所需的 PyTorch 版本为 1.12.0 或更高版本。有关安装说明,请参阅 pytorch.org。
MXNet 后端
将 DGLBACKEND
导出为 mxnet
以指定 MXNet 后端。所需的 MXNet 版本为 1.6 或更高版本。有关安装说明,请参阅 mxnet.apache.org。
MXNet 使用 uint32 作为整数张量的默认数据类型,这只支持大小小于 2^32 的图。要启用大型图训练,请使用 USE_INT64_TENSOR_SIZE=1
标志构建 MXNet。有关更多信息,请参阅 此 FAQ。
MXNet 1.5 及更高版本有一个选项可以为 NDArray
对象启用 Numpy shape mode,一些 DGL 模型需要启用此模式才能正确运行。但是,此模式可能与禁用此模式的预训练模型参数不兼容,例如 GluonCV 和 GluonNLP 的预训练模型。通过设置 DGL_MXNET_SET_NP_SHAPE
,用户可以开启或关闭此模式。
Tensorflow 后端
将 DGLBACKEND
导出为 tensorflow
以指定 Tensorflow 后端。所需的 Tensorflow 版本为 2.3.0 或更高版本。有关安装说明,请参阅 tensorflow.org。此外,DGL 将设置 TF_FORCE_GPU_ALLOW_GROWTH
为 true
,以防止 Tensorflow 占用全部 GPU 内存