dmlc / dmlc/dgl

[Refactor] Further decouple DLPack from DGL NDArray

Open
#4,586 2 comments 0 reactions 2 assignees Claimed by @jermainewang View on GitHub
topic: C++ api Work Item
Dominant language
Python
Stars
14.3k
Forks
3.1k
PR merge metrics
No merged PRs in 30d

Description

## 🔨Work Item

**IMPORTANT:**
* This template is only for dev team to track project progress. For feature request or bug report, please use the corresponding issue templates.
* DO NOT create a new work item if the purpose is to fix an existing issue or feature request. We will directly use the issue in the project tracker.

Project tracker: https://github.com/orgs/dmlc/projects/2

## Description

The issue comes up from PR #4454 . The PR introduced a new data structure called `DGLArray` to replace `DLTensor` from DLPack. The follow up action is to further simplify the codebase. Considerations:
* Currrently, there are three classes `dgl::runtime::NDArray`, `dgl::runtime::NDArray::Container` and `dgl::DGLArray`. The question is whether we can consolidate them into one or two classes.
* Exposing DGL NDArray to Python adds another layer of complexity to the system. For example, there is a `dgl/_ffi/runtime_ctypes.py::DGLArray` python class. We need to further decouple it from DLPack and document clearly what each class is about.

@yaox12 let's use this thread for discussion.

## Depending work items or issues

None

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.