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

request: MATLAB/octave wrappers #59

Open
ahbarnett opened this issue Sep 21, 2020 · 12 comments
Open

request: MATLAB/octave wrappers #59

ahbarnett opened this issue Sep 21, 2020 · 12 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@ahbarnett
Copy link
Collaborator

Just lodging the request that we build some MATLAB/octave wrappers some day soon. Calling this from MATLAB would be really cool, as a drop-in replacement for FINUFFT.

@ahbarnett ahbarnett added the enhancement New feature or request label Sep 21, 2020
@janden
Copy link
Collaborator

janden commented Sep 23, 2020

MATLAB may be doable, but as far as I know, Octave doesn't support GPU arrays natively (there's apparently a package called ocl, but I haven't played around with it) . I also don't know if MATLAB has a MEX interface for GPU arrays. My guess, however, is that it is significantly more painful to implement than the CPU MEX interface. If you think there's a large enough need, we could look into it.

@ahbarnett ahbarnett added the help wanted Extra attention is needed label Sep 24, 2020
@ahbarnett
Copy link
Collaborator Author

Matlab w/ Parallel Toolbox can interface to gpuArray objects directly, in a MEX-like fashion:

https://www.mathworks.com/help/parallel-computing/run-mex-functions-containing-cuda-code.html

A self-contained few days of interfacing there, adapting our FINUFFT matlab interfaces, a nice project for someone.

@janden
Copy link
Collaborator

janden commented Sep 28, 2020

All right, sure, but would you use it? I don't think it's a good idea to add a feature until we have a user (just one would be enough). Otherwise it's just adding to our maintenance (and testing) burden without much of a benefit.

@ahbarnett
Copy link
Collaborator Author

ahbarnett commented Sep 29, 2020 via email

@janden
Copy link
Collaborator

janden commented Sep 30, 2020

All right. If he would use it, it could make sense to add, I agree. Does he already use the gpuArray stuff in Matlab?

@ahbarnett
Copy link
Collaborator Author

ahbarnett commented Sep 30, 2020 via email

@danfortunato
Copy link

Hi guys. I haven't played around with the gpuArray stuff in MATLAB (no NVIDIA chip in my laptop sadly). I don't have a pressing need for the cuFINUFFT wrappers, but I'm happy to help implement this. The semi-Lagrangian stuff doesn't need to be in MATLAB though (and maybe it shouldn't be).

@ahbarnett
Copy link
Collaborator Author

ahbarnett commented Oct 2, 2020 via email

@tangjinchuan
Copy link

Hi, do we have an OpenCL implementation? I am a code contributor to Octave gpuArray (octave-ocl). If we have an OpenCL implementation like VKFFT. I am happy to work with my students to implement it in an undergraduate degree project.

Best wishes,
Jinchuan Tang

@janden
Copy link
Collaborator

janden commented Nov 18, 2023

Hi Jinchuan,

This is currently a CUDA-only implementation. We haven't looked into OpenCL, but I imagine this would be quite a significant undertaking, so don't think this is likely in the near future.

@tangjinchuan
Copy link

tangjinchuan commented Dec 1, 2023 via email

@mikecjz
Copy link

mikecjz commented May 24, 2024

Referencing my example solution from the finufft repo flatironinstitute/finufft#432.

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

No branches or pull requests

5 participants