keplergl / keplergl/kepler.gl

GPU aggregation layer integration

Open
#329 2 comments 0 reactions 1 assignee Claimed by @heshan0131 View on GitHub
feature rfc roadmap item
Dominant language
TypeScript
Stars
12k
Forks
2k
Avg merge
1d 5h
Merged PRs (30d)
66

Description

**Problem**
Aggregation in grid and hexagon layer is currently executed on the CPU with javascript. It runs every time points position changed or size of the bin changes. This causes lag with large datasets

**Solution**
We will work with the deck.gl team to implement GPU accelerated grid layer. [RFC: GPU Aggregation enhancements](https://github.com/uber/deck.gl/issues/2084). `GPUGridAggregator` will use texture mapping to record aggregation results using multiple weights, and custom blend mode for each aggregation operation. It can use `Multiple Render Target` feature to perform single draw for aggregating multiple weights

__Limitation__
GPU Aggregation can only perform `MIN`, `MAX`, `SUM` and `MEAN` calculation. For other aggregation modes - `Median` and `Mode` we will fall back to CPU aggregation.

We also need to fall back to CPU aggregation for color domain calculation, since it is not possible to access GPU aggregation result from javascript.

We propose to use web worker to execute CPU aggregation in the background, avoid UI lagging, and notify the UI of its progress.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.