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]: cuProj: enable transforming individual coordinates in device code #1489

Closed
harrism opened this issue Nov 21, 2024 · 1 comment
Closed
Assignees
Labels
feature request New feature or request libcuproj Relates to the libcuproj C++ library

Comments

@harrism
Copy link
Member

harrism commented Nov 21, 2024

Is this a new feature, an improvement, or a change to existing functionality?

New Feature

How would you describe the priority of this feature request

Medium

Please provide a clear description of problem you would like to solve.

It would be nice to use the internal device code that is used to implement projection::transform() from a custom CUDA kernel. The idea would be to create a projection as you can currently, but then get an object that can be passed to a kernel and used by each thread to transform coordinates.

Describe any alternatives you have considered

Putting all custom kernel logic inside a function object passed to a thrust algorithm. This is definitely preferable in some situations, but sometimes it is just not flexible enough.

Additional context

No response

@harrism harrism added feature request New feature or request libcuproj Relates to the libcuproj C++ library labels Nov 21, 2024
@harrism harrism self-assigned this Nov 21, 2024
rapids-bot bot pushed a commit that referenced this issue Dec 2, 2024
Closes #1489

This PR refactors device `cuspatial::detail::pipeline` into the public API via a type alias `cuspatial::device_projection` which can be passed to a CUDA kernel and invoked to transform coordinates.  `cuspatial::projection::get_device_projection(direction)` can be used to get a `device_projection`.

This required changing the direction parameter for `cuspatial::detail::pipeline` to a constructor parameter rather than a template parameter. I benchmarked before and after this change and saw no significant difference.

I have added tests and an example in `README.txt`.

Authors:
  - Mark Harris (https://github.com/harrism)

Approvers:
  - Michael Wang (https://github.com/isVoid)
  - Paul Taylor (https://github.com/trxcllnt)

URL: #1490
@harrism
Copy link
Member Author

harrism commented Dec 3, 2024

Fixed by #1490

@harrism harrism closed this as completed Dec 3, 2024
@github-project-automation github-project-automation bot moved this from Todo to Done in cuSpatial Dec 3, 2024
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 libcuproj Relates to the libcuproj C++ library
Projects
Status: Done
Development

No branches or pull requests

1 participant