8

Python で Fitted Value Iteration (FVI) を実行しようとしています (区分的線形補間を使用して 5 次元関数を近似することを含む)。

scipy.interpolate.griddata はこれに最適です。ただし、補間ルーチンを数千回呼び出す必要があります (FVI は MC ベースのアルゴリズムであるため)。

したがって、基本的に、関数が既知のポイントのセットは静的です (そして大きい - たとえば 32k) が、近似する必要があるポイント (元のセットの小さな摂動) は非常に大きい (32k x 5000 と言います)。

CUDA に移植された scipy.interpolate.griddata の実装はありますか? あるいは、何らかの方法で計算を高速化する方法はありますか?

ありがとう。

4

1 に答える 1

1

区分的線形補間の場合、ドキュメントでscipy.interpolate.griddataは、 のメソッドを使用しscipy.interpolate.LinearNDInterpolator、次にqhullを使用して入力ポイントの Delaunay テセレーションを実行し、標準の重心補間を実行します。各ポイントについて、各ポイントがどのハイパーテトラヘドロン内にあるかを決定する必要があります。である場合、その重心座標を超四面体ノード値の補間重みとして使用します。

テセレーションはおそらく並列化が難しいですが、 で CPU バージョンにアクセスできますscipy.spatial.Delaunay。他の 2 つのステップは簡単に並列化できますが、自由に利用できる実装は知りません。

既知の関数ポイントが通常のグリッド上にある場合、ここで説明する方法は CUDA で実装するのが特に簡単です。公開されているものはありませんが、実際の実装で作業しました。

そのため、ほとんどの作業を自分で行わなければならないのではないかと心配しています...

于 2012-12-28T16:26:02.353 に答える