Open
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.