想い出ざわざわ

画像処理・機械学習を学びます。

"cudaErrorLaunchOutOfResources"について

表題のエラーで苦しめられてる。関連サイトを集めた。

 

・公式の説明

CUDA Runtime API :: CUDA Toolkit Documentation

レジスタ数の確認

カーネルが使うレジスタ数 - PukiWiki for PBCG Lab

・実行ユニットあたりの共有メモリ・レジスタ数の説明

高速演算記 第3回 「チューニング技法その1 CUDAプログラミングガイドからピックアップ」 | G-DEP

・掲示板での解決事例

https://devtalk.nvidia.com/default/topic/569648/cudaerrorlaunchoutofresources-aka-quot-too-many-resources-requested-for-launch-quot-/?offset=1

・デバイスが対応するレジスタ数の取得

デバイス情報の取得 - PukiWiki for PBCG Lab

・デバイス情報の取得での設定

https://devtalk.nvidia.com/default/topic/413403/cudadeviceprop-undeclared-first-use-in-this-function-/

カーネルで気をつけるのはスレッド数・レジスタ量・共有メモリの量

www.softek.co.jp

2chで関連ありそうだった書き込み

f:id:nozawanarain:20170801230713p:plain

・デバイス情報の表示方法

qiita.com

 

誤って編集した記事を一度削除して、絶望した。

手元のコードは、レジスタ数が上限を超えてるように思うのだが・・・

 

追記

やはりレジスタが不足していた。コンパイル時に、maxreggcountを設定して解決

d.hatena.ne.jp

smのレジスタ数をブロックあたりのスレッド数で分割し、カーネル関数の使用レジスタ数を下回っていると上記エラーが発生するよう。