Add NPU Device Support to DGL

Open
#7,920 1 comment 0 reactions 0 assignees View on GitHub

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

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

stale-issue

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dmlc/dgl

All issues in dmlc/dgl

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.