問題タブ [cuda-streams]
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.
c++ - GPU をクラッシュさせる複数の CUDA ストリーム
これは、この投稿の続きです。
追加することで特別なケースが解決されたように見えますが、別のvolitile
何かが壊れています。2 つのカーネル呼び出しの間に何かを追加すると、システムは以前の動作に戻ります。つまり、一度にすべてをフリーズして印刷します。この動作は、sleep(2)
;を追加することで示されます。set_flag
との間read_flag
。また、別のプログラムに入れると、これにより GPU がロックアップします。私は今何を間違っていますか?
再度、感謝します。
cuda - 同時にいくつの cudaMemcpyAsync 操作を実行できますか?
次のケースを考えます。
2 つの memcpy 操作を同時に実行して、ホスト デバイスの帯域幅を 2 倍にすることはできますか (ホストのメモリ帯域幅が十分である限り)。答えが「はい」の場合、そのような同時実行の上限はありますか?
単一のコンピューティング ノードで多数 (6 ~ 8 個) の GPU 用のプログラムを作成する予定です。これは、パフォーマンスにとって非常に重要です。
concurrency - 同じマルチプロセッサ上で同時に実行される一意のカーネル?
ストリームを使用して、Kepler 3.5 GPU の同じストリーミング マルチプロセッサ上に複数の固有のカーネルを持つことは可能ですか? <<<1,1024>>>
つまり、15 個の SM を備えた Kepler GPU で同時に30 個のサイズのカーネルを実行しますか?
cuda - Maxwell (GPU Nvidia) でのデータ転送のオーバーラップ
私はフォーラムの初心者です。私の質問を手伝ってくれることを願っています。最近、計算とデータ転送をオーバーラップさせる目的で CUDA ストリームを使用するアプリケーションを開発しました。GPU Nvidia (Maxwell アーキテクチャ) でこのアプリケーションを実行しました。Visual Profiler ツールを使用して、一部のデータ転送 HostToDevice が同時に発生することを確認しました。Maxwell GPU には 2 つのコピー エンジンしかありません。一方のコピー エンジンは HostToDevice 転送用で、もう一方のコピー エンジンは DeviceToHost 転送用ですよね。これを念頭に置いて、2 つの HostToDevice 転送が同時に発生することはあり得ないと思います。ただし、Visual Profiler を使用して、この動作がアプリケーションに現れることを確認しました。だから、私の質問は: このアーキテクチャでは、
どうもありがとう。
concurrency - スラスト実行ポリシーはカーネルをデフォルト ストリームに発行します
私は現在、Thrust テンプレート ライブラリのさまざまな側面と機能を示す短いチュートリアルを設計しています。
残念ながら、cuda ストリームを使用してコピー/計算同時実行を使用する方法を示すために私が書いたコードに問題があるようです。
私のコードは、こちらの非同期起動ディレクトリにあります: https://github.com/gnthibault/Cuda_Thrust_Introduction/tree/master/AsynchronousLaunch
問題を生成するコードの要約を次に示します。
以下は、nvidia ビジュアル プロファイルを介して観察された、プログラムの 1 つのインスタンスの結果です。
ご覧のとおり、cudamemcopy (茶色) は両方ともストリーム 13 と 14 に発行されますが、thrust によって Thrust::transform から生成されたカーネルはデフォルト ストリーム (キャプチャの青色) に発行されます。
ちなみに、GTX680 と gcc 4.8.2 で cuda ツールキット バージョン 7.0.28 を使用しています。
誰かが私のコードの何が問題なのか教えてくれたら幸いです。
前もって感謝します
編集:これが私が解決策と考えるコードです:
nvcc ./test.cu -o ./test.exe -std=c++11 を使用してコンパイル
cuda - CUDAでは、デフォルトストリームがnullptrに等しいことが保証されていますか?
CUDAdriver_types.h
には次のものがあります。
そして、cuda_runtime.h
多くの場所で、デフォルトで初期化されたストリーム パラメータがあります。例えば:
デフォルトのストリームが であると想定するのはどのくらい安全です(cudaStream) nullptr
か?