安装和设置

系统要求

DGL 支持以下操作系统:

  • Ubuntu 20.04+

  • CentOS 8+

  • 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构建,则CPU构建将被覆盖。

从Conda或Pip安装

我们推荐通过condapip安装DGL。 查看Get Started page上的说明。

注意

对于Windows用户:您需要安装Visual C++ 2015 Redistributable

从源代码安装

从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 ToolsCMake on Windows后,在VS2019 x64本机工具命令提示符中运行以下命令。

  • 仅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。有关更多信息,请参阅 此常见问题解答

MXNet 1.5 及更高版本有一个选项可以为 NDArray 对象启用 Numpy 形状模式,一些 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 内存: