問題タブ [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 - CUDA カーネル ポインターの引数が NULL になる
私のCUDAカーネルは、カーネルへのポインターとして渡す必要がある多くの配列を必要とします。問題は、カーネルが起動する直前に、すべてのポインターが有効なアドレスを持ち、さらにcudaMalloc
とのcudaMemcpy
呼び出しは常に を返しcudaSuccess
ますが、カーネルが起動すると、これらすべての引数が null になることです!
私は何が起こっているのか分かりません。これは、コードを実行すると得られるものですcuda-gdb
私が見逃していることは非常に明白です。前もって感謝します。
EDIT 1: Gillesが示唆したように、ホストポインターとデータを構造体にコピーしてからデバイスにコピーしようとしています。簡単にするために(MCVE)、構造体内で単一のポインターのみを使用しています。
の値を確認しているとd_struct->ptr
、カーネルが起動する直前に が表示されます0x0
。(デバッグモードで nsight を使用してこれらの値を確認しました)
debugging - CUDA-GDB は、フロートであるべきなのに、int 形式を使用してメモリ コンテンツを出力します。
CUDA C プロジェクトでは、"p" という構造体の内部に float へのポインターがあります。これはデバイス メモリへのポインタであり、「p->deviceOutput」と呼ばれます。CUDA-GDB を使用して、実行中にこのポインターの内容を確認しています。印刷しようとすると、次のようになります。
ご覧のとおり、print は int のようなものを返しますが、float ではありません。ポインターが float へのポインターであると確信しているので、この動作に本当に混乱しています。float 形式を指定しても役に立ちません。
実際、GDB を使用しても同じ動作が得られます。私は Ubuntu 14.10 で作業しており、コードは -O0 および -g オプションを使用して nvcc でコンパイルされています。
何が起こっているのか、このメモリの場所を正しく調べるにはどうすればよいのか、誰か説明してもらえますか? ありがとう
ubuntu - すべての CUDA デバイスが表示に使用されます: デスクトップ環境内から CUDA コードをデバッグできません
先週から、CUDA 開発のセットアップで大きな問題が発生しました。モニターも接続した統合 GPU と、CUDA カーネルを実行するための追加の NVIDIA カードがあります。ただし、次のように表示されているため、コードをデバッグできません。
別の仮想コンソール (CTRL+ALT+F1) に切り替えると、cuda-gdb を使用してコードを実行できるため、X サーバーが NVIDIA GPU をブロックしているようです。NVIDIA カードにモニター ケーブルが接続されていません...
「lsof /dev/nvidia*」は何も出力しません。Xubuntu 14.04 を使用しています。
この問題を解決する方法を知っている人はいますか?
c++ - Cuda API エラーが検出されたときにプログラムがクラッシュした場所を見つける方法: cudaMemcpy が返されました (0xb)
cuda プログラムをデバッグしていて、次の警告が表示されました。
cuda-gdb で「where」と入力すると、「no stack」と表示されます。
プログラムがクラッシュした場所を見つけるにはどうすればよいですか?
cuda - Windowsでcuda-gdbを実行するには? cygwin を使用できますか?
Windows で cuda-gdb を使用してアプリケーションをデバッグしたいと考えています。Windows で cuda-gdb を実行することは可能ですか? cygwin はそれを行うのに役立ちますか?
linux - cuda-gdb を介してカーネル障害を呼び出しますか?
cuda-gdb を使用してカーネル障害を引き起こす方法はありますか? カーネル コードをステップ実行して、無効なインデックス位置、変数に奇数の値を設定しようとしましたが、誤った設定から続行した後、「kernel Execution Failed」をトリガーできません。
cuda-gdbを介してこれを行う適切な方法を知っている人はいますか? 私は cuda-gdb のドキュメントを 2 回読んだことがありますが、可能であれば、これを達成する方法についての手がかりを見逃している可能性があります。誰かが最も高く評価されるツール/テクニックを知っていれば、感謝します。
CentOS 7 を使用しており、デバイスのコンピューティング機能は 2.1 です。uname -a コマンドの出力については、以下を参照してください。
c++ - デバッグ中に変数値が表示されない
Ubuntu 16.04 で Nsight を使用しています。現在のセットアップでは、nsight IDE を介してコードを完全に正常にコンパイルおよび実行できます。プログラムがデバッグ モードでビルドされていることを確認した後 (最初はそうではありませんでした)、最終的にコードをステップ実行することができました。
私が抱えている問題は、コードをデバッグしようとするたびに、すべての変数が「使用できません」と表示されることです。また、マウスを変数の上に置くと、「-var-create: 変数オブジェクトを作成できません」のようなメッセージが表示されました。これは、おそらくコンパイラのように思われましたか?多分それはそれがするはずだった何かを追加していませんか?
Nsight バージョンは 7.5、GCC & G++ バージョン 5.3.1、GDB バージョン 7.11、NVCC バージョン 7.5.17 です。
python - NSight gdb エラー
デバッグしようとすると、IDE NSight (Eclipse) の「pretty printer」オプションに問題があります。グーグルで検索しましたが、問題の解決策が見つかりませんでした。
デバッグを開始すると、次のメッセージが表示されます。
どこに問題があるのか わかりませんが、変数の値が表示されず、唯一の解決策はきれいな印刷オプションを無効にすることです。
私はUbuntu 16.04を使用しており、cudaツールキットはリポジトリからインストールされました。
誰かが助けてくれれば、とても感謝しています。
cuda - GPU メモリに現在存在するエンティティを確認する
cudaMalloc() で割り当てられたエンティティ (およびそのサイズ) が現在 GPU デバイスに存在することを確認する最も簡単な方法は何でしょうか? 関数内のメモリ リークを見つけたいのですが、関数が 1 回だけ呼び出されて終了した場合はメモリ リークはありませんが (cuda-memcheck でチェック)、複数回呼び出された場合はメモリ フットプリントがどんどん大きくなります。
Nsight Visual Profiler は私が尋ねるには複雑すぎるようで、cuda-memcheck はリークを検出しませんでした!