- 157 名前:デフォルトの名無しさん mailto:sage [2012/12/29(土) 11:26:38.86 ]
- こんな感じのカーネルがあって、
kernelfunc<<<1,16>>() { int ix = threadIdx.x; if(ix < 14) { 何らかの処理 __syncthreads(); } 何らかの処理 } MPIとかSMPなどではこのような処理は帰ってこなくなるけど CUDAのカーネルでは問題なく動く。 __syncthreads()っていうのは、分岐があってもWarp単位では分岐から外れたスレッドは単に何もしないだけで、 __syncthreads()がどっかで呼ばれたらとりあえず足並みを揃えることはする。 という理解でいいのかな?
|

|