性能基准测试

集成基准测试

DGL 持续评估其核心 API、内核的速度以及最先进 GNN 模型的训练速度。基准测试代码位于主仓库。每晚构建版本都会触发这些测试,结果发布到https://asv.dgl.ai/

v0.6 基准测试

为了理解 DGL v0.6 的性能提升,我们在 v0.5 基准测试的基础上,针对图分类任务新增了一些基准测试,并与更新后的基线进行了对比。结果可在一个独立仓库中找到。

v0.5 基准测试

请查阅我们的论文 Deep Graph Library: 一个以图为中心、高性能的图神经网络包

v0.4.3 基准测试

速度和内存使用微基准测试:DGL 将张量和自动微分功能留给后端框架(例如 PyTorch、MXNet 和 TensorFlow),同时利用自身的内核积极优化存储和计算。以下是与另一个流行软件包 PyTorch Geometric (PyG) 的比较。简而言之,原始速度相似,但 DGL 的内存管理要好得多。

数据集

模型

准确率

时间

内存

PyG

DGL

PyG

DGL

Cora

GCN

81.31 ± 0.88

0.478

0.666

1.1

1.1

GAT

83.98 ± 0.52

1.608

1.399

1.2

1.1

CiteSeer

GCN

70.98 ± 0.68

0.490

0.674

1.1

1.1

GAT

69.96 ± 0.53

1.606

1.399

1.3

1.1

PubMed

GCN

79.00 ± 0.41

0.491

0.690

1.1

1.1

GAT

77.65 ± 0.32

1.946

1.393

1.6

1.1

Reddit

GCN

93.46 ± 0.06

内存不足

28.6

内存不足

11.7

Reddit-S

GCN

不适用

29.12

9.44

15.7

3.6

表:200 个 epoch 的训练时间(秒)和内存消耗(GB)

以下是 DGL 在 TensorFlow 后端与其他基于 TF 的 GNN 工具的另一个比较(单个 epoch 的训练时间,单位:秒)

数据集

模型

DGL

GraphNet

tf_geometric

Core

GCN

0.0148

0.0152

0.0192

Reddit

GCN

0.1095

内存不足

内存不足

PubMed

GCN

0.0156

0.0553

0.0185

PPI

GCN

0.09

0.16

0.21

Cora

GAT

0.0442

不适用

0.058

PPI

GAT

0.398

不适用

0.752

高内存利用率使得 DGL 能够突破单 GPU 性能的极限,如下图所示。

http://data.dgl.ai/asset/image/DGLvsPyG-time1.png http://data.dgl.ai/asset/image/DGLvsPyG-time2.png

可扩展性:DGL 充分利用单机和集群中的多 GPU 来提高训练速度,并且性能优于其他替代方案,如下图所示。

http://data.dgl.ai/asset/image/one-four-GPUs.png http://data.dgl.ai/asset/image/one-four-GPUs-DGLvsGraphVite.png http://data.dgl.ai/asset/image/one-fourMachines.png

延伸阅读:DGL 与其他替代方案的详细比较可以在[这里](https://arxiv.org/abs/1909.01315)找到。