holoviz / datashader

Quickly and accurately render even the largest data.
http://datashader.org
BSD 3-Clause "New" or "Revised" License
3.3k stars 365 forks source link

CUDA support for where reduction #1167

Closed ianthomas23 closed 1 year ago

ianthomas23 commented 1 year ago

This adds CUDA support (cudf and dask-cudf) for the new where reduction, for both possible approaches of referencing a named column of the dataframe and using the virtual row index of the dataframe.

Support only covers where(min) and where(max). CPU also supports where(first) and where(last) but there has never been support for first and last on the GPU due to the massively-parallel implementation not knowing the order of the dataframe rows. I note in passing that this is now feasible using the virtual row index idea as, for example, first is equivalent to min using the virtual row index. But that is future work!

codecov[bot] commented 1 year ago

Codecov Report

Merging #1167 (575a1bb) into main (73d3deb) will decrease coverage by 0.05%. The diff coverage is 68.51%.

@@            Coverage Diff             @@
##             main    #1167      +/-   ##
==========================================
- Coverage   85.40%   85.36%   -0.05%     
==========================================
  Files          35       35              
  Lines        7987     8006      +19     
==========================================
+ Hits         6821     6834      +13     
- Misses       1166     1172       +6     
Impacted Files Coverage Δ
datashader/reductions.py 85.99% <65.30%> (-0.46%) :arrow_down:
datashader/data_libraries/dask.py 95.00% <100.00%> (+0.04%) :arrow_up:
datashader/utils.py 76.84% <100.00%> (+0.22%) :arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more