ITADN
dmlc/dgl

版本发布 8

v2.4.0
? · 2024-09-03

## Highlights * DGL 2.4 documentation can be found here: https://www.dgl.ai/dgl_docs/index.html * `distributed` module is not imported in default when import dgl. Users need to import manually: `import dgl.distributed`. * `DistNodeDataLoader` and `DistEdgeDataLoader` are moved from `dgl.dataloading` to `dgl.distributed`. Users are recommended to call `dgl.distributed.DistNode/EdgeDataLoader` though `dgl.dadaloading.DistNode/EdgeDataLoader` is still available. Such backward compatibility will be removed in next release. * GraphBolt examples are now in `examples/graphbolt`. * The users are now required to install GraphBolt's CUDA wheels if they have a CUDA enabled torch installation. * numpy 2.x is now supported. * torch 2.4 & CUDA 12.4 are now supported by @pyynb in https://github.com/dmlc/dgl/pull/7629 * Importing DGL does not cause an import of GraphBolt anymore. by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7676, https://github.com/dmlc/dgl/pull/7756 * GraphBolt does not depend on the deprecated torchdata package anymore and this release is incompatible with the torchdata package. by @frozenbugs in https://github.com/dmlc/dgl/pull/7638, https://github.com/dmlc/dgl/pull/7609, https://github.com/dmlc/dgl/pull/7667, https://github.com/dmlc/dgl/pull/7688 * [GraphBolt][CUDA] Use better memory allocation algorithm to avoid OOM. by @mfbalin in https://github.com/dmlc/dgl/pull/7618 * [GraphBolt] GPU utilization has been maximized by eliminating all (known) GPU synchronizations: https://github.com/dmlc/dgl/pull/7528, https://github.com/dmlc/dgl/pull/7682, https://github.com/dmlc/dgl/pull/7709, https://github.com/dmlc/dgl/pull/7707, https://github.com/dmlc/dgl/pull/7712, https://github.com/dmlc/dgl/pull/7705, https://github.com/dmlc/dgl/pull/7602, https://github.com/dmlc/dgl/pull/7603, https://github.com/dmlc/dgl/pull/7634, https://github.com/dmlc/dgl/pull/7757 by @mfbalin. * [GraphBolt][io_uring] `gb.DiskBasedFeature` is now ready to use for out-of-core training: https://github.com/dmlc/dgl/pull/7506, https://github.com/dmlc/dgl/pull/7713, https://github.com/dmlc/dgl/pull/7562, https://github.com/dmlc/dgl/pull/7515, https://github.com/dmlc/dgl/pull/7530, https://github.com/dmlc/dgl/pull/7518 by @mfbalin. * [GraphBolt] Users are now recommended to use `gb.numpy_save_aligned` instead of `numpy.save` to save their features for out-of-core training. by @mfbalin in https://github.com/dmlc/dgl/pull/7524 * [GraphBolt] `gb.CPUCachedFeature` was added to speedup out-of-core training: https://github.com/dmlc/dgl/pull/7492, https://github.com/dmlc/dgl/pull/7508, https://github.com/dmlc/dgl/pull/7520, https://github.com/dmlc/dgl/pull/7526, https://github.com/dmlc/dgl/pull/7525, https://github.com/dmlc/dgl/pull/7531, https://github.com/dmlc/dgl/pull/7537, https://github.com/dmlc/dgl/pull/7538, https://github.com/dmlc/dgl/pull/7581, https://github.com/dmlc/dgl/pull/7723, https://github.com/dmlc/dgl/pull/7644, https://github.com/dmlc/dgl/pull/7731 and more by @mfbalin. * [GraphBolt] Feature fetching pipeline is fully parallelized by enabling all hardware components run concurrently: https://github.com/dmlc/dgl/pull/7546, https://github.com/dmlc/dgl/pull/7547, https://github.com/dmlc/dgl/pull/7548, https://github.com/dmlc/dgl/pull/7550, https://github.com/dmlc/dgl/pull/7549, https://github.com/dmlc/dgl/pull/7553, https://github.com/dmlc/dgl/pull/7551, https://github.com/dmlc/dgl/pull/7552, https://github.com/dmlc/dgl/pull/7554, https://github.com/dmlc/dgl/pull/7555, https://github.com/dmlc/dgl/pull/7559, https://github.com/dmlc/dgl/pull/7540 and more by @mfbalin. * [GraphBolt][Temporal] Temporal sampling support is extended with more samplers and GPU support: https://github.com/dmlc/dgl/pull/7500, https://github.com/dmlc/dgl/pull/7503, https://github.com/dmlc/dgl/pull/7677, https://github.com/dmlc/dgl/pull/7678 by @mfbalin. * [GraphBolt][CUDA] Sampling pipeline parallelism optimizations in https://github.com/dmlc/dgl/pull/7714, https://github.com/dmlc/dgl/pull/7665 and example use in https://github.com/dmlc/dgl/pull/7702, https://github.com/dmlc/dgl/pull/7669, https://github.com/dmlc/dgl/pull/7664, https://github.com/dmlc/dgl/pull/7662 by @mfbalin. * [GraphBolt][PyG] Add `to_pyg` for layer input conversion. by @mfbalin in https://github.com/dmlc/dgl/pull/7745 and https://github.com/dmlc/dgl/pull/7747. * [Feature] Fixed sampler with limit on sampled nodes/edges in batch subgraph by @ayushnoori in https://github.com/dmlc/dgl/pull/6668 * [GraphBolt] Refactor and extend `FeatureStore`. by @mfbalin in https://github.com/dmlc/dgl/pull/7558 * [dev] Several build and setup improvements by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7565, https://github.com/dmlc/dgl/pull/7567, https://github.com/dmlc/dgl/pull/7570, https://github.com/dmlc/dgl/pull/7571, https://github.com/dmlc/dgl/pull/7574, https://github.com/dmlc/dgl/pull/7684 * [GraphBolt][CUDA] `gb.indptr_edge_ids`. by @mfbalin in https://github.com/dmlc/dgl/pull/7592, https://github.com/dmlc/dgl/pull/7593 * [GraphBolt] Allow using multiple processes for GraphBolt partition conversion by @thvasilo in https://github.com/dmlc/dgl/pull/7497 * [GraphBolt][CUDA] Update CCCL to 2.6.0. by @mfbalin in https://github.com/dmlc/dgl/pull/7636 * [Performance] Change hash table for performance. by @mfbalin in https://github.com/dmlc/dgl/pull/7658, https://github.com/dmlc/dgl/pull/7631 * [GraphBolt][CUDA] Refactor `overlap_graph_fetch`, simplify `gb.DataLoader`. by @mfbalin in https://github.com/dmlc/dgl/pull/7681, https://github.com/dmlc/dgl/pull/7732 * [Build] Organize cmake file by @mfbalin in https://github.com/dmlc/dgl/pull/7715 * [GraphBolt] `Feature.count()`. by @mfbalin in https://github.com/dmlc/dgl/pull/7730 ## Bug Fixes * [GraphBolt] Check data alignment before copying the file by @Liu-rj in https://github.com/dmlc/dgl/pull/7641 * [GraphBolt] Several documentation display fixes by @pyynb in https://github.com/dmlc/dgl/pull/7639, https://github.com/dmlc/dgl/pull/7691 * Several miscellaneous warnings and bugs were fixed: https://github.com/dmlc/dgl/pull/7486, https://github.com/dmlc/dgl/pull/7493, https://github.com/dmlc/dgl/pull/7484, https://github.com/dmlc/dgl/pull/7622, https://github.com/dmlc/dgl/pull/7719, https://github.com/dmlc/dgl/pull/7560, https://github.com/dmlc/dgl/pull/7557, https://github.com/dmlc/dgl/pull/7577, https://github.com/dmlc/dgl/pull/7627 by @drivanov and other contributors. * [GraphBolt] Edge feature fetch fix. by @mfbalin in https://github.com/dmlc/dgl/pull/7589, https://github.com/dmlc/dgl/pull/7594, https://github.com/dmlc/dgl/pull/7595 ## New Examples * [GraphBolt] Add DiskBasedFeature example for DGL model by @Liu-rj in https://github.com/dmlc/dgl/pull/7624 * [GraphBolt][PyG] Heterogenous example. by @mfbalin in https://github.com/dmlc/dgl/pull/7722 * [GraphBolt][PyG] Link prediction example. by @mfbalin in https://github.com/dmlc/dgl/pull/7752 ## New built-in datasets: * [GraphBolt] `igb-hom-[tiny|small|medium]` variants of IGB datasets are added. by @BowenYao18 in https://github.com/dmlc/dgl/pull/7717 ## New Contributors * @BowenYao18 made their first contribution in https://github.com/dmlc/dgl/pull/7516 * @kec020 made their first contribution in https://github.com/dmlc/dgl/pull/7527 * @Liu-rj made their first contribution in https://github.com/dmlc/dgl/pull/7641 * @CfromBU made their first contribution in https://github.com/dmlc/dgl/pull/7674 **Full Changelog**: https://github.com/dmlc/dgl/compare/v2.3.0...v2.4.0

v2.3.0
? · 2024-06-28

## Highlights * `torch 2.3.1` is supported. The supported torch versions range from `2.1` to `2.3`. * `numpy 2.0.0` is not fully supported/compatible. We add a dependency requirement of numpy which should be `<2.0.0`. We'll remove such limitation in near future. * `ItemSetDict` has been replaced by `HeteroItemSet`. Please use the new class though we add an alias for deprecated one. * Incremental GPU graph caching has been added to GraphBolt in #7470, #7475, #7483. An example use is shown in #7482. * `exclude_edges` is enabled for distributed DGL. * From now on, we stop providing built packages for `Windows` and `Mac`. Please build and install from source code on your own. ## Bug Fixes * [DistDGL] enable exclude edges sample_neighbors() by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7425 * [DistDGL] enable exclude_edges for sample_etype_neighbors() by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7427 * [DistDGL] fix device mismatch when calling all_to_all with gloo backend by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7409 * [GraphBolt][CUDA] GPUCachedFeature update fix. by @mfbalin in https://github.com/dmlc/dgl/pull/7384 * [GraphBolt][CUDA] Make dataloader pickleable. by @mfbalin in https://github.com/dmlc/dgl/pull/7391 * [graphbolt] skip non-existent types in input_nodes by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7386 * [DistPart] Fix corner case in dist partition which always led to an assertion error being triggered. by @thvasilo in https://github.com/dmlc/dgl/pull/7395 * [GraphBolt] Fix `blocks` in minibatch when facing with empty edges in subgraph. by @yxy235 in https://github.com/dmlc/dgl/pull/7413 * [Feature] Add check for `NNZ` in `COOToCSR` by @Skeleton003 in https://github.com/dmlc/dgl/pull/7459 ## New Examples * [GraphBolt] Labor (Layer-Neighbor Sampling) example by @mfbalin in https://github.com/dmlc/dgl/pull/7437 ## New Contributors * @vmiheer made their first contribution in https://github.com/dmlc/dgl/pull/7447 * @az15240 made their first contribution in https://github.com/dmlc/dgl/pull/7465 **Full Changelog**: https://github.com/dmlc/dgl/compare/v2.2.1...v2.3.0

v2.2.1
? · 2024-05-11

We're thrilled to announce the release of **DGL 2.2.1**. 🎉🎉🎉 ## Major Changes * The supported PyTorch versions are *2.1.0/1/2*, *2.2.0/1/2*, *2.3.0*. See install command [here](https://www.dgl.ai/pages/start.html). * [MiniBatch](https://docs.dgl.ai/generated/dgl.graphbolt.MiniBatch.html#dgl.graphbolt.MiniBatch) in GraphBolt is refactored: `seed_nodes` and `node_paris` are replaced with unified `seeds` attribute through out the pipeline. Refer to the latest [examples](https://github.com/dmlc/dgl/tree/master/examples/sampling/graphbolt) for more details. by @yxy235 * GraphBolt sampling is enabled in DistGL for node classification. See examples [here](https://github.com/dmlc/dgl/tree/master/examples/distributed). * [GraphBolt] Optimize hetero sampling on CPU by @RamonZhou in https://github.com/dmlc/dgl/pull/7360 * [GraphBolt] `torch.compile()` support for `gb.expand_indptr`. by @mfbalin in https://github.com/dmlc/dgl/pull/7188 * [GraphBolt] Make unique_and_compact deterministic by @RamonZhou in https://github.com/dmlc/dgl/pull/7217, #7239 * [GraphBolt] Hyperlink support in `subgraph_sampler`. by @yxy235 in https://github.com/dmlc/dgl/pull/7354 * [GraphBolt] More features of `dgl.dataloading.LaborSampler` in `gb.LayerNeighborSampler`, added `layer_dependency` and `batch_dependency` parameters. #7205, #7208, #7212, #7220 by @mfbalin * [GraphBolt][CUDA] Faster GPU neighbor sampling and compaction kernels. #7239, #7215 by @mfbalin * [GraphBolt][CUDA] Better hetero CPU&GPU performance via fused kernels. #7223, #7312 by @mfbalin * [GraphBolt][CUDA] GPU synchronizations eliminated throughout the sampling pipeline. #7240, #7264 by @mfbalin ## Bug Fixes * [DistGB] revert toindex() but refine tests by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7197 * [GraphBolt] PyG advanced example `torch.compile()` bug workaround. by @mfbalin in https://github.com/dmlc/dgl/pull/7259 * [CUDA][Bug] CSR transpose bug in CUDA 12 by @mfbalin in https://github.com/dmlc/dgl/pull/7295 * [Determinism] Enable environment var to use cusparse spmm deterministic algorithm by @TristonC in https://github.com/dmlc/dgl/pull/7310 ## New Contributors * @Chaos-Hu-edu made their first contribution in https://github.com/dmlc/dgl/pull/7219 * @MikuSugar made their first contribution in https://github.com/dmlc/dgl/pull/7258 * @pyynb made their first contribution in https://github.com/dmlc/dgl/pull/7267 **Full Changelog**: https://github.com/dmlc/dgl/compare/v2.1.0...v2.2.1

v2.1.0
? · 2024-03-06

We're thrilled to announce the release of DGL 2.1.0. 🎉🎉🎉 ## Major Changes: 1. CUDA backend of `GraphBolt` is now available. Thanks @mfbalin for the extraordinary effort. See the [updated examples](https://github.com/dmlc/dgl/tree/master/examples/sampling/graphbolt). 2. PyTorch 1.13 is not supported any more. The supported PyTorch versions are 2.0.0/1, 2.1.0/1/2, 2.2.0/1. 3. CUDA 11.6 is not supported any more. The supported CUDA versions are 11.7, 11.8, 12.1. 4. Data loading performance improvements via pipeline parallelism, operation/kernel optimizations and so on. 5. Add support for converting sampling output of `GraphBolt` to `PyG` data format and train with `PyG` models seamlessly: [examples](https://github.com/dmlc/dgl/tree/master/examples/sampling/pyg). ## Bug Fixes * [Grapbolt]Negative node pairs should be 2D by @peizhou001 in https://github.com/dmlc/dgl/pull/6951 * [GraphBolt] Fix fanouts setting in rgcn example by @RamonZhou in https://github.com/dmlc/dgl/pull/6959 * [GraphBolt] fix random generator for shuffle among all workers by @Rhett-Ying in https://github.com/dmlc/dgl/pull/6982 * [GraphBolt] fix preprocess issue for single ntype/etype graph by @Rhett-Ying in https://github.com/dmlc/dgl/pull/7011 * [GraphBolt] Fix gpu `NegativeSampler` for seeds. by @yxy235 in https://github.com/dmlc/dgl/pull/7068 * [GraphBolt][CUDA] Fix link prediction early-stop. by @mfbalin in https://github.com/dmlc/dgl/pull/7083 ## New Examples * [Feature] ARGO: an easy-to-use runtime to improve GNN training performance on multi-core processors by @jasonlin316 in https://github.com/dmlc/dgl/pull/7003 ## Acknowledgement Thanks for all your contributions. @drivanov @frozenbugs @LourensT @Skeleton003 @mfbalin @RamonZhou @Rhett-Ying @wkmyws @jasonlin316 @caojy1998 @czkkkkkk @hutiechuan @peizhou001 @rudongyu @xiangyuzhi @yxy235

v2.0.0
? · 2024-01-12

We're thrilled to announce the release of DGL 2.0.0, a major milestone in our mission to empower developers with cutting-edge tools for Graph Neural Networks (GNNs). 🎉🎉🎉 ## New Package: dgl.graphbolt In this release, we introduce a brand new package: [dgl.graphbolt](https://docs.dgl.ai/en/2.0.x/api/python/dgl.graphbolt.html), which is a revolutionary data loading framework that supercharges your GNN training/inference by streamlining the data pipeline. Please refer to the [documentation page](https://docs.dgl.ai/en/2.0.x/stochastic_training/index.html) for GraphBolt's overview and end2end notebooks. More end2end examples are available in [github code base](https://github.com/dmlc/dgl/tree/2.0.x/examples/sampling/graphbolt). ## New Additions - A hetero-relational GCN example (#6157) - Add Node explanation for Heterogenous PGExplainer Impl. (#6050) - Add peptides structural dataset in LRGB (#6337) - Add peptides functional dataset in LRGB (#6363) - Add VOCSuperpixels dataset in LRGB (#6389) - Add compact operator (#6352) - Add COCOsuperpixel dataset (#6407) - Add a graphSAGE example (#6481) - Add CIFAR10 MNIST dataset in benchmark-gnn (#6543) - Add ogc method (#6437) - Add a LADIES example (#6560) - Adjusted homophily and label informativeness (#6516) ## System/Examples/Documentation Enhancements - Update README about DGL container access from NGC (#6133) - Cpu docker tcmalloc (#5969) - Use scipy's eigs instead of numpy in lap_pe (#5855) - Add CMake changes from conda-forge build (#6189) - Upgrade `googletest` to v1.14.0 (#6273) - Fix typo in link prediction with sampling example (#6268) - Add sparse matrix slicing operator implementation (#6208) - Use torchrun instead of torch.distributed.launch (#6304) - Sparse sample implementation (#6303) - Add relabel python API (#6323) - Compact C++ API (#6334) - Fix compile warning (#6342) - Update Labor sampler docs, add NeurIPS acceptance (#6369) - Update docstring of LRGB (#6430) - Do not fuse neighbor sampler for 1 thread (#6421) - Fix graph_transformer example (#6471) - Adding `--num_workers` input parameter to the EEG_GCNN example. (#6467) - Update doc network_emb.py (#6559) - Protect temporary changes from persisting if an error occurs during the yield block (#6506) - Provide options for bidirectional edge (#6566) - Improving the MLP example. (#6593) - Improving the JKNET example. (#6596) - Avoid calling `IsPinned` in the coo/csr constructor from every sampling process (#6568) ## Bug Fixes - Fix cusparseCreateCsr format for cuda12 (#6121) - Fix a bug in standalone mode (#6179) - Fix extrace_archive default parameter (#6333) - Fix device check (#6409) - Return batch related ids in g.idtype (#6578) - Fix typo in ShaDowKHopSampler (#6587) - Fix issue about integer overflow (#6586) - Fix the lazy device copy issue of DGL node/edge features (#6564) - Fix num_labels to num_classes in dataset files (#6666) - Fix Graphormer as key in state_dict has changed (#6806) - Fix distributed partition issue (#6847) ## Note Windows packages are not available and will be ready soon. ## Acknowledgement DGL 2.0.0 has been achieved through the dedicated efforts of the DGL team and the invaluable contributions of our external collaborators. @9rum @AndreaPrati98 @BarclayII @HernandoR @OlegPlatonov @RamonZhou @Rhett-Ying @SinuoXu @Skeleton003 @TristonC @anko-intel @ayushnoori @caojy1998 @chang-l @czkkkkkk @daniil-sizov @drivanov @frozenbugs @hmacdope @isratnisa @jermainewang @keli-wen @mfbalin @ndbaker1 @paoxiaode @peizhou001 @rudongyu @songqing @willarliss @xiangyuzhi @yaox12 @yxy235 @zheng-da Your collective efforts have been key to the success of this release. We deeply appreciate every contribution, large and small, as they collectively shape and improve DGL. Thank you all for your dedication and hard work!

1.1.3v1.1.3
? · 2023-12-11

# Major changes * Add PyTorch `2.1.0`, `2.1.1` (except windows) and the supported versions are `1.13.0`, `1.13.1`, `2.0.0`, `2.0.1`, `2.1.0`, `2.1.1`. * Add CUDA `12.1` and the supported versions are `11.6`, `11.7`, `11.8`, `12.1`. * Windows support for PyTorch `2.1.0`, `2.1.1` are blocked due to a compiling issue. This will be supported as soon as the issue is resolved.

v1.1.21.1.2
? · 2023-08-15

# Major changes * PyTorch `1.12.0`, `1.12.1` are deprecated and the supported versions are `1.13.0`, `1.13.1`, `2.0.0`, `2.0.1`. * CUDA `10.2`, `11.1`, `11.3` are deprecated and the supported versions are `11.6`, `11.7`. `11.8`. * C++ standard used in build is upgraded to `17`. * Several performance improvements such as #5885, #5924 and so on. * Multiple examples are updated for better readability such as #6035, #6036 and so on. * A few bug fixes such as #6044, #6001 and so on.

v1.1.11.1.1
? · 2023-06-27

# What's new * Add support for PyTorch `2.0.1`. * Fix several bugs such as #5872 for DistDGL, #5754 for `dgl.khop_daj()` and so on. * Remove several unused third-party libraries such as `xbyak`, `tvm`. * A few performance improvements such as #5508, #5685.