Papers › Deep Graph Library: A Graph-Centric, Highly-Performant Package for Graph Neural Networks

Deep Graph Library: A Graph-Centric, Highly-Performant Package for Graph Neural Networks

3 Sep 2019arXiv:1909.01315archive 2025-07-28

Minjie Wang, Da Zheng, Zihao Ye, Quan Gan, Mufei Li, Xiang Song, Jinjing Zhou, Chao Ma, Lingfan Yu, Yu Gai, Tianjun Xiao, Tong He, George Karypis, Jinyang Li, Zheng Zhang

Advancing research in the emerging field of deep graph learning requires new tools to support tensor computation over graphs. In this paper, we present the design principles and implementation of Deep Graph Library (DGL). DGL distills the computational patterns of GNNs into a few generalized sparse tensor operations suitable for extensive parallelization. By advocating graph as the central programming abstraction, DGL can perform optimizations transparently. By cautiously adopting a framework-neutral design, DGL allows users to easily port and leverage the existing components across multiple deep learning frameworks. Our evaluation shows that DGL significantly outperforms other popular GNN-oriented frameworks in both speed and memory consumption over a variety of benchmarks and has little overhead for small scale workloads.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1909.01315")

Code

Syntology Ran 3 of 39 code samples harvested from 3 repositories linked to this paper; 36 have no recorded run. Of those that ran: 1 ran · honoured contract; 2 ran · our draft was wrong.

By repository: official repository: 4 samples from 1 repository, 3 ran; community (archive-listed): 35 samples from 2 repositories, 0 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

dglai/dgl-0.5-benchmark officialmentioned in papermentioned on GitHubpytorch report
classicsong/dgl mentioned on GitHubpytorchApache-2.0 report
dmlc/dgl mentioned on GitHubpytorch report
liketheflower/jimmy_dgl mentioned on GitHubpytorchApache-2.0 report
mengyangniu/dgl mentioned on GitHubpytorchApache-2.0 report
mengyangniu/dgl mentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

39 samples harvested; 3 ran; 1 honoured the contract we drafted; 36 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · honoured contract
2ran · our draft was wrong
36unverified

Licence: 4 of the 39 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 3 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

test dglai/dgl-0.5-benchmark/end_to_end/full_graph/node_classification/main_dgl_arxiv_gat.py official repository ran · our draft was wrong no licence file found · pointer only · 46f5fd24720486a6 · report
train dglai/dgl-0.5-benchmark/end_to_end/full_graph/node_classification/main_dgl_arxiv_gat.py official repository ran · our draft was wrong no licence file found · pointer only · dca95faa102e051a · report
train dglai/dgl-0.5-benchmark/end_to_end/full_graph/graph_classification/main_dgl_enzymes_gcn.py official repository ran · honoured contract no licence file found · pointer only · 44fd758f71d50278 · report
test dglai/dgl-0.5-benchmark/end_to_end/full_graph/graph_classification/main_dgl_enzymes_gcn.py official repository unverified no licence file found · pointer only · 8d54f057e38fcfbe · report
bipartite classicsong/dgl/python/dgl/convert.py community (archive-listed) unverified Apache-2.0 (permissive) · 4ddff72fde2480de · report
convert_to_strmap mengyangniu/dgl/python/dgl/container.py community (archive-listed) unverified Apache-2.0 (permissive) · 016ef3147f301232 · report
create_heterograph_from_relations mengyangniu/dgl/python/dgl/heterograph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 0e0d8b04e0a30007 · report
create_heterograph_from_relations classicsong/dgl/python/dgl/heterograph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 38b753df9f728b41 · report
create_unitgraph_from_coo classicsong/dgl/python/dgl/heterograph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · b08137224326f1df · report
create_unitgraph_from_coo mengyangniu/dgl/python/dgl/heterograph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 08f15e0bcf1f7400 · report
create_unitgraph_from_csr classicsong/dgl/python/dgl/heterograph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 240441566b3cb725 · report
create_unitgraph_from_csr mengyangniu/dgl/python/dgl/heterograph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 9da4a8bee5336752 · report
dgl_warning_format mengyangniu/dgl/python/dgl/base.py community (archive-listed) unverified Apache-2.0 (permissive) · d15a4a786f69edc6 · report
find_src_dst_ntypes mengyangniu/dgl/python/dgl/heterograph.py community (archive-listed) unverified Apache-2.0 (permissive) · 10d68b4b6fa07f82 · report
frame_like classicsong/dgl/python/dgl/frame.py community (archive-listed) unverified Apache-2.0 (permissive) · 9a5248c1310fee53 · report
from_coo mengyangniu/dgl/python/dgl/graph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 4ae9983fc353b1f9 · report
from_coo classicsong/dgl/python/dgl/graph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 9251c8049725779c · report
from_csr mengyangniu/dgl/python/dgl/graph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · 61a050f11d9e1f7e · report
from_csr classicsong/dgl/python/dgl/graph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · aa41af8d28e61993 · report
from_shared_mem_csr_matrix classicsong/dgl/python/dgl/graph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · d0f5f02c5770af23 · report
from_shared_mem_graph_index mengyangniu/dgl/python/dgl/graph_index.py community (archive-listed) unverified Apache-2.0 (permissive) · e8e462381451afcd · report
graph classicsong/dgl/python/dgl/convert.py community (archive-listed) unverified Apache-2.0 (permissive) · 8531b4232412ff4e · report
graph mengyangniu/dgl/python/dgl/convert.py community (archive-listed) unverified Apache-2.0 (permissive) · 0d2f6edf7894499d · report
hetero_from_relations classicsong/dgl/python/dgl/convert.py community (archive-listed) unverified Apache-2.0 (permissive) · 6de90aafeb665dd4 · report
hetero_from_shared_memory mengyangniu/dgl/python/dgl/convert.py community (archive-listed) unverified Apache-2.0 (permissive) · 183b9a930525f173 · report
heterograph mengyangniu/dgl/python/dgl/convert.py community (archive-listed) unverified Apache-2.0 (permissive) · 8d819296a523b74d · report
infer_ntype_from_dict classicsong/dgl/python/dgl/heterograph.py community (archive-listed) unverified Apache-2.0 (permissive) · d008106df6cdf03c · report
infer_scheme classicsong/dgl/python/dgl/frame.py community (archive-listed) unverified Apache-2.0 (permissive) · 41db54384fdd01d6 · report
invoke_edge_udf mengyangniu/dgl/python/dgl/core.py community (archive-listed) unverified Apache-2.0 (permissive) · c072c366ff17800a · report
invoke_node_udf mengyangniu/dgl/python/dgl/core.py community (archive-listed) unverified Apache-2.0 (permissive) · 5aa4d9ca2d36a808 · report
is_all classicsong/dgl/python/dgl/base.py community (archive-listed) unverified Apache-2.0 (permissive) · 48c452849a73cec5 · report
is_builtin mengyangniu/dgl/python/dgl/core.py community (archive-listed) unverified Apache-2.0 (permissive) · 79bd37074ea9b315 · report
is_internal_column mengyangniu/dgl/python/dgl/base.py community (archive-listed) unverified Apache-2.0 (permissive) · 791b6657e97a0d13 · report
is_unibipartite mengyangniu/dgl/python/dgl/heterograph.py community (archive-listed) unverified Apache-2.0 (permissive) · 0fccc3114c12388a · report
make_canonical_etypes classicsong/dgl/python/dgl/heterograph.py community (archive-listed) unverified Apache-2.0 (permissive) · 3d5e4058d7d4c01b · report
make_canonical_etypes mengyangniu/dgl/python/dgl/heterograph.py community (archive-listed) unverified Apache-2.0 (permissive) · 0495daf585ec447b · report
pad_tuple classicsong/dgl/python/dgl/heterograph.py community (archive-listed) unverified Apache-2.0 (permissive) · 3501cbd35b6cf72b · report
unbatch mengyangniu/dgl/python/dgl/batch.py community (archive-listed) unverified Apache-2.0 (permissive) · 73f17bd169feeaab · report
zero_initializer classicsong/dgl/python/dgl/init.py community (archive-listed) unverified Apache-2.0 (permissive) · c7a98eaf8183d806 · report

Tasks

Graph LearningNode Classification

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Node Classification Cora GAT (DGL) Accuracy 83.98% ± 0.52% #34 of 73 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

SPEED

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections