CUDAの10秒制限はどうなっているのだろうか?

CUDAには1Grid10秒までという制限がある。1GridというのはCPUからGPUを呼び出す単位であり、要するにGPUに投げる処理は10秒未満で終わるサイズに抑えなさいということである。忘れていると嵌るので注意が必要である。

ちなみに、nvccを用いてコンパイルする際に-D_DEBUGを付けておき、__global__関数実行後にCUT_CHECK_ERRORを呼び出せば、timeoutによるエラーが検出できる。活用すべし。

では大きな問題を解きたい場合にはどうすればよいかというと、問題を分割しろということらしい。うーむ、スマートではない。どこか、例えばドライバインストール時などにこの制限を弄れないのだろうか?

コメントをどうぞ