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

Convert to use OpenCL instead of CUDA #12

Open
mpowelson opened this issue Oct 30, 2019 · 7 comments
Open

Convert to use OpenCL instead of CUDA #12

mpowelson opened this issue Oct 30, 2019 · 7 comments
Labels
enhancement New feature or request

Comments

@mpowelson
Copy link
Contributor

Has any thought been put into this? I have no experience with OpenCL but from what I know it would have several advantages primarily allowing yak to run on multiple brands of GPU as well as at least Intel CPUs.

I know I have read that it may not perform as well as NVIDIA specific code for some problems but allowing us to build yak to run on the CPU seems worth a small performance hit. If we ran it on a CPU we could presumably then use regular RAM for the volume. This would also allow us to unit test on Travis easily

@schornakj schornakj added the enhancement New feature or request label Nov 6, 2019
@schornakj
Copy link
Contributor

I think this is definitely a desirable direction for future development. It would require a ground-up rewrite of most of this package, but I'd like to do that anyway at some point and this is a good opportunity.

@mpowelson
Copy link
Contributor Author

I'm not sure what this is, but this might be another alternative
https://software.intel.com/en-us/oneapi

@gavanderhoorn
Copy link
Member

Came up in the last developer meeting: apparently OpenCV contains an implementation of Kinfu in its contribs package that is OpenCL based (or at least: the keyword opencl is mentioned): cv::kinfu::KinFu Class Reference.

Could be used as inspiration / a starting point.

@schornakj
Copy link
Contributor

Probably also worthwhile to take a look at SYCL, which provides C++-style abstraction layer on top of OpenCL.

@mpowelson
Copy link
Contributor Author

@schornakj You might look into ArrayFire as well. We looked into it for TrajOpt, and it seems pretty nice. It might not be as efficient as well written custom CUDA code, but having everything in the form of matrix math would probably help maintainability. They have backends for CUDA, OpenCL (GPU or CPU), or custom CPU

drchrislewis pushed a commit to drchrislewis/yak-1 that referenced this issue Oct 27, 2020
@Levi-Armstrong
Copy link
Contributor

You might have better luck with Open3d.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants
@gavanderhoorn @Levi-Armstrong @mpowelson @schornakj and others