Add NPU Device Support to DGL
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- python
- Domain
- backend, machine-learning
Research direction
Start by reviewing the preliminary implementation in pull request #7912 and its experimental NPU backend, build setup, kernels, and validation work described here. Use that work to understand the remaining scope; the issue is complete when native Ascend NPU support is established across the proposed backend and runtime paths.
Written by the indexing model from the issue text.
Description
Summary
This RFC proposes adding native support for Huawei Ascend NPUs to DGL’s backend and runtime system.
Today, DGL primarily supports:
- CPU
- CUDA GPUs
As Huawei Ascend NPUs become increasingly important for AI training and inference workloads, enabling DGL support on NPU devices would improve portability and broaden hardware support for GNN applications.
Most tensor operations used by DGL are already supported through PyTorch and torch_npu. This RFC proposes extending DGL’s device abstraction and graph execution pipeline to support Ascend NPUs natively.
Current Work
https://github.com/dmlc/dgl/pull/7912
The work by @zhuqiming1025 introduces preliminary Ascend NPU support in DGL by integrating an experimental NPU backend path and validating core GNN workloads on NPU devices.
Current progress includes:
- adding build environment setup script for Huawei Ascend NPU platforms
- enabling DGL graph execution on Ascend NPUs
- adding prototype NPU SpMM kernels
- supporting basic message passing workflows on NPU
- validating GCN training on NPU
- integrating LightGCN examples and benchmark scripts
- fixing runtime and device compatibility issues across CPU/GPU/NPU execution paths
This work serves as an initial step toward broader accelerator support in DGL and explores how existing graph abstractions and message passing APIs can operate on NPU hardware.
- Dominant language
- Python
- Stars
- 14.3k
- Forks
- 3.1k
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dmlc/dgl
-
stale-issue
Difficulty 2/5 Half a day Newbie friendliness 68/100
-
spelling errorOpentopic: doc
Difficulty 1/5 Under an hour Newbie friendliness 72/100
-
link issue downloadOpenWork Item
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
stale-issue
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
stale-issue
Difficulty 5/5 Over a week Newbie friendliness 25/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Significant-Gravitas/AutoGPT#16733 ·
Maintainers usually reply within 1 day
-
changelog investigate
Difficulty 1/5 Under an hour Newbie friendliness 74/100
ramnes/notion-sdk-py#444 ·
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
Judgment-Pack/judgment-pack-spec#299 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
QuantConnect/Documentation#2858 ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
btclib-org/btclib#3047 ·
Maintainers usually reply within 1 day