問題タブ [multi-gpu]
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 - 複数の GPU での疎行列ベクトル積
複数の(n個としましょう)GPU上のCUDAで疎行列ベクトル積 y = Ax を計算する最速の方法は何だろうと思っていました。
私の素朴なアプローチは、ベクトル x と y を n 個のチャンク (各 GPU で 1 個のチャンク) に分割することです。次に、行列 A をより小さな n^2 ブロック A_ij に分割し、計算します。
さまざまな GPU で j=1..n を cuSPARSE としましょう。これは機能しますか?ユニファイド メモリ アーキテクチャでは、原則としてすべての GPU がグローバル メモリにアクセスできる必要があります。
GPU 間のメモリ転送は非常に遅くなりますか? 大幅な高速化は期待していませんが、単一の GPU で行列とベクトルの乗算を実行するよりも遅くなるかどうか疑問に思っていました。
cuda - マルチ GPU CUDA サンプル (simpleP2P) の実行中に P2P メモリ アクセスが失敗する
CUDA サンプルに含まれている simpleP2P サンプル プログラムの実行中に見つかったエラーのトラブルシューティングを試みています。エラーは次のとおりです。
私が使用しているデバイスは次のとおりです。
nvidia-smi から取得した接続に関する追加情報:
最後に、lspci ツールからのより詳細な出力。
トラブルシューティングや、少なくとも問題の場所をよりよく理解するのに役立つ情報をお持ちの方はいらっしゃいますか? いつものように読んでくれて/助けてくれてありがとう。-- オマール
cuda - cudaMemcpy D2D フラグ - 複数のデバイスに関するセマンティクス、必要ですか?
2 つの GPU 間でデータを memcpy する必要はありませんでした。cudaMemcpy()
今、私はcudaMemcpyDeviceToDevice
フラグでそれを行うつもりだと推測していますが、
- フラグは
cudaMemcpyDeviceToDevice
、単一デバイスのメモリ空間内とすべてのデバイスのメモリ空間間でデータをコピーするために使用されますか?
もしそれが、
- 異なるデバイス上のメモリへのポインタはどのように区別されますか? Unified Virtual Address Spaceメカニズムの詳細を使用していますか?
そして、もしそうなら、
- cudaMemcpy に H2D、D2H、D2D フラグがあるのはなぜですか? とにかく、どのデバイスに対処する必要があるかを確認する必要はありませんか?
cuGetPointerAttribute()
CUDA 低レベル ドライバーを使用して cudaMemcpy のフラグのないバージョンを実装できませんか?
parallel-processing - CUDA: 並列実行するには、複数の GPU で異なるストリームが必要ですか?
複数の GPU でカーネルを並行して実行したいと考えています。この目的のために、使用するデバイスを切り替えてからcudaSetDevice()
、対応するデバイスでカーネルを起動します。現在、通常、1 つのストリーム内のすべての呼び出しは順次実行され、並列で実行する場合は異なるストリームを使用する必要があります。これは、異なるデバイスを使用する場合にも当てはまりますか?または、この場合、両方のデバイスのデフォルト ストリームでカーネル呼び出しを実行しても、それらは引き続き並行して実行できますか?
gpgpu - TensorFlow でのシーケンスからシーケンスへのモデルの分散 (マルチデバイス) 実装?
TensorFlowでsequence-to-sequence モデルをトレーニングするための非常に優れたチュートリアルです。単一のマシンで一連の GPUを利用してパフォーマンスを向上させる分散バージョンがあるかどうかを知りたいだけですか?
TensorFlow のホワイト ペーパーでは、ニューラル ネットワークを使用したSequence to Sequence Learning で使用されているように、大規模な多層再帰型ニューラル ネットワークをトレーニングできることが言及されています (図 8および「モデルの並列トレーニング」セクションを参照) 。現在のチュートリアルがモデルの並列トレーニングをカバーしているかどうか知っている人はいますか? 「いいえ」の場合、一連の GPU を活用するために元のチュートリアルを改善するにはどうすればよいですか?
cuda - Cuda 複数の GPU: すべての GPU が同じモデルですか?
マルチ GPU cuda セットアップのすべての GPU は、CUDA を使用する同じモデルの GPU である必要がありますか?
たとえば、私は現在 Geforce 950 を持っています。あと何枚かカードを手に入れるとしたら、それらはすべて 950 である必要がありますか? (もしそうなら、同じメーカーにとどまらなければなりませんか?)
個々の GPU で CUDA を制御する方法を示し (GPU がすべて同じコンピューティング レベルの CUDA であると仮定)、NVIDIA カードの異なるモデルを購入して (300 ドルを費やす前に)、同じ CUDA にインストールできることを確認した回答インストール (CUDA ツールは個々のマシンでコンパイルされるため) で十分です。
したがって、たとえば、テンソルフロー .py スクリプトを取得して、ボード上にある 3 つの GPU のいずれかで、以下の回答の CUDA コマンドを使用して実行する方法を示した回答も良いでしょう (この質問のために; 私は間違いなく、答えを理解するために今取り組むのに十分だと思います)。
これは、CUDA ソフトウェアがハードウェアを処理する方法に関連していると思います。しかし、喜んで変更します。