-
Notifications
You must be signed in to change notification settings - Fork 9
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
cuFINUFFT interface #58
Conversation
@ahbarnett I think the CUDA interface is pretty much in place now, let me know what you think before I merge it! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A100 GPU. Julia 1.9.3.
julia> ]add https://github.com/ludvigak/FINUFFT.jl#cufinufft
pkg> test FINUFFT
(wait several minutes for compilation of cuda etc...)
Test Summary: | Pass Total Time
FINUFFT | 51 51 5.9s
┌ Warning: You are using a non-official build of Julia. This may cause issues with CUDA.jl.
│ Please consider using an official build from https://julialang.org/downloads/.
└ @ CUDA ~/.julia/packages/CUDA/75aiI/src/initialization.jl:180
Test Summary: | Pass Total Time
cuFINUFFT | 34 34 24.0s
Testing FINUFFT tests passed
Looks good. I seem not to have needed ]add CUDA
I also played around with Float32 and benchmarking. 1d1 is 20x faster on A100 than 10threads of a top-end xeon. You may want to include example benchmark code. Here's mine:
Thanks for the nice example code. Looks good to merge. |
Bump minor version
Interface to the (guru) cuFINUFFT library, using CUDA.jl for copying data to/from device.
To-do list:
cufinufft_jll
: [finufft] CUDA components of FINUFFT library JuliaPackaging/Yggdrasil#8928finufftDdN!
andcufinufftDdN
Fixes #49