griddedInterpolant not a built-In Functions on a GPU

6 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Joss Knight
Joss Knight il 18 Gen 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 Commenti
Massimo
Massimo il 18 Gen 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 il 20 Gen 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.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by