Skip to content

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

Open
@jcrist

Description

@jcrist

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

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions