Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EPIC] Consolidate kernels between Thrust and CUB #26

Open
13 tasks
jrhemstad opened this issue Apr 20, 2023 · 1 comment
Open
13 tasks

[EPIC] Consolidate kernels between Thrust and CUB #26

jrhemstad opened this issue Apr 20, 2023 · 1 comment
Assignees
Labels
cub For all items related to CUB feature request New feature or request. thrust For all items related to Thrust.

Comments

@jrhemstad
Copy link
Collaborator

jrhemstad commented Apr 20, 2023

Below is a list of tasks in prioritized order. We should start with algorithms that already exist in CUB. This will allow delivering CUB optimizations into Thrust sooner.

Document procedure

Replace Thrust Algorithms with CUB

Port Thrust Algorithms into CUB

A few notes:

  • thrust::partition_copy and thrust::stable_partition_copy require taking two separate/distinct output iterators: one for the selected and one for the rejected items. DevicePartition, however, currently only supports a single output iterator, where the selected items are written to the beginning in order and the rejected items are written to the end in reverse order, respectively. Supporting the these two thrust algorithms requires extending AgentSelectIf, implementing overloads for methods like ScatterTwoPhase that are concerned with writing rejected items to the output iterators.
  • Partition and copy doesn't have stencil overload in CUB. We might experiment with using ::Flagged version along with a transform iterator.
  • While porting thrust::reduce_by_key we need to decide on accumulator type.
@jrhemstad jrhemstad added this to CCCL Apr 20, 2023
@jrhemstad jrhemstad converted this from a draft issue Apr 20, 2023
@miscco miscco added feature request New feature or request. thrust For all items related to Thrust. cub For all items related to CUB labels Jul 12, 2023
@gevtushenko
Copy link
Collaborator

gevtushenko commented Oct 16, 2023

Blocked by

@gevtushenko gevtushenko added the blocked This PR cannot be merged due to various reasons label Oct 16, 2023
@gevtushenko gevtushenko moved this to Blocked in CCCL Oct 16, 2023
@gevtushenko gevtushenko removed the blocked This PR cannot be merged due to various reasons label Oct 16, 2023
@jrhemstad jrhemstad changed the title [EPIC] Port Thrust kernels to CUB [EPIC] Consolidate kernels between Thrust and CUB Feb 14, 2024
@elstehle elstehle mentioned this issue May 21, 2024
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cub For all items related to CUB feature request New feature or request. thrust For all items related to Thrust.
Projects
Status: Blocked
Development

No branches or pull requests

4 participants