1

これは必ずしも CUDA 固有のものではありません。

基本的に、GPU では 1D 配列を使用しますが、C コードでは 3D 配列を使用します。この配列を前後にコピーする必要があり、インデックスを適切に線形化できる必要があります。つまり、(1, 0, 0) を 1 として線形化するか、(0, 1, 0)、または (0, 0, 1) の形式で、正しい番号付けスキームを選択する必要があります。 (x、y、z)?

3D 配列は array[X][Y][Z] として宣言されます。その 3D 配列を同じサイズの 1D 配列にコピーすると、コンピューターは自然にどのように番号を付けますか? ただし、コンピューターは 3 次元配列を折りたたむため、2 つの間で変換しようとするときにまったく同じことを行う必要があります。言いたいことははっきりしていると思いますが、質問があれば聞いてください。ありがとうございました。

4

1 に答える 1

3

Cの配列は、行優先の順序で保持されます。詳細については、これを参照してください。

したがって、最初の要素は、、array[0][0][0]2番目の要素は、array[0][0][1]などです。

于 2012-06-06T00:22:48.627 に答える