Skip to content

RFC: Turn cuda-python into a metapackage #105

Closed
3 of 4 issues completed
Closed
3 of 4 issues completed
@leofang

Description

@leofang

As we are making cuda a namespace package and creating subpackages such as cuda.core (#70) and cuda.bindings (#75), each of which may have its own version, it makes sense for us to rethink the package structure.

This RFC proposes a way to restructure the components so as to allow users to install only the components that are needed. As a result, we can make the existing cuda-python become a meta package depending on the individual components. Visualizing with the fact that we actively maintain two major-version branches (currently CUDA 11 & 12, so X=12 below), we have the following diagrams:

  • Before cuda.core beta release:
    cuda-python (X.Y.Z)          cuda-python (X-1.Y'.Z')
            \                          \
             \                          \
              v                          v
        cuda-bindings (X.Y.Z)       cuda-bindings (X-1.Y'.Z')
  • After cuda.core beta release:
            cuda-python (X.Y.Z)          cuda-python (X-1.Y'.Z')
            /         \                  /         \
           /           \                /           \
          v             v              v             v
    cuda.core --> cuda-bindings    cuda.core --> cuda-bindings
       (A.B.C)        (X.Y.Z)       (A.B.C)        (X-1.Y'.Z')

This RFC is not impacting existing users in anyway (apart from what's already outlined in #75). This is purely an implementation detail to users. However, this allows advanced users and libraries to have the freedom to choose if they need cuda-python, cuda.core or just cuda.bindings (the cuda-python today). We also allow a more complex dependency diagram to grow organically under cuda-python.

Please let us know if you have any thoughts or concerns. Thanks!

Sub-issues

Metadata

Metadata

Assignees

Labels

RFCPlans and announcements

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions