This repository contains the code for the paper "MeCache: Communication-Efficient Multi-GPU Heterogeneous Graph Neural Network Training", which has been accepted for IPDPS'26.
MeCache is a system designed to alleviate the CPU–GPU communication bottleneck in multi-GPU training of heterogeneous graph neural networks (HGNNs). It introduces two key innovations:
- Meta Reduction: A semantic-aware feature dimensionality reduction strategy that applies type-specific compression to node features, significantly reducing data transfer volume while preserving model accuracy.
- Fusion Cache: A fine-grained, data-level caching mechanism that implements differentiated cache policies for read-only features, embeddings, and optimizer states, guided by a cost model for optimal GPU memory allocation.
- Python 3.7
- CUDA 11.7
- PyTorch 1.13
- DGL 1.1
- Additional dependencies:
- numpy
- networkx
- Clone the repository:
git clone https://github.com/HPDL-Group/MeCache.git
cd MeCache- Install other dependencies:
pip install -r requirements.txtMeCache.pdfincludes the original paper, with the last two pages serving as the Artifact Description, providing detailed instructions for reproducing the computational results reported in the paper.load_graph.pycontain the dataloader of datasets.sparse_optim.pyandgpu_cache.pycontain the implementation of the GPU caching strategies.model.pycontains the implementation of the HGNN models.run_all_acc.py,run_all_cost_model_dgl_fc.py,run_all_cost_model.py,run_all_dgl_fc.py,run_all_dgl_mr.py,run_all_preprocess.py,run_all_speed.pyandrun_cost_model_for_fig10.pycontain evaluation scripts used in the paper.run_reduction.sh,run_no_reduction.shandtrain_dist.pycontains the training script.- The
scriptsdirectory contains the plotting scripts used to generate the figures and tables in the paper. See theREADME.mdfile in each subdirectory for details.
The code supports various heterogeneous graph datasets including those from
- IGBH-Small, IGBH-Medium, IGBH-Large:
https://github.com/IllinoisGraphBenchmark/IGB-Datasets - ogbn-mag, MAG240M:
https://github.com/snap-stanford/ogb
To run MeCache on a dataset (take ogbn-mag as an example), follow the steps below:
- Prepare the environment: prepare
ipconfig.txtfile with the ip addresses of the machine in the cluster - Apply Meta Reduction to the graph (optional):
python -u ./scripts/run/preprocess.py --dataset ogbn-mag --out-dir preprocess --root /datasets/gnn/dgldata --reduction-level 32,8The features of the ogbn-mag dataset will be reduced and saved in the preprocess directory.If Meta Reduction is applied, use run_reduction.sh and specify the corresponding REDUCTION_LEVEL parameter.
Otherwise, use run_no_reduction.sh.
- Profile hotness for GPU cache (optional):
python -u ./scripts/run/cost_model.py --dataset ogbn-mag --model rgcn --root /datasets/gnn/dgldata --worker 4 --ntypes-w-feats paper --reduction-level 32,8 --budget 24Enable the GPU cache in run_reduction.sh or run_no_reduction.sh by setting CACHE_METHOD to miss_penalty. Default is none.
- Train the model:
./scripts/run/run_reduction.sh rgcn ogbn-mag paper 349 1024 paper miss_penalty 64 64 5,10,15 3 0.5 32,8 /datasets/gnn/dgldata ip_config.txt 0.01 0.06 4 --use_node_projs --no-testExample command with key parameters explained in the script comments.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
@inproceedings{jiang2026mecache,
title={MeCache: Communication-Efficient Multi-GPU Heterogeneous Graph Neural Network Training},
author={Jiang, Gongqingjian and Zhang, Lizhi and Jia, Menghan and Lai, Zhiquan and Li, Dongsheng},
booktitle={2026 IEEE International Parallel and Distributed Processing Symposium (IPDPS)},
pages={746--759},
year={2026},
organization={IEEE}
}