tamnd / tamnd/firepanda

M9: GPU backend

Open
#11 0 comments 0 reactions 0 assignees View on GitHub
area/gpu milestone performance
Dominant language
Mojo
Stars
1
Forks
0
PR merge metrics
PR metrics pending

Description

Tracking issue for **M9**. Specification: [`05-kernels.md`](../blob/main/docs/specs/05-kernels.md), [`10-benchmarks.md`](../blob/main/docs/specs/10-benchmarks.md).

### Scope

- [ ] Device affinity on the operator interface
- [ ] `DeviceContext` acquisition guarded by `has_accelerator()`
- [ ] Device-resident buffers
- [ ] Transfer nodes visible in `explain()`
- [ ] A cost model that refuses to move data for work that will not pay for the transfer
- [ ] Port the aggregation, join, filter and sort kernels — mostly a launch and indexing change rather than a rewrite

### Exit criteria

- [ ] db-benchmark group-by queries run on a GPU and the results are published **next to cuDF's**
- [ ] The whole library builds, tests and passes on a machine with no accelerator, with every GPU test skipped rather than failed, and the skipping reported in the summary rather than silently passing
- [ ] The cost model's threshold is derived from measurement and is in a table somebody can read

### The honest framing

cuDF got here first and is mature. What firepanda has that it does not is that a user-defined function written once runs on both devices in the same language. That is the claim, and it is the only claim.

If the benchmarks say we lose, they get published saying we lose. Do not report a GPU number against a CPU baseline without also reporting cuDF; the interesting comparison for a GPU dataframe is another GPU dataframe.

### Depends on

M5 and M8.

Contributor guide

Open the contributing guide

Research direction

Read docs/specs/05-kernels.md and docs/specs/10-benchmarks.md first, then verify the M5 and M8 dependencies are complete. The work spans device affinity, buffers, transfer visibility, cost modeling, and several kernels. Done means GPU benchmarks are compared with cuDF, no-accelerator builds skip and report GPU tests, and the measured threshold is documented in a readable table.

Written by the indexing model from the issue text.

Assessment

Domain
backend, data-engineering, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.