Skip to content

RFC: Statically link to cudart #100

@leofang

Description

@leofang
Member

Currently CUDA Python has a Cython-based reimplementation of CUDA runtime on top of the CUDA driver APIs. This is significant effort in terms of maintenance, requiring a lot of engineering time, as we have to catch up with every new cudart APIs indefinitely.

This RFC reflects the team's plan that we will switch to statically linking to cudart on all platforms (Linux & Windows) instead, starting from the next CUDA major release. That is, for cuda-python X.Y.Z we statically link to libcudart_static.a on Linux (or cudart_static.lib on Windows) from CUDA Toolkit X.Y.Z.

By doing this, the benefits include:

  • We can remove tens of thousands of lines of Cython code
  • We can avoid chasing indefinitely after latest cudart APIs
  • We can avoid potential possibilities of misaligned reimplementation, in favor of directly using the "official" cudart implementation
  • We can reduce significantly the build time of cuda-python wheels and conda packages
  • We continue offering CUDA minor version compatibility as well as all other functionalities and expectations that the current implementation offers, e.g.

Please let us know if this could be a concern to your project, as we do not anticipate any issue or any user-visible effects. Thanks!

Activity

added
P0High priority - Must do!
RFCPlans and announcements
and removed
triageNeeds the team's attention
on Sep 11, 2024
pinned this issue on Sep 16, 2024
unpinned this issue on Sep 26, 2024
vyasr

vyasr commented on Oct 30, 2024

@vyasr
Contributor

Presumably since this is static linking it completely gets around the original issues that led to the reimplementation of the runtime, which IIRC was something to do with cudart DLL load orders on Windows?

vyasr

vyasr commented on Oct 30, 2024

@vyasr
Contributor

#16 (comment) looks like it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P0High priority - Must do!RFCPlans and announcements

Type

No type

Projects

No projects

Relationships

None yet

    Development

    Participants

    @vyasr@leofang@vzhurba01

    Issue actions

      RFC: Statically link to cudart · Issue #100 · NVIDIA/cuda-python