griddedInterpolant not a built-In Functions on a GPU

6 views (last 30 days)
To make my code faster I have implemented "griddedInterpolant " instead of "interp1". Now I have a GPU but "griddedInterpolant" does not support gpu arrays, whereas "interp1" does. If this is the case I have to rewrite my code, using interp1. Is there a solution?

Accepted Answer

Joss Knight
Joss Knight on 18 Jan 2018
I'm not sure what you're asking, but if you're asking "am I right that I have to rewrite my code?" then yes, you are right.
  2 Comments
Massimo
Massimo on 18 Jan 2018
Thank you the answer. My question was bad posed. What I meant is if there is a way to implement "griddedInterpolant" with GPU anyway, since interp1 which works with GPU is based on "griddedInterpolant". Moreover, "interp1" in GPU does not implement "spline" but only "v5cubic", which does not permit extrapolation. Are there other ways to perform the interpolation with GPU? Perhaps in the future version of matlab?
Joss Knight
Joss Knight on 20 Jan 2018
GPU interp is a custom implementation and is not based on griddedInterpolant. Of course you can write your own implementation. If you write it in MATLAB code it's unlikely to be faster than just calling interp, in spite of the time saved computing the interpolation weights (which is why we have griddedInterpolant).
Spline interpolation is being supported in a future MATLAB, although I'm not sure if extrapolation will be. You can find another way to do extrapolation, perhaps by padding your input.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!