-
Notifications
You must be signed in to change notification settings - Fork 85
Open
Labels
backend-coverageAdding missing dask/cupy/dask+cupy backend supportAdding missing dask/cupy/dask+cupy backend supportenhancementNew feature or requestNew feature or requestgpuCuPy / CUDA GPU supportCuPy / CUDA GPU supportzonal tools
Description
Problem
Three functions each support 3 backends but are missing dask+cupy (and crosstab also missing cupy):
| Function | NumPy | Dask | CuPy | Dask+CuPy |
|---|---|---|---|---|
generate_terrain() |
✅ | ✅ | ✅ | ❌ |
perlin() |
✅ | ✅ | ✅ | ❌ |
crosstab() |
✅ | ✅ | ❌ | ❌ |
References:
xrspatial/terrain.pyline 265:dask_cupy_func=not_implemented_funcxrspatial/perlin.pyline 247:dask_cupy_func=not_implemented_funcxrspatial/zonal.pylines 1176–1180: bothcupy_funcanddask_cupy_funcarenot_implemented_func
Proposed Fix
terraindask+cupy: Wrap existing_terrain_cupy()inmap_blocks(terrain generation is per-chunk independent).perlindask+cupy: Wrap existing_perlin_gpu()inmap_blocks.crosstabcupy: Adapt the numpy sort-and-stride counting logic using cupy sorting (similar to_stats_cupypattern).crosstabdask+cupy: Combine cupy chunk function with dask delayed aggregation.
Impact
These gap-fillings complete the 4-backend matrix for more functions. While individually lower-priority than core analytics, they matter for users building end-to-end GPU pipelines — a pipeline that works on cupy but fails when wrapped in dask is frustrating.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
backend-coverageAdding missing dask/cupy/dask+cupy backend supportAdding missing dask/cupy/dask+cupy backend supportenhancementNew feature or requestNew feature or requestgpuCuPy / CUDA GPU supportCuPy / CUDA GPU supportzonal tools