gitextract_7pa1_qyp/ ├── .clang-format ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── --work-item--dev-only-.md │ │ ├── bug-report.md │ │ ├── documentation.md │ │ ├── feature-request.md │ │ └── questions-help-support.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── lint.yml │ └── stale.yml ├── .gitignore ├── .gitmodules ├── .lintrunner.toml ├── CMakeLists.txt ├── CONTRIBUTORS.md ├── Jenkinsfile ├── LICENSE ├── NEWS.md ├── README.md ├── apps/ │ └── life_sci/ │ └── README.md ├── benchmarks/ │ ├── .gitignore │ ├── Jenkinsfile │ ├── README.md │ ├── asv.conf.json │ ├── benchmarks/ │ │ ├── __init__.py │ │ ├── api/ │ │ │ ├── __init__.py │ │ │ ├── bench_add_self_loop.py │ │ │ ├── bench_batch.py │ │ │ ├── bench_builtin_apply_edges.py │ │ │ ├── bench_builtin_apply_edges_hetero.py │ │ │ ├── bench_builtin_multi_update_all.py │ │ │ ├── bench_builtin_update_all_coo.py │ │ │ ├── bench_builtin_update_all_csc.py │ │ │ ├── bench_edge_ids.py │ │ │ ├── bench_edge_subgraph.py │ │ │ ├── bench_find_edges.py │ │ │ ├── bench_format_conversion.py │ │ │ ├── bench_fused_sample_neighbors.py │ │ │ ├── bench_heterograph_construction.py │ │ │ ├── bench_homograph_edge_construction.py │ │ │ ├── bench_homograph_scipy_construction.py │ │ │ ├── bench_in_degrees.py │ │ │ ├── bench_in_edges.py │ │ │ ├── bench_in_subgraph.py │ │ │ ├── bench_khop.py │ │ │ ├── bench_knn_graph.py │ │ │ ├── bench_metis_partition.py │ │ │ ├── bench_nn_graphconv.py │ │ │ ├── bench_nn_heterographconv.py │ │ │ ├── bench_node_subgraph.py │ │ │ ├── bench_random_walk.py │ │ │ ├── bench_readout.py │ │ │ ├── bench_reverse.py │ │ │ ├── bench_sample_neighbors.py │ │ │ ├── bench_to_block.py │ │ │ ├── bench_udf_apply_edges.py │ │ │ ├── bench_udf_multi_update_all.py │ │ │ ├── bench_udf_update_all.py │ │ │ └── bench_unbatch.py │ │ ├── kernel/ │ │ │ ├── __init__.py │ │ │ ├── bench_edgesoftmax.py │ │ │ ├── bench_gsddmm_u_dot_v.py │ │ │ ├── bench_gspmm_copy_u.py │ │ │ └── bench_gspmm_u_mul_e_sum.py │ │ ├── model_acc/ │ │ │ ├── __init__.py │ │ │ ├── bench_gat.py │ │ │ ├── bench_gcn.py │ │ │ ├── bench_gcn_udf.py │ │ │ ├── bench_rgcn_base.py │ │ │ ├── bench_rgcn_ns.py │ │ │ ├── bench_sage.py │ │ │ └── bench_sage_ns.py │ │ ├── model_speed/ │ │ │ ├── __init__.py │ │ │ ├── bench_gat.py │ │ │ ├── bench_gat_ns.py │ │ │ ├── bench_gcn_udf.py │ │ │ ├── bench_pinsage.py │ │ │ ├── bench_rgcn_base.py │ │ │ ├── bench_rgcn_hetero_ns.py │ │ │ ├── bench_rgcn_homogeneous_ns.py │ │ │ ├── bench_sage.py │ │ │ ├── bench_sage_ns.py │ │ │ └── bench_sage_unsupervised_ns.py │ │ ├── multigpu/ │ │ │ ├── __init__.py │ │ │ ├── bench_multigpu_rgcn.py │ │ │ ├── bench_multigpu_sage.py │ │ │ └── rgcn_model.py │ │ ├── rgcn.py │ │ └── utils.py │ ├── run.sh │ ├── scripts/ │ │ ├── README.md │ │ ├── build_dgl_asv.sh │ │ ├── fix_ram_info.py │ │ ├── generate_excel.py │ │ ├── install_dgl_asv.sh │ │ ├── publish.sh │ │ ├── replace_branch.py │ │ └── torch_gpu_pip.txt │ └── task.json ├── cmake/ │ ├── modules/ │ │ ├── CUDA.cmake │ │ └── FindMETIS.cmake │ └── util/ │ ├── FindCUDA.cmake │ ├── MshadowUtil.cmake │ └── Util.cmake ├── conda/ │ └── dgl/ │ ├── README.md │ ├── bld.bat │ ├── build.sh │ ├── conda_build_config.yaml │ ├── meta.yaml │ ├── run_test.bat │ └── run_test.sh ├── dgl_sparse/ │ ├── CMakeLists.txt │ ├── build.bat │ ├── build.sh │ ├── find_cmake.py │ ├── include/ │ │ └── sparse/ │ │ ├── dgl_headers.h │ │ ├── elementwise_op.h │ │ ├── matrix_ops.h │ │ ├── reduction.h │ │ ├── sddmm.h │ │ ├── softmax.h │ │ ├── sparse_format.h │ │ ├── sparse_matrix.h │ │ ├── spmm.h │ │ └── spspmm.h │ └── src/ │ ├── cpu/ │ │ └── matrix_ops_impl.cc │ ├── elemenwise_op.cc │ ├── matmul.cc │ ├── matmul.h │ ├── matrix_ops.cc │ ├── matrix_ops_impl.h │ ├── python_binding.cc │ ├── reduction.cc │ ├── sddmm.cc │ ├── softmax.cc │ ├── sparse_format.cc │ ├── sparse_matrix.cc │ ├── sparse_matrix_coalesce.cc │ ├── spmm.cc │ ├── spspmm.cc │ └── utils.h ├── dglgo/ │ ├── README.md │ ├── dglgo/ │ │ ├── __init__.py │ │ ├── apply_pipeline/ │ │ │ ├── __init__.py │ │ │ ├── graphpred/ │ │ │ │ ├── __init__.py │ │ │ │ ├── gen.py │ │ │ │ └── graphpred.jinja-py │ │ │ ├── nodepred/ │ │ │ │ ├── __init__.py │ │ │ │ ├── gen.py │ │ │ │ └── nodepred.jinja-py │ │ │ └── nodepred_sample/ │ │ │ ├── __init__.py │ │ │ ├── gen.py │ │ │ └── nodepred-ns.jinja-py │ │ ├── cli/ │ │ │ ├── __init__.py │ │ │ ├── apply_cli.py │ │ │ ├── cli.py │ │ │ ├── config_apply_cli.py │ │ │ ├── config_cli.py │ │ │ ├── export_cli.py │ │ │ ├── recipe_cli.py │ │ │ └── train_cli.py │ │ ├── model/ │ │ │ ├── __init__.py │ │ │ ├── edge_encoder/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bilinear.py │ │ │ │ ├── dot.py │ │ │ │ └── ele.py │ │ │ ├── graph_encoder/ │ │ │ │ ├── __init__.py │ │ │ │ ├── gin_ogbg.py │ │ │ │ └── pna.py │ │ │ └── node_encoder/ │ │ │ ├── __init__.py │ │ │ ├── gat.py │ │ │ ├── gcn.py │ │ │ ├── gin.py │ │ │ ├── sage.py │ │ │ └── sgc.py │ │ ├── pipeline/ │ │ │ ├── __init__.py │ │ │ ├── graphpred/ │ │ │ │ ├── __init__.py │ │ │ │ ├── gen.py │ │ │ │ └── graphpred.jinja-py │ │ │ ├── linkpred/ │ │ │ │ ├── __init__.py │ │ │ │ ├── gen.py │ │ │ │ └── linkpred.jinja-py │ │ │ ├── nodepred/ │ │ │ │ ├── __init__.py │ │ │ │ ├── gen.py │ │ │ │ └── nodepred.jinja-py │ │ │ └── nodepred_sample/ │ │ │ ├── __init__.py │ │ │ ├── gen.py │ │ │ └── nodepred-ns.jinja-py │ │ └── utils/ │ │ ├── __init__.py │ │ ├── base_model.py │ │ ├── early_stop.py │ │ ├── enter_config.py │ │ ├── factory.py │ │ └── yaml_dump.py │ ├── recipes/ │ │ ├── __init__.py │ │ ├── graphpred_hiv_gin.yaml │ │ ├── graphpred_hiv_pna.yaml │ │ ├── graphpred_pcba_gin.yaml │ │ ├── linkpred_citation2_sage.yaml │ │ ├── linkpred_collab_sage.yaml │ │ ├── linkpred_cora_sage.yaml │ │ ├── nodepred-ns_arxiv_gcn.yaml │ │ ├── nodepred-ns_product_sage.yaml │ │ ├── nodepred_citeseer_gat.yaml │ │ ├── nodepred_citeseer_gcn.yaml │ │ ├── nodepred_citeseer_sage.yaml │ │ ├── nodepred_cora_gat.yaml │ │ ├── nodepred_cora_gcn.yaml │ │ ├── nodepred_cora_sage.yaml │ │ ├── nodepred_pubmed_gat.yaml │ │ ├── nodepred_pubmed_gcn.yaml │ │ └── nodepred_pubmed_sage.yaml │ ├── setup.py │ └── tests/ │ ├── cfg.yml │ ├── run_test.sh │ └── test_pipeline.py ├── docker/ │ ├── Dockerfile.awscli │ ├── Dockerfile.ci_benchmark │ ├── Dockerfile.ci_cpu │ ├── Dockerfile.ci_gpu │ ├── Dockerfile.ci_lint │ ├── README.md │ ├── install/ │ │ ├── conda_env/ │ │ │ ├── kg_cpu.yml │ │ │ ├── kg_gpu.yml │ │ │ ├── mxnet_cpu.yml │ │ │ ├── mxnet_gpu.yml │ │ │ ├── tensorflow_cpu.yml │ │ │ ├── tensorflow_gpu.yml │ │ │ ├── torch_cpu.yml │ │ │ ├── torch_cpu_pip.txt │ │ │ ├── torch_gpu.yml │ │ │ └── torch_gpu_pip.txt │ │ ├── ubuntu_install_antlr.sh │ │ ├── ubuntu_install_build.sh │ │ ├── ubuntu_install_conda.sh │ │ ├── ubuntu_install_core.sh │ │ ├── ubuntu_install_java.sh │ │ ├── ubuntu_install_mxnet_cpu.sh │ │ ├── ubuntu_install_mxnet_gpu.sh │ │ ├── ubuntu_install_python.sh │ │ ├── ubuntu_install_python_package.sh │ │ ├── ubuntu_install_torch.sh │ │ └── ubuntu_install_torch_1.2.0.sh │ └── pods/ │ ├── ci-compile-cpu.yaml │ ├── ci-compile-gpu.yaml │ ├── ci-cpu.yaml │ ├── ci-gpu.yaml │ └── ci-lint.yaml ├── docs/ │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── clean.sh │ ├── migrate-guide-0.5.md │ └── source/ │ ├── _static/ │ │ └── css/ │ │ └── custom.css │ ├── _templates/ │ │ ├── classtemplate.rst │ │ └── graphbolt_classtemplate.rst │ ├── api/ │ │ └── python/ │ │ ├── dgl.DGLGraph.rst │ │ ├── dgl.data.rst │ │ ├── dgl.dataloading.rst │ │ ├── dgl.distributed.rst │ │ ├── dgl.function.rst │ │ ├── dgl.geometry.rst │ │ ├── dgl.graphbolt.rst │ │ ├── dgl.multiprocessing.rst │ │ ├── dgl.ops.rst │ │ ├── dgl.optim.rst │ │ ├── dgl.rst │ │ ├── dgl.sampling.rst │ │ ├── dgl.sparse_v0.rst │ │ ├── index.rst │ │ ├── knn_benchmark.rst │ │ ├── nn-mxnet.rst │ │ ├── nn-pytorch.rst │ │ ├── nn-tensorflow.rst │ │ ├── nn.functional.rst │ │ ├── transforms.rst │ │ └── udf.rst │ ├── conf.py │ ├── contribute.rst │ ├── developer/ │ │ └── ffi.rst │ ├── env_var.rst │ ├── faq.rst │ ├── features/ │ │ └── dataset.rst │ ├── gen_dataset_stat.py │ ├── graphtransformer/ │ │ ├── data.rst │ │ ├── index.rst │ │ └── model.rst │ ├── guide/ │ │ ├── data-dataset.rst │ │ ├── data-download.rst │ │ ├── data-loadcsv.rst │ │ ├── data-loadogb.rst │ │ ├── data-process.rst │ │ ├── data-savenload.rst │ │ ├── data.rst │ │ ├── distributed-apis.rst │ │ ├── distributed-hetero.rst │ │ ├── distributed-partition.rst │ │ ├── distributed-preprocessing.rst │ │ ├── distributed-tools.rst │ │ ├── distributed.rst │ │ ├── graph-basic.rst │ │ ├── graph-external.rst │ │ ├── graph-feature.rst │ │ ├── graph-gpu.rst │ │ ├── graph-graphs-nodes-edges.rst │ │ ├── graph-heterogeneous.rst │ │ ├── graph.rst │ │ ├── index.rst │ │ ├── message-api.rst │ │ ├── message-efficient.rst │ │ ├── message-heterograph.rst │ │ ├── message-part.rst │ │ ├── message.rst │ │ ├── minibatch-custom-sampler.rst │ │ ├── minibatch-edge.rst │ │ ├── minibatch-gpu-sampling.rst │ │ ├── minibatch-inference.rst │ │ ├── minibatch-link.rst │ │ ├── minibatch-nn.rst │ │ ├── minibatch-node.rst │ │ ├── minibatch-parallelism.rst │ │ ├── minibatch-sparse.rst │ │ ├── minibatch.rst │ │ ├── mixed_precision.rst │ │ ├── nn-construction.rst │ │ ├── nn-forward.rst │ │ ├── nn-heterograph.rst │ │ ├── nn.rst │ │ ├── training-edge.rst │ │ ├── training-eweight.rst │ │ ├── training-graph.rst │ │ ├── training-link.rst │ │ ├── training-node.rst │ │ └── training.rst │ ├── guide_cn/ │ │ ├── data-dataset.rst │ │ ├── data-download.rst │ │ ├── data-loadogb.rst │ │ ├── data-process.rst │ │ ├── data-savenload.rst │ │ ├── data.rst │ │ ├── distributed-apis.rst │ │ ├── distributed-preprocessing.rst │ │ ├── distributed-tools.rst │ │ ├── distributed.rst │ │ ├── graph-basic.rst │ │ ├── graph-external.rst │ │ ├── graph-feature.rst │ │ ├── graph-gpu.rst │ │ ├── graph-graphs-nodes-edges.rst │ │ ├── graph-heterogeneous.rst │ │ ├── graph.rst │ │ ├── index.rst │ │ ├── message-api.rst │ │ ├── message-efficient.rst │ │ ├── message-heterograph.rst │ │ ├── message-part.rst │ │ ├── message.rst │ │ ├── minibatch-custom-sampler.rst │ │ ├── minibatch-edge.rst │ │ ├── minibatch-inference.rst │ │ ├── minibatch-link.rst │ │ ├── minibatch-nn.rst │ │ ├── minibatch-node.rst │ │ ├── minibatch.rst │ │ ├── nn-construction.rst │ │ ├── nn-forward.rst │ │ ├── nn-heterograph.rst │ │ ├── nn.rst │ │ ├── training-edge.rst │ │ ├── training-eweight.rst │ │ ├── training-graph.rst │ │ ├── training-link.rst │ │ ├── training-node.rst │ │ └── training.rst │ ├── guide_ko/ │ │ ├── data-dataset.rst │ │ ├── data-download.rst │ │ ├── data-loadogb.rst │ │ ├── data-process.rst │ │ ├── data-savenload.rst │ │ ├── data.rst │ │ ├── distributed-apis.rst │ │ ├── distributed-hetero.rst │ │ ├── distributed-preprocessing.rst │ │ ├── distributed-tools.rst │ │ ├── distributed.rst │ │ ├── graph-basic.rst │ │ ├── graph-external.rst │ │ ├── graph-feature.rst │ │ ├── graph-gpu.rst │ │ ├── graph-graphs-nodes-edges.rst │ │ ├── graph-heterogeneous.rst │ │ ├── graph.rst │ │ ├── index.rst │ │ ├── message-api.rst │ │ ├── message-edge.rst │ │ ├── message-efficient.rst │ │ ├── message-heterograph.rst │ │ ├── message-part.rst │ │ ├── message.rst │ │ ├── minibatch-custom-sampler.rst │ │ ├── minibatch-edge.rst │ │ ├── minibatch-gpu-sampling.rst │ │ ├── minibatch-inference.rst │ │ ├── minibatch-link.rst │ │ ├── minibatch-nn.rst │ │ ├── minibatch-node.rst │ │ ├── minibatch.rst │ │ ├── mixed_precision.rst │ │ ├── nn-construction.rst │ │ ├── nn-forward.rst │ │ ├── nn-heterograph.rst │ │ ├── nn.rst │ │ ├── training-edge.rst │ │ ├── training-graph.rst │ │ ├── training-link.rst │ │ ├── training-node.rst │ │ └── training.rst │ ├── index.rst │ ├── install/ │ │ └── index.rst │ ├── notebooks/ │ │ └── sparse/ │ │ ├── gcn.nblink │ │ ├── graph_diffusion.nblink │ │ ├── graph_transformer.nblink │ │ ├── hgnn.nblink │ │ ├── index.rst │ │ └── quickstart.nblink │ ├── performance.rst │ ├── resources.rst │ └── stochastic_training/ │ ├── index.rst │ ├── link_prediction.nblink │ ├── multigpu_node_classification.nblink │ ├── neighbor_sampling_overview.nblink │ ├── node_classification.nblink │ ├── ondisk-dataset-specification.rst │ ├── ondisk-dataset.rst │ ├── ondisk_dataset_heterograph.nblink │ └── ondisk_dataset_homograph.nblink ├── examples/ │ ├── README.md │ ├── advanced/ │ │ └── cugraph/ │ │ ├── graphsage.py │ │ └── rgcn.py │ ├── core/ │ │ ├── Graphormer/ │ │ │ ├── README.md │ │ │ ├── dataset.py │ │ │ ├── main.py │ │ │ └── model.py │ │ ├── gat/ │ │ │ ├── README.md │ │ │ └── train.py │ │ ├── gated_gcn/ │ │ │ ├── README.md │ │ │ └── train.py │ │ ├── graphsage/ │ │ │ └── node_classification.py │ │ └── rgcn/ │ │ ├── README.md │ │ └── hetero_rgcn.py │ ├── distributed/ │ │ ├── graphsage/ │ │ │ ├── README.md │ │ │ ├── node_classification.py │ │ │ ├── node_classification_unsupervised.py │ │ │ └── partition_graph.py │ │ └── rgcn/ │ │ ├── README.md │ │ ├── lp_perf.py │ │ ├── node_classification.py │ │ └── partition_graph.py │ ├── graphbolt/ │ │ ├── README.md │ │ ├── disk_based_feature/ │ │ │ ├── README.md │ │ │ └── node_classification.py │ │ ├── lightning/ │ │ │ ├── README.md │ │ │ └── node_classification.py │ │ ├── link_prediction.py │ │ ├── node_classification.py │ │ ├── pyg/ │ │ │ ├── README.md │ │ │ ├── hetero/ │ │ │ │ └── node_classification.py │ │ │ ├── labor/ │ │ │ │ ├── README.md │ │ │ │ ├── load_dataset.py │ │ │ │ ├── node_classification.py │ │ │ │ └── sage_conv.py │ │ │ ├── link_prediction.py │ │ │ ├── multigpu/ │ │ │ │ └── node_classification.py │ │ │ ├── node_classification.py │ │ │ └── node_classification_advanced.py │ │ ├── quickstart/ │ │ │ ├── README.md │ │ │ ├── link_prediction.py │ │ │ └── node_classification.py │ │ ├── rgcn/ │ │ │ ├── README.md │ │ │ └── hetero_rgcn.py │ │ ├── sparse/ │ │ │ └── graphsage.py │ │ └── temporal_link_prediction.py │ ├── legacy/ │ │ ├── README.md │ │ ├── link_prediction.py │ │ └── node_classification.py │ ├── multigpu/ │ │ ├── README.md │ │ ├── graphbolt/ │ │ │ ├── README.md │ │ │ └── node_classification.py │ │ └── node_classification_sage.py │ ├── mxnet/ │ │ ├── README.md │ │ ├── appnp/ │ │ │ ├── README.md │ │ │ └── appnp.py │ │ ├── gat/ │ │ │ ├── README.md │ │ │ ├── gat.py │ │ │ ├── train.py │ │ │ └── utils.py │ │ ├── gcn/ │ │ │ ├── README.md │ │ │ ├── gcn.py │ │ │ ├── gcn_concat.py │ │ │ ├── gcn_mp.py │ │ │ └── train.py │ │ ├── gin/ │ │ │ ├── README.md │ │ │ ├── dataloader.py │ │ │ ├── gin.py │ │ │ ├── main.py │ │ │ └── parser.py │ │ ├── graphsage/ │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── monet/ │ │ │ ├── README.md │ │ │ └── citation.py │ │ ├── rgcn/ │ │ │ ├── README.md │ │ │ ├── entity_classify.py │ │ │ └── model.py │ │ ├── scenegraph/ │ │ │ ├── README.md │ │ │ ├── data/ │ │ │ │ ├── __init__.py │ │ │ │ ├── dataloader.py │ │ │ │ ├── object.py │ │ │ │ ├── prepare_visualgenome.py │ │ │ │ └── relation.py │ │ │ ├── demo_reldn.py │ │ │ ├── model/ │ │ │ │ ├── __init__.py │ │ │ │ ├── faster_rcnn.py │ │ │ │ └── reldn.py │ │ │ ├── train_faster_rcnn.py │ │ │ ├── train_faster_rcnn.sh │ │ │ ├── train_freq_prior.py │ │ │ ├── train_reldn.py │ │ │ ├── train_reldn.sh │ │ │ ├── utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── build_graph.py │ │ │ │ ├── metric.py │ │ │ │ ├── sampling.py │ │ │ │ └── viz.py │ │ │ ├── validate_reldn.py │ │ │ └── validate_reldn.sh │ │ ├── sgc/ │ │ │ ├── README.md │ │ │ └── sgc.py │ │ ├── tagcn/ │ │ │ ├── README.md │ │ │ ├── tagcn.py │ │ │ └── train.py │ │ └── tree_lstm/ │ │ ├── README.md │ │ ├── train.py │ │ └── tree_lstm.py │ ├── pytorch/ │ │ ├── GATNE-T/ │ │ │ ├── README.md │ │ │ ├── requirements.txt │ │ │ ├── scripts/ │ │ │ │ ├── run_example.sh │ │ │ │ ├── run_example_sparse.sh │ │ │ │ └── run_example_sparse_multi_gpus.sh │ │ │ └── src/ │ │ │ ├── main.py │ │ │ ├── main_sparse.py │ │ │ ├── main_sparse_multi_gpus.py │ │ │ └── utils.py │ │ ├── GNN-FiLM/ │ │ │ ├── README.md │ │ │ ├── data_loader.py │ │ │ ├── main.py │ │ │ └── utils.py │ │ ├── NGCF/ │ │ │ ├── Data/ │ │ │ │ ├── load_amazon-book.sh │ │ │ │ └── load_gowalla.sh │ │ │ ├── NGCF/ │ │ │ │ ├── main.py │ │ │ │ ├── model.py │ │ │ │ └── utility/ │ │ │ │ ├── batch_test.py │ │ │ │ ├── helper.py │ │ │ │ ├── load_data.py │ │ │ │ ├── metrics.py │ │ │ │ └── parser.py │ │ │ └── README.md │ │ ├── P-GNN/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ └── utils.py │ │ ├── TAHIN/ │ │ │ ├── TAHIN.py │ │ │ ├── data_loader.py │ │ │ ├── main.py │ │ │ ├── readme.md │ │ │ └── utils.py │ │ ├── appnp/ │ │ │ ├── README.md │ │ │ ├── appnp.py │ │ │ └── train.py │ │ ├── argo/ │ │ │ ├── README.md │ │ │ ├── argo.py │ │ │ ├── main.py │ │ │ ├── ogb_example.py │ │ │ └── ogb_example_ARGO.py │ │ ├── arma/ │ │ │ ├── README.md │ │ │ ├── citation.py │ │ │ └── model.py │ │ ├── bgnn/ │ │ │ ├── BGNN.py │ │ │ ├── Readme.md │ │ │ └── run.py │ │ ├── bgrl/ │ │ │ ├── README.md │ │ │ ├── eval_function.py │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ └── utils.py │ │ ├── capsule/ │ │ │ ├── DGLDigitCapsule.py │ │ │ ├── DGLRoutingLayer.py │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ └── simple_routing.py │ │ ├── caregnn/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ ├── main_sampling.py │ │ │ ├── model.py │ │ │ ├── model_sampling.py │ │ │ └── utils.py │ │ ├── cluster_gcn/ │ │ │ ├── README.md │ │ │ └── cluster_gcn.py │ │ ├── compGCN/ │ │ │ ├── README.md │ │ │ ├── data_loader.py │ │ │ ├── get_fb15k-237.sh │ │ │ ├── get_wn18rr.sh │ │ │ ├── main.py │ │ │ ├── models.py │ │ │ └── utils.py │ │ ├── correct_and_smooth/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── model.py │ │ ├── dagnn/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── utils.py │ │ ├── deepergcn/ │ │ │ ├── README.md │ │ │ ├── layers.py │ │ │ ├── main.py │ │ │ ├── models.py │ │ │ └── modules.py │ │ ├── deepwalk/ │ │ │ └── README.md │ │ ├── dgi/ │ │ │ ├── README.md │ │ │ ├── dgi.py │ │ │ ├── gcn.py │ │ │ └── train.py │ │ ├── dgmg/ │ │ │ ├── README.md │ │ │ ├── configure.py │ │ │ ├── cycles.py │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ └── utils.py │ │ ├── diffpool/ │ │ │ ├── README.md │ │ │ ├── data_utils.py │ │ │ ├── model/ │ │ │ │ ├── __init__.py │ │ │ │ ├── dgl_layers/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── aggregator.py │ │ │ │ │ ├── bundler.py │ │ │ │ │ └── gnn.py │ │ │ │ ├── encoder.py │ │ │ │ ├── loss.py │ │ │ │ ├── model_utils.py │ │ │ │ └── tensorized_layers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── assignment.py │ │ │ │ ├── diffpool.py │ │ │ │ └── graphsage.py │ │ │ └── train.py │ │ ├── dimenet/ │ │ │ ├── README.md │ │ │ ├── config/ │ │ │ │ ├── convert.yaml │ │ │ │ ├── dimenet.yaml │ │ │ │ └── dimenet_pp.yaml │ │ │ ├── convert_tf_ckpt_to_pytorch.py │ │ │ ├── main.py │ │ │ ├── modules/ │ │ │ │ ├── activations.py │ │ │ │ ├── basis_utils.py │ │ │ │ ├── bessel_basis_layer.py │ │ │ │ ├── dimenet.py │ │ │ │ ├── dimenet_pp.py │ │ │ │ ├── embedding_block.py │ │ │ │ ├── envelope.py │ │ │ │ ├── initializers.py │ │ │ │ ├── interaction_block.py │ │ │ │ ├── interaction_pp_block.py │ │ │ │ ├── output_block.py │ │ │ │ ├── output_pp_block.py │ │ │ │ ├── residual_layer.py │ │ │ │ └── spherical_basis_layer.py │ │ │ └── qm9.py │ │ ├── dtgrnn/ │ │ │ ├── README.md │ │ │ ├── dataloading.py │ │ │ ├── dcrnn.py │ │ │ ├── gaan.py │ │ │ ├── model.py │ │ │ ├── train.py │ │ │ └── utils.py │ │ ├── eeg-gcnn/ │ │ │ ├── EEGGraphDataset.py │ │ │ ├── README.md │ │ │ ├── deep_EEGGraphConvNet.py │ │ │ ├── main.py │ │ │ └── shallow_EEGGraphConvNet.py │ │ ├── eges/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ ├── sampler.py │ │ │ └── utils.py │ │ ├── evolveGCN/ │ │ │ ├── README.md │ │ │ ├── dataset.py │ │ │ ├── model.py │ │ │ ├── train.py │ │ │ └── utils.py │ │ ├── gas/ │ │ │ ├── README.md │ │ │ ├── dataloader.py │ │ │ ├── main.py │ │ │ ├── main_sampling.py │ │ │ ├── model.py │ │ │ └── model_sampling.py │ │ ├── gat/ │ │ │ ├── README.md │ │ │ ├── train.py │ │ │ └── train_ppi.py │ │ ├── gatv2/ │ │ │ ├── README.md │ │ │ ├── gatv2.py │ │ │ └── train.py │ │ ├── gcmc/ │ │ │ ├── README.md │ │ │ ├── data.py │ │ │ ├── model.py │ │ │ ├── train.py │ │ │ ├── train_sampling.py │ │ │ └── utils.py │ │ ├── gcn/ │ │ │ ├── README.md │ │ │ └── train.py │ │ ├── geniepath/ │ │ │ ├── README.md │ │ │ ├── model.py │ │ │ ├── ppi.py │ │ │ └── pubmed.py │ │ ├── ggnn/ │ │ │ ├── README.md │ │ │ ├── data_utils.py │ │ │ ├── ggnn_gc.py │ │ │ ├── ggnn_ns.py │ │ │ ├── ggsnn.py │ │ │ ├── train_gc.py │ │ │ ├── train_ns.py │ │ │ └── train_path_finding.py │ │ ├── gin/ │ │ │ ├── README.md │ │ │ └── train.py │ │ ├── gnn_explainer/ │ │ │ ├── README.md │ │ │ ├── explain_main.py │ │ │ ├── gnn_subgraph/ │ │ │ │ ├── 1/ │ │ │ │ │ ├── graph.json │ │ │ │ │ ├── model_list.json │ │ │ │ │ ├── subgraph_1.json │ │ │ │ │ └── subgraph_list.json │ │ │ │ └── dataset_list.json │ │ │ ├── models.py │ │ │ └── train_main.py │ │ ├── grace/ │ │ │ ├── README.md │ │ │ ├── aug.py │ │ │ ├── dataset.py │ │ │ ├── eval.py │ │ │ ├── main.py │ │ │ └── model.py │ │ ├── grand/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── model.py │ │ ├── graph_matching/ │ │ │ ├── README.md │ │ │ ├── examples.py │ │ │ └── ged.py │ │ ├── graphsage/ │ │ │ ├── README.md │ │ │ ├── advanced/ │ │ │ │ ├── README.md │ │ │ │ ├── model.py │ │ │ │ ├── negative_sampler.py │ │ │ │ └── train_lightning_unsupervised.py │ │ │ ├── lightning/ │ │ │ │ └── node_classification.py │ │ │ ├── link_pred.py │ │ │ ├── load_graph.py │ │ │ ├── node_classification.py │ │ │ └── train_full.py │ │ ├── graphsaint/ │ │ │ ├── README.md │ │ │ ├── config.py │ │ │ ├── modules.py │ │ │ ├── sampler.py │ │ │ ├── train_sampling.py │ │ │ └── utils.py │ │ ├── graphsim/ │ │ │ ├── README.md │ │ │ ├── dataloader.py │ │ │ ├── models.py │ │ │ ├── n_body_sim.py │ │ │ ├── train.py │ │ │ └── utils.py │ │ ├── graphwriter/ │ │ │ ├── README.md │ │ │ ├── graphwriter.py │ │ │ ├── modules.py │ │ │ ├── opts.py │ │ │ ├── prepare_data.sh │ │ │ ├── run.sh │ │ │ ├── test.sh │ │ │ ├── train.py │ │ │ └── utlis.py │ │ ├── gxn/ │ │ │ ├── README.md │ │ │ ├── data_preprocess.py │ │ │ ├── layers.py │ │ │ ├── main.py │ │ │ ├── main_early_stop.py │ │ │ ├── networks.py │ │ │ ├── scripts/ │ │ │ │ ├── run_gxn.sh │ │ │ │ └── run_gxn_early_stop.sh │ │ │ └── utils.py │ │ ├── han/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ ├── model_hetero.py │ │ │ ├── train_sampling.py │ │ │ └── utils.py │ │ ├── hardgat/ │ │ │ ├── README.md │ │ │ ├── hgao.py │ │ │ ├── train.py │ │ │ └── utils.py │ │ ├── hgp_sl/ │ │ │ ├── README.md │ │ │ ├── functions.py │ │ │ ├── layers.py │ │ │ ├── main.py │ │ │ ├── networks.py │ │ │ └── utils.py │ │ ├── hgt/ │ │ │ ├── README.md │ │ │ ├── model.py │ │ │ └── train_acm.py │ │ ├── hilander/ │ │ │ ├── PSS/ │ │ │ │ ├── README.md │ │ │ │ ├── Smooth_AP/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── src/ │ │ │ │ │ ├── auxiliaries.py │ │ │ │ │ ├── datasets.py │ │ │ │ │ ├── evaluate.py │ │ │ │ │ ├── evaluate_model.py │ │ │ │ │ ├── finetune_1head.py │ │ │ │ │ ├── get_features.py │ │ │ │ │ ├── losses.py │ │ │ │ │ ├── main.py │ │ │ │ │ └── netlib.py │ │ │ │ ├── __init__.py │ │ │ │ ├── test.sh │ │ │ │ ├── test_subg_inat.py │ │ │ │ ├── train.sh │ │ │ │ └── train_subg_inat.py │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── checkpoint/ │ │ │ │ └── .gitkeep │ │ │ ├── data/ │ │ │ │ └── .gitkeep │ │ │ ├── models/ │ │ │ │ ├── __init__.py │ │ │ │ ├── focal_loss.py │ │ │ │ ├── graphconv.py │ │ │ │ └── lander.py │ │ │ ├── scripts/ │ │ │ │ ├── test_deepglint_hannah.sh │ │ │ │ ├── test_deepglint_imdb.sh │ │ │ │ ├── test_deepglint_imdb_sampled_as_deepglint.sh │ │ │ │ ├── test_inat.sh │ │ │ │ ├── test_inat_train_on_resampled_1_in_6_per_class.sh │ │ │ │ ├── train_deepglint.sh │ │ │ │ ├── train_inat.sh │ │ │ │ └── train_inat_resampled_1_in_6_per_class.sh │ │ │ ├── test.py │ │ │ ├── test_subg.py │ │ │ ├── train.py │ │ │ ├── train_subg.py │ │ │ └── utils/ │ │ │ ├── __init__.py │ │ │ ├── adjacency.py │ │ │ ├── deduce.py │ │ │ ├── density.py │ │ │ ├── evaluate.py │ │ │ ├── faiss_gpu.py │ │ │ ├── faiss_search.py │ │ │ ├── knn.py │ │ │ ├── metrics.py │ │ │ └── misc.py │ │ ├── infograph/ │ │ │ ├── README.md │ │ │ ├── evaluate_embedding.py │ │ │ ├── model.py │ │ │ ├── semisupervised.py │ │ │ ├── unsupervised.py │ │ │ └── utils.py │ │ ├── jknet/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── model.py │ │ ├── jtnn/ │ │ │ ├── README.md │ │ │ ├── jtnn/ │ │ │ │ ├── __init__.py │ │ │ │ ├── chemutils.py │ │ │ │ ├── datautils.py │ │ │ │ ├── jtmpn.py │ │ │ │ ├── jtnn_dec.py │ │ │ │ ├── jtnn_enc.py │ │ │ │ ├── jtnn_vae.py │ │ │ │ ├── line_profiler_integration.py │ │ │ │ ├── mol_tree.py │ │ │ │ ├── mol_tree_nx.py │ │ │ │ ├── mpn.py │ │ │ │ └── nnutils.py │ │ │ └── vaetrain_dgl.py │ │ ├── label_propagation/ │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── labor/ │ │ │ ├── README.md │ │ │ ├── ladies_sampler.py │ │ │ ├── load_graph.py │ │ │ ├── model.py │ │ │ └── train_lightning.py │ │ ├── lda/ │ │ │ ├── README.md │ │ │ ├── example_20newsgroups.py │ │ │ └── lda_model.py │ │ ├── line_graph/ │ │ │ ├── README.md │ │ │ ├── gnn.py │ │ │ └── train.py │ │ ├── metapath2vec/ │ │ │ ├── README.md │ │ │ ├── download.py │ │ │ ├── metapath2vec.py │ │ │ ├── model.py │ │ │ ├── reading_data.py │ │ │ ├── sampler.py │ │ │ └── test.py │ │ ├── mixhop/ │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── model_zoo/ │ │ │ ├── README.md │ │ │ ├── citation_network/ │ │ │ │ ├── README.md │ │ │ │ ├── conf.py │ │ │ │ ├── models.py │ │ │ │ └── run.py │ │ │ └── geometric/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── coarsening.py │ │ │ ├── coordinate.py │ │ │ ├── grid_graph.py │ │ │ └── mnist.py │ │ ├── monet/ │ │ │ ├── README.md │ │ │ └── citation.py │ │ ├── multigpu/ │ │ │ ├── README.md │ │ │ ├── multi_gpu_graph_prediction.py │ │ │ ├── multi_gpu_link_prediction.py │ │ │ └── multi_gpu_node_classification.py │ │ ├── mvgrl/ │ │ │ ├── README.md │ │ │ ├── graph/ │ │ │ │ ├── dataset.py │ │ │ │ ├── main.py │ │ │ │ ├── model.py │ │ │ │ └── utils.py │ │ │ └── node/ │ │ │ ├── dataset.py │ │ │ ├── main.py │ │ │ ├── main_sample.py │ │ │ └── model.py │ │ ├── node2vec/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ └── utils.py │ │ ├── ogb/ │ │ │ ├── README.md │ │ │ ├── cluster-gat/ │ │ │ │ ├── README.md │ │ │ │ ├── main.py │ │ │ │ ├── partition_utils.py │ │ │ │ └── sampler.py │ │ │ ├── cluster-sage/ │ │ │ │ ├── README.md │ │ │ │ ├── main.py │ │ │ │ ├── partition_utils.py │ │ │ │ └── sampler.py │ │ │ ├── deepwalk/ │ │ │ │ ├── README.md │ │ │ │ ├── deepwalk.py │ │ │ │ ├── load_dataset.py │ │ │ │ ├── model.py │ │ │ │ ├── reading_data.py │ │ │ │ └── utils.py │ │ │ ├── directional_GSN/ │ │ │ │ ├── README.md │ │ │ │ ├── main.py │ │ │ │ └── preprocessing.py │ │ │ ├── line/ │ │ │ │ ├── README.md │ │ │ │ ├── line.py │ │ │ │ ├── load_dataset.py │ │ │ │ ├── model.py │ │ │ │ ├── reading_data.py │ │ │ │ └── utils.py │ │ │ ├── ngnn/ │ │ │ │ ├── README.md │ │ │ │ └── main.py │ │ │ ├── ngnn_seal/ │ │ │ │ ├── README.md │ │ │ │ ├── main.py │ │ │ │ ├── models.py │ │ │ │ └── utils.py │ │ │ ├── ogbn-arxiv/ │ │ │ │ ├── README.md │ │ │ │ ├── correct_and_smooth.py │ │ │ │ ├── gat.py │ │ │ │ ├── gcn.py │ │ │ │ └── models.py │ │ │ ├── ogbn-mag/ │ │ │ │ ├── README.md │ │ │ │ └── hetero_rgcn.py │ │ │ ├── ogbn-products/ │ │ │ │ ├── gat/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── gat.py │ │ │ │ │ ├── main.py │ │ │ │ │ └── models.py │ │ │ │ ├── graphsage/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── main.py │ │ │ │ └── mlp/ │ │ │ │ ├── README.md │ │ │ │ ├── mlp.py │ │ │ │ └── models.py │ │ │ ├── ogbn-proteins/ │ │ │ │ ├── README.md │ │ │ │ ├── configure.py │ │ │ │ ├── gat.py │ │ │ │ ├── main_proteins_full_dgl.py │ │ │ │ ├── models.py │ │ │ │ └── utils.py │ │ │ ├── seal_ogbl/ │ │ │ │ ├── README.md │ │ │ │ └── main.py │ │ │ └── sign/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── dataset.py │ │ │ └── sign.py │ │ ├── ogb_lsc/ │ │ │ ├── MAG240M/ │ │ │ │ ├── README.md │ │ │ │ ├── preprocess.py │ │ │ │ ├── train.py │ │ │ │ └── train_multi_gpus.py │ │ │ ├── PCQM4M/ │ │ │ │ ├── README.md │ │ │ │ ├── conv.py │ │ │ │ ├── gnn.py │ │ │ │ ├── main.py │ │ │ │ └── test_inference.py │ │ │ └── README.md │ │ ├── ogc/ │ │ │ ├── README.md │ │ │ ├── ogc.py │ │ │ ├── train.py │ │ │ └── utils.py │ │ ├── pagerank.py │ │ ├── pinsage/ │ │ │ ├── README.md │ │ │ ├── builder.py │ │ │ ├── data_utils.py │ │ │ ├── evaluation.py │ │ │ ├── layers.py │ │ │ ├── model.py │ │ │ ├── model_sparse.py │ │ │ ├── process_movielens1m.py │ │ │ ├── process_nowplaying_rs.py │ │ │ └── sampler.py │ │ ├── pointcloud/ │ │ │ ├── bipointnet/ │ │ │ │ ├── ModelNetDataLoader.py │ │ │ │ ├── README.md │ │ │ │ ├── basic.py │ │ │ │ ├── bipointnet2.py │ │ │ │ ├── bipointnet_cls.py │ │ │ │ └── train_cls.py │ │ │ ├── edgeconv/ │ │ │ │ ├── README.md │ │ │ │ ├── main.py │ │ │ │ ├── model.py │ │ │ │ └── modelnet.py │ │ │ ├── pct/ │ │ │ │ ├── ModelNetDataLoader.py │ │ │ │ ├── README.md │ │ │ │ ├── ShapeNet.py │ │ │ │ ├── helper.py │ │ │ │ ├── pct.py │ │ │ │ ├── provider.py │ │ │ │ ├── train_cls.py │ │ │ │ └── train_partseg.py │ │ │ ├── point_transformer/ │ │ │ │ ├── ModelNetDataLoader.py │ │ │ │ ├── README.md │ │ │ │ ├── ShapeNet.py │ │ │ │ ├── helper.py │ │ │ │ ├── point_transformer.py │ │ │ │ ├── provider.py │ │ │ │ ├── train_cls.py │ │ │ │ └── train_partseg.py │ │ │ └── pointnet/ │ │ │ ├── ModelNetDataLoader.py │ │ │ ├── README.md │ │ │ ├── ShapeNet.py │ │ │ ├── pointnet2.py │ │ │ ├── pointnet2_partseg.py │ │ │ ├── pointnet_cls.py │ │ │ ├── pointnet_partseg.py │ │ │ ├── provider.py │ │ │ ├── train_cls.py │ │ │ └── train_partseg.py │ │ ├── rect/ │ │ │ ├── README.md │ │ │ ├── classify.py │ │ │ ├── label_utils.py │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ └── utils.py │ │ ├── rgat/ │ │ │ ├── README.md │ │ │ └── train.py │ │ ├── rgcn/ │ │ │ ├── README.md │ │ │ ├── entity.py │ │ │ ├── entity_sample.py │ │ │ ├── entity_sample_multi_gpu.py │ │ │ ├── entity_utils.py │ │ │ ├── experimental/ │ │ │ │ ├── README.md │ │ │ │ ├── entity_classify_dist.py │ │ │ │ ├── get_mag_data.py │ │ │ │ ├── partition_graph.py │ │ │ │ ├── preprocessing_dist_training/ │ │ │ │ │ ├── edges/ │ │ │ │ │ │ ├── identity1/ │ │ │ │ │ │ │ └── sample.csv │ │ │ │ │ │ ├── identity2/ │ │ │ │ │ │ │ └── sample.csv │ │ │ │ │ │ └── identity3/ │ │ │ │ │ │ └── sample.csv │ │ │ │ │ ├── metis_creation.py │ │ │ │ │ ├── nodes/ │ │ │ │ │ │ └── order/ │ │ │ │ │ │ └── sample.csv │ │ │ │ │ └── pre_process_dist_training.sh │ │ │ │ ├── verify_mag_partitions.py │ │ │ │ └── write_mag.py │ │ │ ├── link.py │ │ │ └── model.py │ │ ├── rgcn-hetero/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── entity_classify.py │ │ │ ├── entity_classify_heteroAPI.py │ │ │ ├── entity_classify_mb.py │ │ │ ├── model.py │ │ │ └── test_classify.py │ │ ├── rrn/ │ │ │ ├── README.md │ │ │ ├── ckpt/ │ │ │ │ └── rrn-sudoku.pkl │ │ │ ├── rrn.py │ │ │ ├── sudoku.py │ │ │ ├── sudoku_data.py │ │ │ ├── sudoku_solver.py │ │ │ └── train_sudoku.py │ │ ├── sagpool/ │ │ │ ├── README.md │ │ │ ├── grid_search.py │ │ │ ├── grid_search_config.json │ │ │ ├── layer.py │ │ │ ├── main.py │ │ │ ├── network.py │ │ │ └── utils.py │ │ ├── seal/ │ │ │ ├── README.md │ │ │ ├── logger.py │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ ├── sampler.py │ │ │ └── utils.py │ │ ├── sgc/ │ │ │ ├── README.md │ │ │ ├── sgc.py │ │ │ └── sgc_reddit.py │ │ ├── sign/ │ │ │ ├── README.md │ │ │ ├── dataset.py │ │ │ └── sign.py │ │ ├── stgcn_wave/ │ │ │ ├── README.md │ │ │ ├── load_data.py │ │ │ ├── main.py │ │ │ ├── model.py │ │ │ ├── sensors2graph.py │ │ │ └── utils.py │ │ ├── tagcn/ │ │ │ ├── README.md │ │ │ ├── tagcn.py │ │ │ └── train.py │ │ ├── tgn/ │ │ │ └── README.md │ │ ├── tree_lstm/ │ │ │ ├── README.md │ │ │ ├── train.py │ │ │ └── tree_lstm.py │ │ ├── vgae/ │ │ │ ├── README.md │ │ │ ├── input_data.py │ │ │ ├── model.py │ │ │ ├── preprocess.py │ │ │ └── train.py │ │ └── vrgcn/ │ │ ├── README.md │ │ ├── train_cv.py │ │ └── train_cv_multi_gpu.py │ ├── sparse/ │ │ ├── appnp.py │ │ ├── c_and_s.py │ │ ├── gat.py │ │ ├── gcn.py │ │ ├── gcnii.py │ │ ├── graph_transformer.py │ │ ├── han.py │ │ ├── hetero-rgcn.py │ │ ├── hgnn.py │ │ ├── hypergraphatt.py │ │ ├── pagerank.py │ │ ├── sampling/ │ │ │ ├── graphsage.py │ │ │ └── ladies.py │ │ ├── sgc.py │ │ ├── sign.py │ │ └── twirls.py │ └── tensorflow/ │ ├── dgi/ │ │ ├── README.md │ │ ├── dgi.py │ │ ├── gcn.py │ │ └── train.py │ ├── gat/ │ │ ├── README.md │ │ ├── gat.py │ │ ├── train.py │ │ └── utils.py │ ├── gcn/ │ │ ├── README.md │ │ ├── gcn.py │ │ ├── gcn_builtin.py │ │ ├── gcn_mp.py │ │ └── train.py │ ├── rgcn/ │ │ ├── README.md │ │ ├── entity_classify.py │ │ ├── model.py │ │ └── utils.py │ └── sgc/ │ ├── README.md │ └── sgc.py ├── graphbolt/ │ ├── CMakeLists.txt │ ├── build.bat │ ├── build.sh │ ├── find_cmake.py │ ├── include/ │ │ └── graphbolt/ │ │ ├── async.h │ │ ├── continuous_seed.h │ │ ├── cuda_ops.h │ │ ├── cuda_sampling_ops.h │ │ ├── fused_csc_sampling_graph.h │ │ ├── fused_sampled_subgraph.h │ │ ├── isin.h │ │ ├── serialize.h │ │ ├── shared_memory.h │ │ └── unique_and_compact.h │ └── src/ │ ├── cache_policy.cc │ ├── cache_policy.h │ ├── circular_queue.h │ ├── cnumpy.cc │ ├── cnumpy.h │ ├── concurrent_id_hash_map.cc │ ├── concurrent_id_hash_map.h │ ├── cuda/ │ │ ├── common.h │ │ ├── cooperative_minibatching_utils.cu │ │ ├── cooperative_minibatching_utils.cuh │ │ ├── cooperative_minibatching_utils.h │ │ ├── cumsum.cu │ │ ├── expand_indptr.cu │ │ ├── extension/ │ │ │ ├── gpu_cache.cu │ │ │ ├── gpu_cache.h │ │ │ ├── gpu_graph_cache.cu │ │ │ ├── gpu_graph_cache.h │ │ │ ├── unique_and_compact.h │ │ │ └── unique_and_compact_map.cu │ │ ├── gather.cu │ │ ├── index_select_csc_impl.cu │ │ ├── index_select_impl.cu │ │ ├── insubgraph.cu │ │ ├── isin.cu │ │ ├── max_uva_threads.cc │ │ ├── max_uva_threads.h │ │ ├── neighbor_sampler.cu │ │ ├── sampling_utils.cu │ │ ├── sort_impl.cu │ │ ├── unique_and_compact_impl.cu │ │ └── utils.h │ ├── expand_indptr.cc │ ├── expand_indptr.h │ ├── feature_cache.cc │ ├── feature_cache.h │ ├── fused_csc_sampling_graph.cc │ ├── index_select.cc │ ├── index_select.h │ ├── io_uring.cc │ ├── io_uring.h │ ├── isin.cc │ ├── macro.h │ ├── partitioned_cache_policy.cc │ ├── partitioned_cache_policy.h │ ├── python_binding.cc │ ├── random.cc │ ├── random.h │ ├── serialize.cc │ ├── shared_memory.cc │ ├── shared_memory_helper.cc │ ├── shared_memory_helper.h │ ├── unique_and_compact.cc │ ├── utils.cc │ └── utils.h ├── include/ │ └── dgl/ │ ├── array.h │ ├── array_iterator.h │ ├── aten/ │ │ ├── array_ops.h │ │ ├── coo.h │ │ ├── csr.h │ │ ├── macro.h │ │ ├── spmat.h │ │ └── types.h │ ├── base_heterograph.h │ ├── bcast.h │ ├── env_variable.h │ ├── graph.h │ ├── graph_interface.h │ ├── graph_op.h │ ├── graph_serializer.h │ ├── graph_traversal.h │ ├── immutable_graph.h │ ├── kernel.h │ ├── lazy.h │ ├── nodeflow.h │ ├── packed_func_ext.h │ ├── random.h │ ├── runtime/ │ │ ├── bfloat16.h │ │ ├── c_backend_api.h │ │ ├── c_object_api.h │ │ ├── c_runtime_api.h │ │ ├── config.h │ │ ├── container.h │ │ ├── device_api.h │ │ ├── dlpack_convert.h │ │ ├── module.h │ │ ├── ndarray.h │ │ ├── object.h │ │ ├── packed_func.h │ │ ├── parallel_for.h │ │ ├── registry.h │ │ ├── serializer.h │ │ ├── shared_mem.h │ │ ├── smart_ptr_serializer.h │ │ ├── tensordispatch.h │ │ ├── threading_backend.h │ │ └── util.h │ ├── sampler.h │ ├── sampling/ │ │ ├── negative.h │ │ ├── neighbor.h │ │ └── randomwalks.h │ ├── scheduler.h │ ├── transform.h │ └── zerocopy_serializer.h ├── notebooks/ │ ├── graphbolt/ │ │ └── walkthrough.ipynb │ ├── sparse/ │ │ ├── gcn.ipynb │ │ ├── graph_diffusion.ipynb │ │ ├── graph_transformer.ipynb │ │ ├── hgnn.ipynb │ │ └── quickstart.ipynb │ └── stochastic_training/ │ ├── link_prediction.ipynb │ ├── multigpu_node_classification.ipynb │ ├── neighbor_sampling_overview.ipynb │ ├── node_classification.ipynb │ ├── ondisk_dataset_heterograph.ipynb │ └── ondisk_dataset_homograph.ipynb ├── pyproject.toml ├── python/ │ ├── dgl/ │ │ ├── __init__.py │ │ ├── _api_internal.py │ │ ├── _ffi/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── _ctypes/ │ │ │ │ ├── __init__.py │ │ │ │ ├── function.py │ │ │ │ ├── ndarray.py │ │ │ │ ├── object.py │ │ │ │ └── types.py │ │ │ ├── _cy2/ │ │ │ │ └── __init__.py │ │ │ ├── _cy3/ │ │ │ │ └── __init__.py │ │ │ ├── _cython/ │ │ │ │ ├── .gitignore │ │ │ │ ├── base.pxi │ │ │ │ ├── core.pyx │ │ │ │ ├── function.pxi │ │ │ │ ├── ndarray.pxi │ │ │ │ └── object.pxi │ │ │ ├── base.py │ │ │ ├── capi.py │ │ │ ├── function.py │ │ │ ├── libinfo.py │ │ │ ├── ndarray.py │ │ │ ├── object.py │ │ │ ├── object_generic.py │ │ │ ├── runtime_ctypes.py │ │ │ └── streams.py │ │ ├── _sparse_ops.py │ │ ├── backend/ │ │ │ ├── __init__.py │ │ │ ├── backend.py │ │ │ ├── mxnet/ │ │ │ │ ├── __init__.py │ │ │ │ ├── sparse.py │ │ │ │ ├── sparse_optim.py │ │ │ │ └── tensor.py │ │ │ ├── pytorch/ │ │ │ │ ├── __init__.py │ │ │ │ ├── sparse.py │ │ │ │ └── tensor.py │ │ │ ├── set_default_backend.py │ │ │ └── tensorflow/ │ │ │ ├── __init__.py │ │ │ ├── sparse.py │ │ │ ├── sparse_optim.py │ │ │ └── tensor.py │ │ ├── base.py │ │ ├── batch.py │ │ ├── container.py │ │ ├── convert.py │ │ ├── core.py │ │ ├── cuda/ │ │ │ ├── __init__.py │ │ │ ├── gpu_cache.py │ │ │ └── nccl.py │ │ ├── data/ │ │ │ ├── __init__.py │ │ │ ├── actor.py │ │ │ ├── adapter.py │ │ │ ├── bitcoinotc.py │ │ │ ├── citation_graph.py │ │ │ ├── cluster.py │ │ │ ├── csv_dataset.py │ │ │ ├── csv_dataset_base.py │ │ │ ├── dgl_dataset.py │ │ │ ├── fakenews.py │ │ │ ├── flickr.py │ │ │ ├── fraud.py │ │ │ ├── gdelt.py │ │ │ ├── geom_gcn.py │ │ │ ├── gindt.py │ │ │ ├── gnn_benchmark.py │ │ │ ├── graph_serialize.py │ │ │ ├── heterograph_serialize.py │ │ │ ├── heterophilous_graphs.py │ │ │ ├── icews18.py │ │ │ ├── karate.py │ │ │ ├── knowledge_graph.py │ │ │ ├── lrgb.py │ │ │ ├── minigc.py │ │ │ ├── movielens.py │ │ │ ├── pattern.py │ │ │ ├── ppi.py │ │ │ ├── qm7b.py │ │ │ ├── qm9.py │ │ │ ├── qm9_edge.py │ │ │ ├── rdf.py │ │ │ ├── reddit.py │ │ │ ├── sbm.py │ │ │ ├── superpixel.py │ │ │ ├── synthetic.py │ │ │ ├── tensor_serialize.py │ │ │ ├── tree.py │ │ │ ├── tu.py │ │ │ ├── utils.py │ │ │ ├── wikics.py │ │ │ ├── yelp.py │ │ │ └── zinc.py │ │ ├── dataloading/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── capped_neighbor_sampler.py │ │ │ ├── cluster_gcn.py │ │ │ ├── dataloader.py │ │ │ ├── graphsaint.py │ │ │ ├── labor_sampler.py │ │ │ ├── negative_sampler.py │ │ │ ├── neighbor_sampler.py │ │ │ ├── shadow.py │ │ │ └── spot_target.py │ │ ├── distgnn/ │ │ │ ├── __init__.py │ │ │ ├── partition/ │ │ │ │ ├── __init__.py │ │ │ │ └── libra_partition.py │ │ │ └── tools/ │ │ │ ├── __init__.py │ │ │ └── tools.py │ │ ├── distributed/ │ │ │ ├── __init__.py │ │ │ ├── constants.py │ │ │ ├── dist_context.py │ │ │ ├── dist_dataloader.py │ │ │ ├── dist_graph.py │ │ │ ├── dist_tensor.py │ │ │ ├── graph_partition_book.py │ │ │ ├── graph_services.py │ │ │ ├── id_map.py │ │ │ ├── kvstore.py │ │ │ ├── nn/ │ │ │ │ ├── __init__.py │ │ │ │ ├── mxnet/ │ │ │ │ │ └── __init__.py │ │ │ │ ├── pytorch/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── sparse_emb.py │ │ │ │ └── tensorflow/ │ │ │ │ └── __init__.py │ │ │ ├── optim/ │ │ │ │ ├── __init__.py │ │ │ │ ├── mxnet/ │ │ │ │ │ └── __init__.py │ │ │ │ ├── pytorch/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── sparse_optim.py │ │ │ │ │ └── utils.py │ │ │ │ └── tensorflow/ │ │ │ │ └── __init__.py │ │ │ ├── partition.py │ │ │ ├── role.py │ │ │ ├── rpc.py │ │ │ ├── rpc_client.py │ │ │ ├── rpc_server.py │ │ │ ├── server_state.py │ │ │ ├── shared_mem_utils.py │ │ │ └── standalone_kvstore.py │ │ ├── frame.py │ │ ├── function/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── message.py │ │ │ └── reducer.py │ │ ├── generators.py │ │ ├── geometry/ │ │ │ ├── __init__.py │ │ │ ├── capi.py │ │ │ ├── edge_coarsening.py │ │ │ └── fps.py │ │ ├── global_config.py │ │ ├── graph_index.py │ │ ├── graphbolt/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── dataloader.py │ │ │ ├── datapipes/ │ │ │ │ ├── __init__.py │ │ │ │ ├── utils.py │ │ │ │ └── visualization.py │ │ │ ├── dataset.py │ │ │ ├── external_utils.py │ │ │ ├── feature_fetcher.py │ │ │ ├── feature_store.py │ │ │ ├── impl/ │ │ │ │ ├── __init__.py │ │ │ │ ├── basic_feature_store.py │ │ │ │ ├── cooperative_conv.py │ │ │ │ ├── cpu_cached_feature.py │ │ │ │ ├── cpu_feature_cache.py │ │ │ │ ├── fused_csc_sampling_graph.py │ │ │ │ ├── gpu_cached_feature.py │ │ │ │ ├── gpu_feature_cache.py │ │ │ │ ├── gpu_graph_cache.py │ │ │ │ ├── in_subgraph_sampler.py │ │ │ │ ├── legacy_dataset.py │ │ │ │ ├── neighbor_sampler.py │ │ │ │ ├── ondisk_dataset.py │ │ │ │ ├── ondisk_metadata.py │ │ │ │ ├── sampled_subgraph_impl.py │ │ │ │ ├── temporal_neighbor_sampler.py │ │ │ │ ├── torch_based_feature_store.py │ │ │ │ └── uniform_negative_sampler.py │ │ │ ├── internal/ │ │ │ │ ├── __init__.py │ │ │ │ ├── item_sampler_utils.py │ │ │ │ ├── sample_utils.py │ │ │ │ └── utils.py │ │ │ ├── internal_utils.py │ │ │ ├── item_sampler.py │ │ │ ├── itemset.py │ │ │ ├── minibatch.py │ │ │ ├── minibatch_transformer.py │ │ │ ├── negative_sampler.py │ │ │ ├── sampled_subgraph.py │ │ │ ├── sampling_graph.py │ │ │ └── subgraph_sampler.py │ │ ├── heterograph.py │ │ ├── heterograph_index.py │ │ ├── homophily.py │ │ ├── init.py │ │ ├── label_informativeness.py │ │ ├── logging.py │ │ ├── merge.py │ │ ├── mpops/ │ │ │ ├── __init__.py │ │ │ ├── edgewise.py │ │ │ ├── fused.py │ │ │ └── nodewise.py │ │ ├── multiprocessing/ │ │ │ ├── __init__.py │ │ │ └── pytorch.py │ │ ├── ndarray.py │ │ ├── nn/ │ │ │ ├── __init__.py │ │ │ ├── functional/ │ │ │ │ └── __init__.py │ │ │ ├── mxnet/ │ │ │ │ ├── __init__.py │ │ │ │ ├── conv/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── agnnconv.py │ │ │ │ │ ├── appnpconv.py │ │ │ │ │ ├── chebconv.py │ │ │ │ │ ├── densechebconv.py │ │ │ │ │ ├── densegraphconv.py │ │ │ │ │ ├── densesageconv.py │ │ │ │ │ ├── edgeconv.py │ │ │ │ │ ├── gatconv.py │ │ │ │ │ ├── gatedgraphconv.py │ │ │ │ │ ├── ginconv.py │ │ │ │ │ ├── gmmconv.py │ │ │ │ │ ├── graphconv.py │ │ │ │ │ ├── nnconv.py │ │ │ │ │ ├── relgraphconv.py │ │ │ │ │ ├── sageconv.py │ │ │ │ │ ├── sgconv.py │ │ │ │ │ └── tagconv.py │ │ │ │ ├── glob.py │ │ │ │ ├── hetero.py │ │ │ │ ├── softmax.py │ │ │ │ └── utils.py │ │ │ ├── pytorch/ │ │ │ │ ├── __init__.py │ │ │ │ ├── conv/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── agnnconv.py │ │ │ │ │ ├── appnpconv.py │ │ │ │ │ ├── atomicconv.py │ │ │ │ │ ├── cfconv.py │ │ │ │ │ ├── chebconv.py │ │ │ │ │ ├── cugraph_base.py │ │ │ │ │ ├── cugraph_gatconv.py │ │ │ │ │ ├── cugraph_relgraphconv.py │ │ │ │ │ ├── cugraph_sageconv.py │ │ │ │ │ ├── densechebconv.py │ │ │ │ │ ├── densegraphconv.py │ │ │ │ │ ├── densesageconv.py │ │ │ │ │ ├── dgnconv.py │ │ │ │ │ ├── dotgatconv.py │ │ │ │ │ ├── edgeconv.py │ │ │ │ │ ├── edgegatconv.py │ │ │ │ │ ├── egatconv.py │ │ │ │ │ ├── egnnconv.py │ │ │ │ │ ├── gatconv.py │ │ │ │ │ ├── gatedgcnconv.py │ │ │ │ │ ├── gatedgraphconv.py │ │ │ │ │ ├── gatv2conv.py │ │ │ │ │ ├── gcn2conv.py │ │ │ │ │ ├── ginconv.py │ │ │ │ │ ├── gineconv.py │ │ │ │ │ ├── gmmconv.py │ │ │ │ │ ├── graphconv.py │ │ │ │ │ ├── grouprevres.py │ │ │ │ │ ├── hgtconv.py │ │ │ │ │ ├── nnconv.py │ │ │ │ │ ├── pnaconv.py │ │ │ │ │ ├── relgraphconv.py │ │ │ │ │ ├── sageconv.py │ │ │ │ │ ├── sgconv.py │ │ │ │ │ ├── tagconv.py │ │ │ │ │ └── twirlsconv.py │ │ │ │ ├── explain/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── gnnexplainer.py │ │ │ │ │ ├── pgexplainer.py │ │ │ │ │ └── subgraphx.py │ │ │ │ ├── factory.py │ │ │ │ ├── glob.py │ │ │ │ ├── gt/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── biased_mha.py │ │ │ │ │ ├── degree_encoder.py │ │ │ │ │ ├── egt.py │ │ │ │ │ ├── graphormer.py │ │ │ │ │ ├── lap_pos_encoder.py │ │ │ │ │ ├── path_encoder.py │ │ │ │ │ └── spatial_encoder.py │ │ │ │ ├── hetero.py │ │ │ │ ├── linear.py │ │ │ │ ├── link/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── edgepred.py │ │ │ │ │ ├── transe.py │ │ │ │ │ └── transr.py │ │ │ │ ├── network_emb.py │ │ │ │ ├── softmax.py │ │ │ │ ├── sparse_emb.py │ │ │ │ └── utils.py │ │ │ └── tensorflow/ │ │ │ ├── __init__.py │ │ │ ├── conv/ │ │ │ │ ├── __init__.py │ │ │ │ ├── appnpconv.py │ │ │ │ ├── chebconv.py │ │ │ │ ├── densechebconv.py │ │ │ │ ├── edgeconv.py │ │ │ │ ├── gatconv.py │ │ │ │ ├── ginconv.py │ │ │ │ ├── graphconv.py │ │ │ │ ├── relgraphconv.py │ │ │ │ ├── sageconv.py │ │ │ │ └── sgconv.py │ │ │ ├── glob.py │ │ │ ├── hetero.py │ │ │ ├── softmax.py │ │ │ └── utils.py │ │ ├── ops/ │ │ │ ├── __init__.py │ │ │ ├── edge_softmax.py │ │ │ ├── gather_mm.py │ │ │ ├── sddmm.py │ │ │ ├── segment.py │ │ │ └── spmm.py │ │ ├── optim/ │ │ │ ├── __init__.py │ │ │ ├── mxnet/ │ │ │ │ └── __init__.py │ │ │ ├── pytorch/ │ │ │ │ ├── __init__.py │ │ │ │ └── sparse_optim.py │ │ │ └── tensorflow/ │ │ │ └── __init__.py │ │ ├── partition.py │ │ ├── propagate.py │ │ ├── random.py │ │ ├── readout.py │ │ ├── sampling/ │ │ │ ├── __init__.py │ │ │ ├── labor.py │ │ │ ├── negative.py │ │ │ ├── neighbor.py │ │ │ ├── node2vec_randomwalk.py │ │ │ ├── pinsage.py │ │ │ ├── randomwalks.py │ │ │ └── utils.py │ │ ├── sparse/ │ │ │ ├── __init__.py │ │ │ ├── broadcast.py │ │ │ ├── elementwise_op.py │ │ │ ├── elementwise_op_sp.py │ │ │ ├── matmul.py │ │ │ ├── reduction.py │ │ │ ├── sddmm.py │ │ │ ├── softmax.py │ │ │ ├── sparse_matrix.py │ │ │ ├── unary_op.py │ │ │ └── utils.py │ │ ├── storages/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── numpy.py │ │ │ ├── pytorch_tensor.py │ │ │ └── tensor.py │ │ ├── subgraph.py │ │ ├── transforms/ │ │ │ ├── __init__.py │ │ │ ├── functional.py │ │ │ ├── module.py │ │ │ └── to_block.py │ │ ├── traversal.py │ │ ├── udf.py │ │ ├── utils/ │ │ │ ├── __init__.py │ │ │ ├── checks.py │ │ │ ├── data.py │ │ │ ├── exception.py │ │ │ ├── filter.py │ │ │ ├── internal.py │ │ │ ├── pin_memory.py │ │ │ └── shared_mem.py │ │ └── view.py │ ├── setup.py │ └── update_version.py ├── readthedocs.yml ├── script/ │ ├── build_dgl.sh │ ├── build_doc.sh │ ├── create_dev_conda_env.sh │ ├── dgl_dev.yml.template │ └── run_pytest.sh ├── src/ │ ├── api/ │ │ ├── api_container.cc │ │ └── api_test.cc │ ├── array/ │ │ ├── arith.h │ │ ├── array.cc │ │ ├── array_arith.cc │ │ ├── array_op.h │ │ ├── check.h │ │ ├── cpu/ │ │ │ ├── array_cumsum.cc │ │ │ ├── array_index_select.cc │ │ │ ├── array_nonzero.cc │ │ │ ├── array_op_impl.cc │ │ │ ├── array_pack.cc │ │ │ ├── array_repeat.cc │ │ │ ├── array_scatter.cc │ │ │ ├── array_sort.cc │ │ │ ├── array_utils.h │ │ │ ├── concurrent_id_hash_map.cc │ │ │ ├── concurrent_id_hash_map.h │ │ │ ├── coo_coalesce.cc │ │ │ ├── coo_linegraph.cc │ │ │ ├── coo_remove.cc │ │ │ ├── coo_sort.cc │ │ │ ├── csr_get_data.cc │ │ │ ├── csr_mm.cc │ │ │ ├── csr_remove.cc │ │ │ ├── csr_sort.cc │ │ │ ├── csr_sum.cc │ │ │ ├── csr_to_simple.cc │ │ │ ├── csr_union.cc │ │ │ ├── disjoint_union.cc │ │ │ ├── gather_mm.cc │ │ │ ├── gather_mm.h │ │ │ ├── labor_pick.h │ │ │ ├── labor_sampling.cc │ │ │ ├── negative_sampling.cc │ │ │ ├── rowwise_pick.h │ │ │ ├── rowwise_sampling.cc │ │ │ ├── rowwise_topk.cc │ │ │ ├── sddmm.cc │ │ │ ├── sddmm.h │ │ │ ├── segment_reduce.cc │ │ │ ├── segment_reduce.h │ │ │ ├── spmat_op_impl_coo.cc │ │ │ ├── spmat_op_impl_csr.cc │ │ │ ├── spmm.cc │ │ │ ├── spmm.h │ │ │ ├── spmm_binary_ops.h │ │ │ ├── spmm_blocking_libxsmm.h │ │ │ ├── traversal.cc │ │ │ └── traversal.h │ │ ├── cuda/ │ │ │ ├── array_cumsum.cu │ │ │ ├── array_index_select.cu │ │ │ ├── array_index_select.cuh │ │ │ ├── array_nonzero.cu │ │ │ ├── array_op_impl.cu │ │ │ ├── array_scatter.cu │ │ │ ├── array_sort.cu │ │ │ ├── atomic.cuh │ │ │ ├── bf16.cuh │ │ │ ├── coo2csr.cu │ │ │ ├── coo_sort.cu │ │ │ ├── csr2coo.cu │ │ │ ├── csr_get_data.cu │ │ │ ├── csr_mm.cu │ │ │ ├── csr_sort.cu │ │ │ ├── csr_sum.cu │ │ │ ├── csr_transpose.cc │ │ │ ├── cuda_filter.cu │ │ │ ├── cusparse_dispatcher.cuh │ │ │ ├── disjoint_union.cu │ │ │ ├── fp16.cuh │ │ │ ├── functor.cuh │ │ │ ├── gather_mm.cu │ │ │ ├── ge_spmm.cuh │ │ │ ├── labor_sampling.cu │ │ │ ├── macro.cuh │ │ │ ├── negative_sampling.cu │ │ │ ├── rowwise_sampling.cu │ │ │ ├── rowwise_sampling_prob.cu │ │ │ ├── sddmm.cu │ │ │ ├── sddmm.cuh │ │ │ ├── sddmm_hetero_coo.cu │ │ │ ├── sddmm_hetero_csr.cu │ │ │ ├── segment_reduce.cu │ │ │ ├── segment_reduce.cuh │ │ │ ├── spmat_op_impl_coo.cu │ │ │ ├── spmat_op_impl_csr.cu │ │ │ ├── spmm.cu │ │ │ ├── spmm.cuh │ │ │ ├── spmm_hetero.cu │ │ │ ├── utils.cu │ │ │ ├── utils.h │ │ │ └── uvm/ │ │ │ ├── array_index_select_uvm.cu │ │ │ └── array_index_select_uvm.cuh │ │ ├── filter.cc │ │ ├── filter.h │ │ ├── kernel.cc │ │ ├── kernel_decl.h │ │ ├── libra_partition.cc │ │ ├── selector.h │ │ ├── union_partition.cc │ │ ├── uvm_array.cc │ │ └── uvm_array_op.h │ ├── bcast.cc │ ├── c_api_common.cc │ ├── c_api_common.h │ ├── geometry/ │ │ ├── cpu/ │ │ │ └── geometry_op_impl.cc │ │ ├── cuda/ │ │ │ ├── edge_coarsening_impl.cu │ │ │ └── geometry_op_impl.cu │ │ ├── geometry.cc │ │ └── geometry_op.h │ ├── graph/ │ │ ├── creators.cc │ │ ├── gk_ops.cc │ │ ├── graph.cc │ │ ├── graph_apis.cc │ │ ├── graph_op.cc │ │ ├── graph_traversal.cc │ │ ├── heterograph.cc │ │ ├── heterograph.h │ │ ├── heterograph_capi.cc │ │ ├── immutable_graph.cc │ │ ├── metis_partition.cc │ │ ├── nodeflow.cc │ │ ├── pickle.cc │ │ ├── sampler.cc │ │ ├── sampling/ │ │ │ ├── negative/ │ │ │ │ └── global_uniform.cc │ │ │ ├── neighbor/ │ │ │ │ └── neighbor.cc │ │ │ └── randomwalks/ │ │ │ ├── frequency_hashmap.cu │ │ │ ├── frequency_hashmap.cuh │ │ │ ├── get_node_types_cpu.cc │ │ │ ├── get_node_types_gpu.cu │ │ │ ├── metapath_randomwalk.h │ │ │ ├── node2vec.cc │ │ │ ├── node2vec_cpu.cc │ │ │ ├── node2vec_impl.h │ │ │ ├── node2vec_randomwalk.h │ │ │ ├── randomwalk_cpu.cc │ │ │ ├── randomwalk_gpu.cu │ │ │ ├── randomwalk_with_restart_cpu.cc │ │ │ ├── randomwalks.cc │ │ │ ├── randomwalks_cpu.h │ │ │ └── randomwalks_impl.h │ │ ├── serialize/ │ │ │ ├── dglgraph_data.h │ │ │ ├── dglgraph_serialize.cc │ │ │ ├── dglstream.h │ │ │ ├── graph_serialize.cc │ │ │ ├── graph_serialize.h │ │ │ ├── heterograph_data.h │ │ │ ├── heterograph_serialize.cc │ │ │ ├── tensor_serialize.cc │ │ │ └── zerocopy_serializer.cc │ │ ├── shared_mem_manager.cc │ │ ├── shared_mem_manager.h │ │ ├── subgraph.cc │ │ ├── transform/ │ │ │ ├── compact.cc │ │ │ ├── compact.h │ │ │ ├── cpu/ │ │ │ │ ├── kdtree_ndarray_adapter.h │ │ │ │ └── knn.cc │ │ │ ├── cuda/ │ │ │ │ ├── cuda_compact_graph.cu │ │ │ │ ├── cuda_map_edges.cuh │ │ │ │ ├── cuda_to_block.cu │ │ │ │ └── knn.cu │ │ │ ├── knn.cc │ │ │ ├── knn.h │ │ │ ├── line_graph.cc │ │ │ ├── metis_partition_hetero.cc │ │ │ ├── partition_hetero.cc │ │ │ ├── remove_edges.cc │ │ │ ├── to_block.cc │ │ │ ├── to_block.h │ │ │ ├── to_simple.cc │ │ │ └── union_partition.cc │ │ ├── traversal.cc │ │ ├── traversal.h │ │ ├── unit_graph.cc │ │ └── unit_graph.h │ ├── partition/ │ │ ├── cuda/ │ │ │ └── partition_op.cu │ │ ├── ndarray_partition.cc │ │ ├── ndarray_partition.h │ │ └── partition_op.h │ ├── random/ │ │ ├── continuous_seed.h │ │ ├── cpu/ │ │ │ ├── choice.cc │ │ │ └── sample_utils.h │ │ └── random.cc │ ├── rpc/ │ │ ├── network/ │ │ │ ├── common.cc │ │ │ ├── common.h │ │ │ ├── communicator.h │ │ │ ├── msg_queue.cc │ │ │ ├── msg_queue.h │ │ │ ├── socket_communicator.cc │ │ │ ├── socket_communicator.h │ │ │ ├── socket_pool.cc │ │ │ ├── socket_pool.h │ │ │ ├── tcp_socket.cc │ │ │ └── tcp_socket.h │ │ ├── rpc.cc │ │ ├── rpc.h │ │ ├── rpc_msg.h │ │ └── server_state.h │ ├── runtime/ │ │ ├── c_object_api.cc │ │ ├── c_runtime_api.cc │ │ ├── config.cc │ │ ├── cpu_device_api.cc │ │ ├── cuda/ │ │ │ ├── cuda_common.h │ │ │ ├── cuda_device_api.cc │ │ │ ├── cuda_hashtable.cu │ │ │ ├── cuda_hashtable.cuh │ │ │ └── gpu_cache.cu │ │ ├── dlpack_convert.cc │ │ ├── dso_module.cc │ │ ├── file_util.cc │ │ ├── file_util.h │ │ ├── meta_data.h │ │ ├── module.cc │ │ ├── module_util.cc │ │ ├── module_util.h │ │ ├── ndarray.cc │ │ ├── object.cc │ │ ├── pack_args.h │ │ ├── parallel_for.cpp │ │ ├── registry.cc │ │ ├── resource_manager.cc │ │ ├── resource_manager.h │ │ ├── runtime_base.h │ │ ├── semaphore_wrapper.cc │ │ ├── semaphore_wrapper.h │ │ ├── shared_mem.cc │ │ ├── system_lib_module.cc │ │ ├── tensordispatch.cc │ │ ├── thread_pool.cc │ │ ├── thread_storage_scope.h │ │ ├── threading_backend.cc │ │ ├── utils.cc │ │ ├── workspace.h │ │ ├── workspace_pool.cc │ │ └── workspace_pool.h │ └── scheduler/ │ ├── scheduler.cc │ └── scheduler_apis.cc ├── tensoradapter/ │ ├── include/ │ │ ├── tensoradapter.h │ │ └── tensoradapter_exports.h │ └── pytorch/ │ ├── CMakeLists.txt │ ├── build.bat │ ├── build.sh │ ├── find_cmake.py │ └── torch.cpp ├── tests/ │ ├── README.md │ ├── backend/ │ │ ├── __init__.py │ │ ├── backend_unittest.py │ │ ├── mxnet/ │ │ │ └── __init__.py │ │ ├── pytorch/ │ │ │ └── __init__.py │ │ └── tensorflow/ │ │ └── __init__.py │ ├── cpp/ │ │ ├── common.h │ │ ├── graph_index_test.cc │ │ ├── message_queue_test.cc │ │ ├── socket_communicator_test.cc │ │ ├── string_test.cc │ │ ├── test_aten.cc │ │ ├── test_concurrent_id_hash_map.cc │ │ ├── test_csrmm.cc │ │ ├── test_partition.cc │ │ ├── test_rowwise.cc │ │ ├── test_sampler.cc │ │ ├── test_serialize.cc │ │ ├── test_smart_ptr_serialize.cc │ │ ├── test_spmat_coo.cc │ │ ├── test_spmat_csr.cc │ │ ├── test_spmm.cc │ │ ├── test_unit_graph.cc │ │ └── test_zerocopy_serialize.cc │ ├── cugraph/ │ │ ├── cugraph-ops/ │ │ │ ├── test_cugraph_gatconv.py │ │ │ ├── test_cugraph_relgraphconv.py │ │ │ └── test_cugraph_sageconv.py │ │ └── test_basics.py │ ├── dist/ │ │ ├── python/ │ │ │ ├── rpc_basic.py │ │ │ └── run_dist_objects.py │ │ ├── test_dist_objects.py │ │ ├── test_rpc.py │ │ └── utils.py │ ├── distributed/ │ │ ├── test_dist_graph_store.py │ │ ├── test_dist_tensor.py │ │ ├── test_distributed_sampling.py │ │ ├── test_mp_dataloader.py │ │ ├── test_new_kvstore.py │ │ ├── test_partition.py │ │ ├── test_rpc.py │ │ └── utils.py │ ├── examples/ │ │ ├── test_sampling_examples.py │ │ └── test_sparse_examples.py │ ├── go/ │ │ ├── test_model.py │ │ └── test_pipeline.py │ ├── integration/ │ │ └── test_data.py │ ├── lint/ │ │ ├── clangformat_linter.py │ │ ├── lint.py │ │ ├── pip_init.py │ │ ├── pylintrc │ │ └── ufmt_linter.py │ ├── python/ │ │ ├── common/ │ │ │ ├── backend/ │ │ │ │ ├── test_set_default_backend.py │ │ │ │ └── test_tensor.py │ │ │ ├── cuda/ │ │ │ │ └── test_gpu_cache.py │ │ │ ├── data/ │ │ │ │ ├── data/ │ │ │ │ │ ├── 1.npy │ │ │ │ │ ├── 2.npy │ │ │ │ │ ├── graph_0.9a220622.dgl │ │ │ │ │ └── test_heterophilous_graphs.py │ │ │ │ ├── test_actor.py │ │ │ │ ├── test_data.py │ │ │ │ ├── test_geom_gcn.py │ │ │ │ ├── test_movielens.py │ │ │ │ ├── test_serialize.py │ │ │ │ └── test_utils.py │ │ │ ├── dataloading/ │ │ │ │ └── test_dataloader.py │ │ │ ├── function/ │ │ │ │ └── test_basics.py │ │ │ ├── ops/ │ │ │ │ ├── test_edge_softmax.py │ │ │ │ └── test_ops.py │ │ │ ├── sampling/ │ │ │ │ └── test_sampling.py │ │ │ ├── test_batch-graph.py │ │ │ ├── test_batch-heterograph.py │ │ │ ├── test_convert.py │ │ │ ├── test_ffi.py │ │ │ ├── test_frame.py │ │ │ ├── test_generators.py │ │ │ ├── test_heterograph-apply-edges.py │ │ │ ├── test_heterograph-index.py │ │ │ ├── test_heterograph-kernel.py │ │ │ ├── test_heterograph-misc.py │ │ │ ├── test_heterograph-pickle.py │ │ │ ├── test_heterograph-remove.py │ │ │ ├── test_heterograph-shared-memory.py │ │ │ ├── test_heterograph-specialization.py │ │ │ ├── test_heterograph-update-all.py │ │ │ ├── test_heterograph.py │ │ │ ├── test_homophily.py │ │ │ ├── test_label_informativeness.py │ │ │ ├── test_merge.py │ │ │ ├── test_partition.py │ │ │ ├── test_propagate.py │ │ │ ├── test_random.py │ │ │ ├── test_readout.py │ │ │ ├── test_sparse_ops-csr.py │ │ │ ├── test_subgraph.py │ │ │ ├── test_traversal.py │ │ │ ├── transforms/ │ │ │ │ ├── test_functional-sort.py │ │ │ │ ├── test_to_block.py │ │ │ │ └── test_transform.py │ │ │ └── utils/ │ │ │ ├── test_filter.py │ │ │ └── test_pin_memory.py │ │ ├── mxnet/ │ │ │ ├── ip_config.txt │ │ │ ├── test_geometry.py │ │ │ └── test_nn.py │ │ ├── pytorch/ │ │ │ ├── cuda/ │ │ │ │ └── test_nccl.py │ │ │ ├── dataloading/ │ │ │ │ ├── test_dataloader.py │ │ │ │ └── test_spot_target.py │ │ │ ├── distributed/ │ │ │ │ └── optim/ │ │ │ │ └── test_dist_optim.py │ │ │ ├── geometry/ │ │ │ │ └── test_geometry.py │ │ │ ├── graphbolt/ │ │ │ │ ├── __init__.py │ │ │ │ ├── gb_test_utils.py │ │ │ │ ├── impl/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── test_basic_feature_store.py │ │ │ │ │ ├── test_cooperative_minibatching_utils.py │ │ │ │ │ ├── test_cpu_cached_feature.py │ │ │ │ │ ├── test_disk_based_feature_store.py │ │ │ │ │ ├── test_feature_cache.py │ │ │ │ │ ├── test_fused_csc_sampling_graph.py │ │ │ │ │ ├── test_gpu_cached_feature.py │ │ │ │ │ ├── test_gpu_graph_cache.py │ │ │ │ │ ├── test_hetero_cached_feature.py │ │ │ │ │ ├── test_in_subgraph_sampler.py │ │ │ │ │ ├── test_legacy_dataset.py │ │ │ │ │ ├── test_negative_sampler.py │ │ │ │ │ ├── test_neighbor_sampler.py │ │ │ │ │ ├── test_ondisk_dataset.py │ │ │ │ │ ├── test_sampled_subgraph_impl.py │ │ │ │ │ └── test_torch_based_feature_store.py │ │ │ │ ├── internal/ │ │ │ │ │ ├── test_sample_utils.py │ │ │ │ │ └── test_utils.py │ │ │ │ ├── test_base.py │ │ │ │ ├── test_dataloader.py │ │ │ │ ├── test_dataset.py │ │ │ │ ├── test_feature_fetcher.py │ │ │ │ ├── test_graphbolt_utils.py │ │ │ │ ├── test_integration.py │ │ │ │ ├── test_item_sampler.py │ │ │ │ ├── test_itemset.py │ │ │ │ ├── test_minibatch.py │ │ │ │ ├── test_subgraph_sampler.py │ │ │ │ └── test_utils.py │ │ │ ├── ip_config.txt │ │ │ ├── mpops/ │ │ │ │ └── test_edgewise.py │ │ │ ├── nn/ │ │ │ │ ├── conv/ │ │ │ │ │ └── test_gatedgcnconv.py │ │ │ │ ├── test_nn.py │ │ │ │ └── test_sparse_emb.py │ │ │ ├── optim/ │ │ │ │ └── test_optim.py │ │ │ ├── sparse/ │ │ │ │ ├── __init__.py │ │ │ │ ├── test_broadcast.py │ │ │ │ ├── test_elementwise_op.py │ │ │ │ ├── test_elementwise_op_sp.py │ │ │ │ ├── test_matmul.py │ │ │ │ ├── test_matrix_op.py │ │ │ │ ├── test_reduction.py │ │ │ │ ├── test_sddmm.py │ │ │ │ ├── test_softmax.py │ │ │ │ ├── test_sparse_matrix.py │ │ │ │ ├── test_unary_op.py │ │ │ │ └── utils.py │ │ │ ├── test_ffi-stream.py │ │ │ ├── test_heterograph-pickle.py │ │ │ ├── test_multiprocessing-ipc.py │ │ │ └── utils/ │ │ │ └── test_pin_memory.py │ │ ├── tensorflow/ │ │ │ ├── test_basic.py │ │ │ └── test_nn.py │ │ └── test_dgl_import.py │ ├── scripts/ │ │ ├── build_dgl.bat │ │ ├── build_dgl.sh │ │ ├── ci_report/ │ │ │ ├── report.py │ │ │ └── status.py │ │ ├── cugraph_unit_test.sh │ │ ├── task_cpp_unit_test.bat │ │ ├── task_cpp_unit_test.sh │ │ ├── task_dist_test.sh │ │ ├── task_distributed_test.sh │ │ ├── task_example_test.bat │ │ ├── task_example_test.sh │ │ ├── task_go_test.sh │ │ ├── task_lint.sh │ │ ├── task_pytorch_tutorial_test.sh │ │ ├── task_unit_test.bat │ │ └── task_unit_test.sh │ ├── tools/ │ │ ├── pytest_utils.py │ │ ├── test_array_readwriter.py │ │ ├── test_change_etype_to_canonical_etype.py │ │ ├── test_convert_partition.py │ │ ├── test_dist_lookup.py │ │ ├── test_dist_part.py │ │ ├── test_dist_partition_graphbolt.py │ │ ├── test_launch.py │ │ ├── test_parmetis.py │ │ └── test_parmetis_preproc.py │ └── utils/ │ ├── __init__.py │ ├── checks.py │ └── graph_cases.py ├── third_party/ │ └── HugeCTR/ │ └── gpu_cache/ │ ├── ReadMe.md │ ├── include/ │ │ ├── gpu_cache_api.hpp │ │ ├── hash_functions.cuh │ │ ├── nv_gpu_cache.hpp │ │ └── nv_util.h │ └── src/ │ └── nv_gpu_cache.cu ├── tools/ │ ├── README.md │ ├── change_etype_to_canonical_etype.py │ ├── chunk_graph.py │ ├── copy_files.py │ ├── dispatch_data.py │ ├── distgraphlaunch.py │ ├── distpartitioning/ │ │ ├── README.md │ │ ├── array_readwriter/ │ │ │ ├── __init__.py │ │ │ ├── csv.py │ │ │ ├── numpy_array.py │ │ │ ├── parquet.py │ │ │ └── registry.py │ │ ├── constants.py │ │ ├── convert_partition.py │ │ ├── data_proc_pipeline.py │ │ ├── data_shuffle.py │ │ ├── dataset_utils.py │ │ ├── dist_lookup.py │ │ ├── globalids.py │ │ ├── gloo_wrapper.py │ │ ├── parmetis_postprocess.py │ │ ├── parmetis_preprocess.py │ │ ├── parmetis_wrapper.py │ │ └── utils.py │ ├── files.py │ ├── launch.py │ ├── partition_algo/ │ │ ├── base.py │ │ └── random_partition.py │ ├── verification_utils.py │ └── verify_partitions.py └── tutorials/ ├── blitz/ │ ├── .gitignore │ ├── 1_introduction.py │ ├── 2_dglgraph.py │ ├── 3_message_passing.py │ ├── 4_link_predict.py │ ├── 5_graph_classification.py │ ├── 6_load_data.py │ └── README.txt ├── cpu/ │ ├── README.txt │ ├── argo_tutorial.py │ └── cpu_best_practises.py ├── models/ │ ├── 1_gnn/ │ │ ├── 1_gcn.py │ │ ├── 4_rgcn.py │ │ ├── 6_line_graph.py │ │ ├── 9_gat.py │ │ └── README.txt │ ├── 2_small_graph/ │ │ ├── 3_tree-lstm.py │ │ └── README.txt │ ├── 3_generative_model/ │ │ ├── 5_dgmg.py │ │ └── README.txt │ ├── 4_old_wines/ │ │ ├── 2_capsule.py │ │ ├── 7_transformer.py │ │ └── README.txt │ └── README.txt ├── multi/ │ ├── 1_graph_classification.py │ ├── 2_node_classification.py │ └── README.txt └── requirements.txt