Skip to content

[FEA] Use nogil wherever possible when making calls to libcuml #6271

Open
@jcrist

Description

Currently long running cuml calls that dispatch into libcuml don't release the GIL. For example, a call to UMAP.fit will block any other python threads, preventing the python interpreter from doing other work while it waits for the libcuml call to return.

A use case I had recently was starting a logger for system resources as a background thread to run while UMAP.fit was running. Since the fit call doesn't release the GIL, the background thread never gets to run until the fit call returns, defeating the purpose.

If there's a known reason why we don't release the GIL in these calls, we should document that somewhere. And if there isn't, then I'd argue that we should try and release it in more places.

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions