1

C++ AMP に関する本を読んでいるのですが、いくつかの用語がよくわかりません。

最下位次元のスレッド数が少なくとも 16 になるように常にタイル サイズを選択し、可能であれば 32 または 64 を使用してください。

Eigen のドキュメントで同様の用語が使用されているのを見たことがあるので、これはかなり一般的な使用法だと思います。

では、2D インデックス、配列などを持っているとしましょう。

// construct it:
ArrayType my2DArray(rows,columns);

// now index it:
float element = my2DArray[rowIdx,colIdx];

の型をちょっと忘れてArrayType、用語についてもっと考えてみると、その配列の最も重要な次元と最も重要でない次元はどれでしょうか?

4

1 に答える 1

4

スレッドを論理的に多次元に割り当てる場合、通常、その N 次元空間から線形空間へのマッピングがあります。線形空間の変化が最も少ない次元は、最下位次元です。

例として、2 次元 (X,Y) 座標の線形空間へのマッピングは、式 (Y * 幅 + X) を使用して決定できます。ここで、X は最下位次元であり、Y は最上位次元です。同様に、3 次元 (X,Y,Z) 空間の場合、式は (Z * 幅 * 高さ + Y * 幅 + X) になります。ここで、X は依然として最下位ですが、Z が最上位です。レイアウトが必ずしも同じであるとは限りません。たとえば、リニア スペースを (Z * 幅 * 高さ + X * 高さ + Y) にマップすることを選択する場合があります。この場合、Y は最下位次元です。

于 2013-11-06T23:52:56.210 に答える