安装和设置

系统要求

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 安装

我们推荐使用 condapip 安装 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 ToolsWindows 上的 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_GROWTHtrue,以防止 Tensorflow 占用全部 GPU 内存