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

[FEA]: Remove support for CDPv1 in Thrust algorithms #1138

Open
1 task done
jrhemstad opened this issue Nov 21, 2023 · 0 comments
Open
1 task done

[FEA]: Remove support for CDPv1 in Thrust algorithms #1138

jrhemstad opened this issue Nov 21, 2023 · 0 comments
Assignees
Labels
feature request New feature or request.

Comments

@jrhemstad
Copy link
Collaborator

jrhemstad commented Nov 21, 2023

Is this a duplicate?

Area

Thrust

Is your feature request related to a problem? Please describe.

As described in #1137, CDPv2 removed the ability to do device-side synchronization. As a result, Thrust algorithms invoked in device code with the thrust::device execution policy implicitly fall back to using thrust::seq.

However, Thrust preserved the ability to still use CDPv1 on architectures/CTKs where it is still supported. This has proven to be costly to preserve and deemed no longer worth the effort.

In other words, this kernel has different behavior depending on how it is compiled:

__global__ void kernel(){
   thrust::reduce(thrust::device, ...);
}
  1. Launches a kernel (CDPv1)

    • Only if -rdc=true -arch=sm_N for N < 90 and CTK < 12.0
  2. Falls back to thrust::seq

    • If -arch=sm_N for N >= 90 or CTK >= 12.0

Describe the solution you'd like

Invoking thrust::algorithm(thrust::device,...) in device code should always be equivalent to thrust::allgorithm(thrust::seq,...) (case 2 above).

Describe alternatives you've considered

No response

Additional context

No response

@jrhemstad jrhemstad added the feature request New feature or request. label Nov 21, 2023
@github-project-automation github-project-automation bot moved this to Todo in CCCL Nov 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request.
Projects
Status: Todo
Development

No branches or pull requests

2 participants