rapidsai / cuspatial

CUDA-accelerated GIS and spatiotemporal algorithms
https://docs.rapids.ai/api/cuspatial/stable/
Apache License 2.0
579 stars 145 forks source link

[FEA]: Spatial Autocorrelation #1137

Open Intron7 opened 1 year ago

Intron7 commented 1 year ago

Is this a new feature, an improvement, or a change to existing functionality?

New Feature

How would you describe the priority of this feature request

Low (would be nice)

Please provide a clear description of problem you would like to solve.

I implemented spatial autocorrelation using Moran's I and Geary's C on GPUs for my spatial Transcriptomics. It's up 100 times (using an RTX3090) faster than the CPU implementation from squidgy (using 32 cores). It could be a great expansion of cuSpatial towards GIS functionality.

Describe any alternatives you have considered

GIS, Squidpy

Additional context

Code: https://github.com/scverse/rapids_singlecell/tree/main/src/rapids_singlecell/squidpy_gpu

benchmark: https://github.com/scverse/rapids_singlecell/blob/main/notebooks/autocorr_benchmark.ipynb

harrism commented 1 year ago

Thank you for the feature request and for the example code @Intron7 . Let us know if you are interested in contributing an implementation.

We are a very small team, with a big backlog of feature requests. So any information to help us prioritize would be valuable.

Intron7 commented 1 year ago

I'll try to create a working implementation that fits within the cuSpatial Framework. Are cupy.RawKernels acceptable for the solution?

harrism commented 1 year ago

Not normally. Like the rest of cuSpatial, this feature should be implemented in C++ and exposed to Python via Cython bindings.

Intron7 commented 1 year ago

Ok perfect, I'll see what I can do.