1

議論はコンピューティング機能 2.x に限定されています。

質問1

curandState のサイズは 48 バイトです (sizeof() で測定)。curandStates の配列が割り当てられるとき、各要素は何らかの形で (たとえば 64 バイトまで) パディングされますか? それとも、メモリに連続して配置されているだけですか?

質問2

Passing structs to CUDA kernelsの OP には、「align 部分は不要だった」と記載されています。しかし、アラインメントなしでは、その構造体へのアクセスは、a と b への 2 つの連続するアクセスに分割されます。右?

質問 3

struct
{
    double x, y, z;
}Position

各スレッドが上記の構造にアクセスしているとします。

int globalThreadID=blockIdx.x*blockDim.x+threadIdx.x;
Position positionRegister=positionGlobal[globalThreadID];

メモリ アクセスを最適化するには、単純に 3 つの個別の double 変数 x、y、z を使用して構造を置き換える必要がありますか?

御時間ありがとうございます!

4

1 に答える 1