-
Notifications
You must be signed in to change notification settings - Fork 25
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
Comments
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. |
I'm not sure what this is, but this might be another alternative |
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 Could be used as inspiration / a starting point. |
Probably also worthwhile to take a look at SYCL, which provides C++-style abstraction layer on top of OpenCL. |
@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 |
Add yak_ros_msgs dependency
You might have better luck with Open3d. |
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
The text was updated successfully, but these errors were encountered: