Faster three dimensional higher order interpolation?

8 ビュー (過去 30 日間)
Wayne Page
Wayne Page 2023 年 8 月 17 日
編集済み: Bruno Luong 2023 年 8 月 25 日
I have a few algorithms that are being bottlenecked by the interpolation over three-dimensional volumes, unfortunately, trying to acclerate it using interpn with gpuArrays limits me to the use of linear or nearest interpolation, which significantly affects the results. Are there any higher order interpolation schemes that can be run on the GPU, with some other function?

回答 (2 件)

Joss Knight
Joss Knight 2023 年 8 月 25 日
Thanks for the request, it will help us prioritise future work. In the meantime, it is possible to write your own interpolation code for the GPU using ARRAYFUN. You can either use up-level variables or pass shifted versions of your data (using indexing) which then get combined inside the arrayfun function. So for instance, for a cubic interpolation you will need four variables per dimension; or perhaps better, call ARRAYFUN multiple times to interpolate each dimension in turn.

Bruno Luong
Bruno Luong 2023 年 8 月 25 日
編集済み: Bruno Luong 2023 年 8 月 25 日
You probably need to change an existing open interpolation code to use efficiently gpu arrays.
The cubic methode is smooth method and it is easier to implement than spline, but it requires uniform grid.
The spline is more complicated, you might start with a code duch as this one by your trully
I never work my own makima so I can't comment, but it should be more difficult than spline.
It requires a little bit of work in any case.

カテゴリ

Help Center および File ExchangeInterpolation についてさらに検索

製品


リリース

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by