6

(PyCUDA を介して) CUDA カーネルを起動しようとすると、リソース不足のエラーが発生します。不足しているリソースをシステムに教えてもらうことができるかどうか疑問に思っています。明らかに、システムはどのリソースが使い果たされているかを知っています。それも照会したいだけです。

占有計算機を使用しましたが、すべて問題ないように見えます。カバーされていないコーナーケースがあるか、間違った使い方をしています。私は<= 63を使用していて、CC 2.1デバイスの1x1x1ブロックと1x1グリッドでまだ失敗しているため、レジスタではないことを知っています(これは通常の原因のようです)。

助けてくれてありがとう。NVidia ボードにスレッドを投稿しました。

http://forums.nvidia.com/index.php?showtopic=206261&st=0

しかし、応答がありませんでした。答えが「システムにその情報を要求することはできません」である場合、それも知っておくとよいでしょう (一種の... ;)。

編集:

私が見た中で最も多くのレジスタの使用は 63 でした。それを反映するために上記を編集しました。

4

2 に答える 2

6

PyCUDA は CUDA ドライバー API を使用していると思うので、以下が間違っている可能性があります: CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES は、cuLaunch()カーネルを起動するために使用するときに、十分な引数を指定しないか、引数に間違ったサイズを指定すると発生する可能性があります。PyCUDA を使用しているため、カーネルに必要な引数リストと実際に渡す引数を簡単に一致させられない可能性があるため、カーネルの呼び出し方法を確認することをお勧めします。

この状況では、これは名前の悪いエラーコードだと思います...

于 2011-08-01T06:13:37.790 に答える
0

この回答を参照してください

スレッドあたりの CUDA の最大レジスタ数: sm_12 対 sm_20

70 レジスタは多すぎるようです。

于 2011-07-31T22:51:46.803 に答える