griddedInterpolant not a built-In Functions on a GPU

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

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

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?
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)

Categories

Find more on Interpolation in Help Center and File Exchange

Asked:

on 22 Dec 2017

Commented:

on 20 Jan 2018

Community Treasure Hunt

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

Start Hunting!