Skip to content
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

Support for 64-bit indptr data and multiple GPU? #43

Open
YH-Zheng opened this issue Aug 8, 2023 · 7 comments
Open

Support for 64-bit indptr data and multiple GPU? #43

YH-Zheng opened this issue Aug 8, 2023 · 7 comments
Labels
enhancement New feature or request

Comments

@YH-Zheng
Copy link

YH-Zheng commented Aug 8, 2023

Hi, thank you for your work, which has made our single cell analysis much faster.
However, when the nnz of the matrix exceeds the maximum limit of 32 bits, the preprocessing process needs to be performed again using native scanpy, which greatly increases our time. I saw in https://github.com/NVIDIA-Genomics-Research/rapids-single-cell-examples/tree/master this work uses dask to distribute large tasks in chunks to multiple GPUs, which makes large The GPU acceleration of the amount of data can be realized, do you have any ideas in this regard? Such as support for multiple GPUs?
Thanks again for your work!

@Intron7
Copy link
Member

Intron7 commented Aug 8, 2023

Dear @YH-Zheng,

Thank you for your interest in rapids_singlecell. I want to support 64bit indptr in rsc. However there is currently a limitation with cupy when it comes to the indptr arrays. I tested a bit with using uint32 which doubles the nnzs but that's sadly to unstable. I'm already testing ways to make rapids-singlecell multi gpu enabled. Which back end I'll use is still up in the air. cunumeric is also very promising.

@YH-Zheng
Copy link
Author

YH-Zheng commented Aug 9, 2023

Dear @Intron7 ,

Hi Severin! Thank you for your reply, and I am looking forward to your next work. At present, I will still use the regular scanpy analysis process until I use rsc for harmony integration.

I also noticed that the rsc of the Louvain and Leiden algorithm will generate more clusters, especially Leiden, even if the resolution is reduced, it will still generate hundreds of clusters, but it performs well in the sc (because the amount of data is too large, full iteration Time is too long, only iterate 2 times). What do you think about it?

I have not saved the Leiden result at present, the picture is the Louvain results of rsc, I think resolution=1 produces too many clusters than sc.
umap

@Zethson
Copy link
Member

Zethson commented Aug 9, 2023

See #44 for the clustering issue

@Intron7 Intron7 added the enhancement New feature or request label Aug 10, 2023
@Intron7 Intron7 changed the title Support for 64-bit data and multiple GPU? Support for 64-bit indptr data and multiple GPU? Aug 18, 2023
@Intron7
Copy link
Member

Intron7 commented Aug 30, 2023

So the 64 bit support in cupy might be coming. They made it a high priority cupy/cupy#3513.

@SNOL2
Copy link

SNOL2 commented Sep 25, 2023

Dear @YH-Zheng,

Thank you for your interest in rapids_singlecell. I want to support 64bit indptr in rsc. However there is currently a limitation with cupy when it comes to the indptr arrays. I tested a bit with using uint32 which doubles the nnzs but that's sadly to unstable. I'm already testing ways to make rapids-singlecell multi gpu enabled. Which back end I'll use is still up in the air. cunumeric is also very promising.

Also waiting for supporting for multiple GPUs!

@Intron7
Copy link
Member

Intron7 commented Apr 30, 2024

@YH-Zheng @SNOL2 We started working on multi-GPU support with dask. It's still in early development but the performance looks really promising.

@SNOL2
Copy link

SNOL2 commented May 2, 2024

@YH-Zheng @SNOL2 We started working on multi-GPU support with dask. It's still in early development but the performance looks really promising.

Great! Thanks for the updating.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants