- 303 名前:298 mailto:sage [2012/01/10(火) 17:59:16.44 ]
- >>300
ごめんなさい、書いたコードが一部誤ってました。 iが32以上になることがあります。 ブロック数は数100程度になります。 このときは、下のソースのようになると思うのですが、 やはりうまくいきません。 __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[blockDim.x]; s_v[threadIdx.x] = g_v[i+i%3]; __syncthreads(); // これが必要かどうか? x = s_v[(threadIdx.x+3)%32]; g_x[i] = x; }
|

|