- 298 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 17:15:02.61 ]
- sharedメモリって同一WARP内でのやり取りだったら同期なしで大丈夫なのでしょうか?
たとえば全部で32スレッドで次のkernelを実行した場合、 WARP内で一斉にsharedメモリに書きに行くので同期しないで大丈夫かと 思ったのですが、実際にはうまくいきません。 globalメモリに読みに行く段階でコアレッシングが発生していないので それが原因なのでしょうか? どなたか教えてください。 __global__ void kernel(float *g_v, float *g_x){ float x = 0.0f; int i = blockDim.x * blockIdx.x + threadIdx.x; __shared__ float s_v[32]; s_v[i] = g_v[i+i%3]; __syncthreads(); // これが必要かどうか? x = s_v[(i+3)%32]; g_x[i] = x; }
|

|