- 514 名前:506 [2013/10/15(火) 01:01:28.01 ]
- おかしな動作をしている箇所を特定しました。
(「cuda-gdb」で再現しないと、デバッグに時間がかかりますね。。。) ワープ内で32回ループ(ワープ内スレッド数分のループ)している箇所があり、 その中で1つ1つのスレッドが順番に「とあるシェアードメモリ変数」を 書き換えているのですが、別のスレッドが書き換えたはずの値が、 正しく取れていない動作をしていました。 追跡はこれからですが、その後の処理でその変数を使っているところで、 何かしらカーネルが止まる動作になっているものと思います。 とりあえず、その変数に「volatile」を付けたところ、 カーネルが動く様になりました。 まだまだ、これで直ったかどうかは、これからじっくり試験しないとダメですが、 変な箇所が発見できたので、大きく前進しました。 ありがとうございました。 511>> threadIdx/blockIdxについて確認してみました。 大丈夫でした。 カーネル呼び出しは、通常であればご指摘の通りの動作をしますが、 今回のバグでは、カーネル呼び出しで処理がストップしていました。
|

|