3D Linear Interpolation for GPU
This function is faster than MATLAB's griddedInterpolant function for the CPU, but slower than MATLAB's interpn function for the GPU. However, I've coded this using arrayfun. Since MATLAB does not support using interpn in arrayfun, this function should be helpful to those who wish to do interpolation inside more complex code executing on the GPU using arrayfun. I tried making this code as fast as possible, but I cannot match the speed of interpn. Any suggestions for improvements would be greatly appreciated.
Note that this function assumes the data to be interpolated does not go off the grid and the grid is uniformly spaced in each dimension. The syntax is exactly like interpn, i.e.
Vi=interpn(x1,x2,x3,V,x1i,x2i,x3i);
Vi=interp3gpu(x1,x2,x3,V,x1i,x2i,x3i);
should produce the same result. If your data are gpuArrays, then interp3gpu will execute on your GPU. Otherwise it will execute on your CPU.
Zitieren als
Philip (2026). 3D Linear Interpolation for GPU (https://de.mathworks.com/matlabcentral/fileexchange/47437-3d-linear-interpolation-for-gpu), MATLAB Central File Exchange. Abgerufen.
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
- MATLAB > Mathematics > Interpolation >
- Parallel Computing > Parallel Computing Toolbox > GPU Computing >
Tags
Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
| Version | Veröffentlicht | Versionshinweise | |
|---|---|---|---|
| 1.2.0.0 | Updated description. |
||
| 1.1.0.0 | Updated code to make it faster and use less memory. |
||
| 1.0.0.0 |
