rapids_singlecell icon indicating copy to clipboard operation
rapids_singlecell copied to clipboard

Support for 64-bit indptr data and multiple GPU?

Open YH-Zheng opened this issue 2 years ago • 7 comments

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!

YH-Zheng avatar Aug 08 '23 12:08 YH-Zheng

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.

Intron7 avatar Aug 08 '23 12:08 Intron7

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

YH-Zheng avatar Aug 09 '23 02:08 YH-Zheng

See https://github.com/scverse/rapids_singlecell/issues/44 for the clustering issue

Zethson avatar Aug 09 '23 10:08 Zethson

So the 64 bit support in cupy might be coming. They made it a high priority https://github.com/cupy/cupy/issues/3513.

Intron7 avatar Aug 30 '23 11:08 Intron7

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!

SNOL2 avatar Sep 25 '23 03:09 SNOL2

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

Intron7 avatar Apr 30 '24 15:04 Intron7

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

SNOL2 avatar May 02 '24 07:05 SNOL2