問題タブ [cuda-gdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cuda - GTX 750 Ti を搭載した Ubuntu 12.04 で CUDA 5.5 が動作しない
Ubuntu 12.04 64 ビットで GTX 750 Ti を CUDA 5.5 で使用しようとすると、次のエラーが発生します。
ドライバーのインストールで、カーネル ソースを見つけることができません。カーネル ソース パッケージが正しくインストールされ、セットアップされていることを確認してください。カーネル ソース パッケージが正しくインストールおよび設定されていることがわかっている場合は、カーネル ソースの場所を
--kernel-source-path
フラグで渡すことができます。
このエラーを修正するにはどうすればよいですか?
cuda - Strange CUDA program behavior and I can't find bug by cuda-dbg
I want to implement MonteCarlo using CUDA.
I write my code on Win8 PC using Visual Studio2012/CUDA 5.5/GT 720M and it runs well.
Then I tried to compile my code in REHL5.3/Tesla C1060/CUDA 2.3 but the result turned out wrong.
Then I want to use cuda-gdb to debug it
but, when I compile my code like this:
the result is wrong. However I can't debug it because it's not debug-able code.
When I compile it like this:
The result, this time, get correct... So still I can't find my bug by debugging it...
the code looks like this, the function __device__ double monte_carlo_try()
is not in the real code.
the problem is, if I check the value of test[], I find the values are all correct.
So there should be some error in the reduction part.
cuda - cuda-gdb エラー メッセージ
cuda-gdb を使用して CUDA アプリケーションをデバッグしようとしましたが、奇妙なエラーが発生しました。
-g -G -O0
アプリケーションをビルドするオプションを設定しました。cuda-gdb なしでプログラムを実行できましたが、正しい結果が得られませんでした。したがって、cuda-gdbを使用することにしましたが、cuda-gdbでプログラムを実行しているときに次のエラーメッセージが表示されました
Error: Failed to read the valid warps mask (dev=1, sm=0, error=16).
どういう意味ですか?の理由sm=0
と意味はerror=16
何ですか?
更新 1 : cuda-gdb を CUDA サンプルに使用しようとしましたが、同じ問題で失敗します。NVIDIAの指示に従って、CUDA 6.0 Toolkitをインストールしました。私のシステムの問題ですか?
更新 2 :
- OS - CentOS 6.5
- GPU
- 1 クアドロ 400
- 2 テスラ C2070
- プログラムに GPU を 1 つしか使用していませんが、選択したどの GPU からも同じバグ メッセージが表示されます。
- CUDA バージョン - 6.0
- GPU ドライバー
- NVRM バージョン: NVIDIA UNIX x86_64 カーネル モジュール 331.62 Wed Mar 19 18:20:03 PDT 2014
- GCC バージョン: gcc バージョン 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
更新 3 : cuda-gdb で詳細情報を取得しようとしましたが、次の結果が得られました
(cuda-gdb) info cuda devices
Error: Failed to read the valid warps mask (dev=1, sm=0, error=16).
(cuda-gdb) info cuda sms
Focus not set on any active CUDA kernel.
(cuda-gdb) info cuda lanes
Focus not set on any active CUDA kernel.
(cuda-gdb) info cuda kernels
No CUDA kernels.
(cuda-gdb) info cuda contexts
No CUDA contexts.
ubuntu - CUDA クロスコンパイル エラー! cuda-gdb エラー メッセージ RSEG1058
私はこの CUDA と並列コンピューティングのスタッフには不慣れで、最近問題を抱えています。ホストであるUbuntu 12.04システムと、ターゲットとしてのJetson TK1があります。アルゴリズムの作成、編集、コンパイルには Nsight Eclipse を使用しています。SSH プロトコルを使用して、ホスト コンピューターから TK1 に接続しています。
ファイル転送操作を試してみると、いつでも問題ありません。ただし、クロスコンパイルプロセスがうまくいかず、エラー「ubuntu@192.168.0.94 への接続がキャンセルされました」というタイトルの「RSEG1058」が表示されることがあります。この問題は 75% の確率で発生するため、問題がわかりません。時にはそれは完全に機能します。助けてください。必要に応じて別の情報を提供できます。ところで、問題になりそうな別の詳細も見つけました。実行ボタンの近くの矢印にあるオプション「実行構成」から実行の構成を変更しようとすると、最初に設定されているライブラリとツールキットのパスを変更できることがわかりました。そのウィンドウに表示されたのは、cuda-gdb ファイルに「操作に失敗しました。ファイル システムの入力または出力エラー」というメッセージが表示された赤い十字のアイコンがあることです。画像を見て、私が話していることを理解できます。この2つが関係しているかどうかはわかりませんが、完璧なタイミングを常にキャッチしようとするのはうんざりです.
torch - スクリプトは cuda-memcheck で実行した場合にのみ機能します
torch と cudnn を使用して convnet を作成していて、メモリに問題があります。cuda-memcheck を使用してスクリプトをデバッグしようとしましたが、cuda-memcheck を介して供給されたときに実際に実行されることに気付きました (本来よりも遅いですが)。
cuda-memcheck がバックグラウンドで実行されている場合、スクリプト自体の別のインスタンス化も正常に実行されます。
ここで何が起こっているのでしょうか?
memory-management - Type** を使用すると cudaMemcpy() が segfault を返す
ダブル ポインター オブジェクトをホストにコピーし、GPU デバイスで計算したいと考えています。デバイスに対してオブジェクトの cudaMemcpy を実行すると、SEGFAULT がスローされます。
今、以下の行はsegfaultをスローします
cuda - cudaDeviceSynchronize での不正なメモリ アクセス
特定のサイズの Heat 2D シミュレーションを実行すると「不正なメモリ アクセス」エラーが発生するという非常に奇妙なバグに遭遇していますが、要素が少ないだけでまったく同じシミュレーションを実行すると、シミュレーションは正常に実行されます。
配列のサイズを大きくするとこの例外が発生する理由はありますか? Titan Black GPU (メモリ 6 GB) を使用していますが、実行しているシミュレーションはそのサイズにはほど遠いものです。4000 x 4000 のシミュレーションを実行できると計算しましたが、250 x 250 を超えるとエラーになります。
デバイスでシミュレーション オブジェクトの配列をインスタンス化した直後にエラーが発生します。インスタンス化コードは次のとおりです。
このコードは十分に小さいシミュレーションでエラーなしで実行されるため、表示されるカスタム型はすべて機能していると想定してください。サイズが 250 x 250 要素を超えると、カーネル関数の場所と状態配列の要素数がエラーを引き起こすように見えることに不満を感じています。どんな洞察も素晴らしいでしょう。
ありがとうございました!
cuda - CUDA アドレスストレンジネスへの不正アクセス
私の質問は次のとおりです。CUDA ハードウェアに障害がありますか、それとも別の説明がありますか? 変更なしで約 1 年間使用されているカーネルがあります。最近、不規則な間隔でセグメンテーション違反が発生し始めました。つまり、数分後、時には数時間の実行後に再現できました。これにより、セグメンテーション違反を再現する最小限のバージョンのプログラムが作成されました。また、stackoverflow の投稿から多くのことを学びました。
cuda-memcheck を繰り返し bash ループで実行すると、最終的に次のように報告されます。
悪いポインター操作の通常の犯人は除外されました。もう 1 つの手がかりは、不正なアドレッシングがコード内で発生した場所で一貫していなかったことです。カーネル全体で、グローバル配列へのインデックスに対して不規則に発生していました。
私の質問のこの時点で、最も可能性の高い説明はバグのあるコードです。ハードウェアが故障していると私が信じるに至ったのは、cuda-gdb によるものです。
インデックス「ix」は次のとおりです。
そして、インスタンス化後に変更されません。実際、0x245684
は の開始アドレスの下にありますc=0x250000
。それでも、クエリを実行すると、この配列の許容可能なアドレスである がprint &c[ix]
返されます。0x255684
再生成には、再度ポップアップする前に 10 ~ 50 回の実行が必要ですが、不正なアドレスは、返さ0x010000
れるものと常に 1 ビット異なりprint &c[ix]
ます。 エラー メッセージと印刷のアドレスの違いを説明できません。1 ビットの違いと合わせて、ハードウェアの故障が疑われます。FWIW0x010000
は、この Tesla C1060 の最大グリッド サイズと同じです。
そしてついに本日CUDAカードを新機種に交換しました。100回実行しても再現できませんでした。
exception-handling - cuda 例外後のメモリ データの状態
CUDA ドキュメントは、CUDA アプリケーションが例外をスローした後にメモリ データがどのように変化するかについて明確ではありません。
たとえば、カーネルの起動 (動的) で例外が発生した場合 (例: Warp Out-of-range Address)、現在のカーネルの起動は停止されます。この時点の後、デバイス上のデータ (例: __device__ 変数) は引き続き保持されますか、それとも例外と共に削除されますか?
具体例は次のようになります。
- CPU がカーネルを起動する
- カーネルが __device__ variableA の値を 5 に更新してクラッシュする
- CPU memcpy デバイスからホストへの variableA の値。この場合、CPU が取得する値は何ですか?5 か何か?
誰かがこの背後にある理論的根拠を示すことができますか?