AccelerateHS / AccelerateHS/accelerate

[Tracking Issue] Implementing (Segmented) Single-Pass Look-Back Scans

Open
#523 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
1k
Forks
135
PR merge metrics
No merged PRs in 30d

Description

As described in my thesis, single-pass look-back scans have some performance advantages when dealing with big datasets versus the current implementation in Accelerate. This issue is designed to track the various PRs that will be created, as the code will be split over various PRs across not only this repo but the [AccelerateHS/accelerate-llvm](https://github.com/AccelerateHS/accelerate-llvm) repo as well.

The current plan for PRs is as follows:

- [ ] Create the `SegScan` primitive in this repo, and provide an interpreter implementation
- [ ] Create the GPU implementation for LLVM in [AccelerateHS/accelerate-llvm](https://github.com/AccelerateHS/accelerate-llvm)
- [ ] Create the CPU implementation for LLVM in [AccelerateHS/accelerate-llvm](https://github.com/AccelerateHS/accelerate-llvm)
- [ ] Change the `Prelude` to use the new primitive
- [ ] Change the GPU implementation for non-segmented scans in [AccelerateHS/accelerate-llvm](https://github.com/AccelerateHS/accelerate-llvm)

This should allow for the PRs to still be manageable, instead of dumping a 1000 lines of changed code into a single PR. I hope to submit the first PR soon™

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.