-
Notifications
You must be signed in to change notification settings - Fork 548
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch on batching by default and leave data on host when possible for UMAP
#6219
base: branch-25.02
Are you sure you want to change the base?
Conversation
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
/ok to test |
Leave data on the host by default and enable batching when using NN descrent.
4bc18a3
to
6bb9600
Compare
/ok to test |
/ok to test |
/ok to test |
This stops tests from failing because of an expected warning.
/ok to test |
/ok to test |
Is this impacted by #6216 ? |
Probably, I've not run into that particular bug, too many other things to sort out till now. But from looking at the issue I assume this PR won't fix that. |
Gave #6216 a try. It kind of reproduces here. With the exact code from the issue you get the same error. When you don't explicitly select nn-descent but leave it set to the new default then you don't get the "illegal memory access". Instead are told that the data can't be on host for the brute force algorithm. This is because for datasets below 50_000 samples that is the selected algorithm (not new). If you increase the dataset size to 50_000+1 and leave the constructor arguments set to their defaults then you do get the same problem. I think this is because the brute force algorithm assumes that the data is on the CUDA device, but it isn't. The fix might be to move the data when we are in this situation (automatically switching to brute force). But I guess moving the data might just fail in cases where the user was right to use |
Leave data on the host by default and enable batching when using NN descent.
The
data_on_host
argument tofit
andfit_transform
is now set toauto
. When the brute force algorithm is used nothing changes, as auto will resolve toFalse
. When NN descent is used and the dataset is large enough (and isn't sparse) then it will resolve toTrue
. We need this bit of complexity (going via "auto") as we need a way to have this conditional decision making to match existing behaviour (e.g. switching back to brute force for small datasets).Currently not all tests pass with
nnd_n_clusters > 1
, still investigating why that is/what to do about thatDecisions needed: