1

三角メッシュの各点について特定の統計を計算しようとしています。計算自体を行う関数は、ポイント (6 つの float: x,y,z 座標; nx,ny,nz normal ) と、10 個の隣接するメッシュの配列を入力として受け入れます。現在、このデータを非常に簡単な方法で GPU に渡しています。ポイント座標 [x,y,z,x1,y1,z1,x2,y2,z2,..] の 1D 配列 (座標各ポイントの後に、その 10 個の隣接点の座標が続きます) と、法線用の別の 1D 配列が同じ方法で配置されます。

特定のスレッドによって処理されるデータへのアクセスは、これら 2 つの配列に対する単純なポインター演算によって行われます。

明らかに、これはメモリと計算の面で非効率的です。「バニラ」の非 CUDA 実装では、ポイント構造体が入力されたスパース隣接行列を使用していました。CUDAで同様のことを行うことは可能ですか?

4

1 に答える 1

1

1 つの構造体が点の x、y、z および nx、ny、nz 座標を格納する構造体の配列を渡すことができます。そして、配列は、ポイントとその近傍に対応するものを格納します。私が正しければ、CUDA は AOS (構造体の配列) をとても気に入っています。

于 2013-06-16T09:12:54.550 に答える