問題タブ [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.
opencl - OpenCL マルチ GPU はシングル GPU より遅い
ビデオ フレーム データに対して何らかの処理を実行するアプリケーションを開発しています。それを高速化するために、2 枚のグラフィック カードを使用し、OpenCL でデータを処理します。私の考えは、1 つのフレームを最初のカードに送信し、別のフレームを 2 番目のカードに送信することです。デバイスは同じコンテキストを使用しますが、異なるコマンド キュー、カーネル、およびメモリ オブジェクトを使用します。
ただし、2枚のカードで必要な時間は1枚のグラフィックカードで必要な時間とほぼ同じであるため、計算は並行して実行されないように思えます。
独立したデータに対して複数のデバイスを同時に使用する良い例はありますか?
前もって感謝します。
編集:
2 つの別々のコンテキストに切り替えた後の結果のコードを次に示します。ただし、グラフィック カードが 2 枚の場合の実行時間は、グラフィック カードが 1 枚の場合と同じままです。
cuda - クラスターで別の GPU を強制的に使用するにはどうすればよいですか?
GPU(またはCPU)を備えた畳み込みニューラルネットワークのフレームワークであるCaffeを使用しています。主に CUDA 6.0 を使用しており、大量の画像データセット (ImageNet データセット = 120 万枚の画像) を使用して CNN をトレーニングしており、大量のメモリが必要です。ただし、オリジナルのサブセットに対して小さな実験を実行しています (これにも大量のメモリが必要です)。GPUクラスターにも取り組んでいます。これはコマンド $ nvidia-smi の出力です
しかし、これらの複数のプロセス (たとえば、異なるデータセットで同じ train_net.bin) を実行しようとすると、同じ GPU で実行されているため失敗し、別の GPU を強制的に使用する方法を知りたいです。助けていただければ幸いです。
windows - 複数の GPU で directcompute を実行することは可能ですか?
DirectCompute に興味があります。CUDA のように、2 つの異なるグラフィックス アダプターをコンピューターに接続して、両方で同時に DirectCompute を使用することが可能かどうかを知りたいです。AI が知る限り、directcompute でコンピューター シェーダーをディスパッチするのは非同期ですが、異なるアダプターで作成された異なるデバイスにコンピューター シェーダーをディスパッチすることは可能でしょうか?
前もって感謝します!
concurrency - 同時 NDKernal 起動用の OpenCL 複数コマンド キュー
複数のカーネルを同時に起動する必要があるベクトル加算のアプリケーションを実行しようとしています。そのため、カーネルを同時に起動するには、最後の質問で誰かが複数のコマンド キューを使用するようにアドバイスしてくれました。配列で定義するもの
上記のコードのどこかで、「コマンドがシグナル 11 で終了しました」というエラーが表示されます。
カーネルの起動とデータのエンキューにも for ループを使用しています
問題は、どこで間違っているのかわかりません。コマンドキューの配列を作成できる場所を見たので、配列を使用しているのはそのためです。別の情報として、A for ループを使用せず、複数のコマンド キューを手動で定義するだけで問題なく動作します。
cuda - マルチ GPU NVIDIA の使用に関する問題
CUDA アプリケーションにマルチ GPU を使用する方法を学んでいます。2 台の Tesla C2070 を搭載したシステムで正常に実行される簡単なプログラムを試してみました。しかし、Tesla K40c と Tesla C2070 を持つ別のシステムで同じプログラムを実行しようとすると、セグメンテーション エラーが表示されます。何が問題なのですか?コードに問題はないと思います。環境で行うべき設定はありますか? 参照用にここに私のコードを添付しました。
セグメンテーション違反は、bi 配列が for ループ内で初期化されるときに発生します。これは、メモリが bi に割り当てられていないことを意味します。
cuda - ダブル GPU cuda。ホスト メモリにコピーせずに、GPU 2 から GPU 1 のデータにアクセスできますか?
両方の GPU に膨大なデータ セットがあり、実際には各スレッドがデータ全体にアクセスできるようにする必要があります。したがって、GPU 1 のスレッド用に GPU 2 からのデータが必要な場合、問題が発生しています。PCI バスを使用した GPU Direct について知りましたが、それに飛び込む前に、知っている人からの洞察が必要でした。
cuda - PCIe バスを使用する GPUDirect Peer 2 ピア: 他の GPU 上の大量のデータにアクセスする必要がある場合、デッドロックは発生しませんか?
大量のデータを必要とするシミュレーション プログラムがあります。計算のために GPU にデータをロードしますが、データには多くの依存関係があります。1 GPU ではデータが足りなかったので、2 GPU にアップグレードしました。ただし、他の GPU にデータが必要な場合は、最初にホストへのコピーが必要であるという制限がありました。
では、GPU ダイレクト P2P を使用する場合、PCI バスは GPU 間のやり取りの多くを処理しますか? デッドロックが発生しませんか?
私はこれが初めてなので、助けと洞察が必要です。