問題タブ [multiple-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 - 複数のデバイス (複数の GPU) に OpenCL を使用する
StackOverflow ユーザーの皆様、こんにちは。
私はこの問題を抱えています:私は取り組みたい非常に大きな画像を1つ持っています。私の最初のアイデアは、大きな画像をいくつかのサブ画像に分割し、このサブ画像を異なる GPU に送信することです。RGB値を使用しないため、Image-Objectは使用しませんが、画像を操作するために輝度値のみを使用しています。
私の質問は次のとおりです。
- すべてのデバイスで1 つ
context
を複数使用できますか?commandqueues
または、各デバイスcontext
に 1 つずつ使用する必要がありますか?commandqueue
- 各デバイスに送信するカーネル引数を設定するために inputMem-Data (サブイメージ データ) を動的に変更する方法を教えてください。(同じ入力データの送信方法しか知りません)
- たとえば、GPU 数よりも多くのサブイメージがある場合、どのようにサブイメージを GPU に分配できますか?
- それとも、別のよりスマートなアプローチでしょうか?
すべての助けとアイデアに感謝します。どうもありがとうございました。
c++ - 異なる GPU で構造体を初期化する
私はこのような構造体を持っています
LstmLayer
ここで、各要素が異なる GPU デバイス上にある の配列を初期化したいと考えています。私は次のようにします
このプログラムを実行すると、次のエラーが発生します
私のコードの何が問題なのか、それを正しく行う方法を教えてください。よろしくお願いします。
neural-network - Torch の複数の GPU でのシャム ニューラル ネットワークのトレーニング: 共有は cunn の DataParallelTable ではサポートされていません
torch7で実装されたネットワークを高速化しようとしていますが、 nn.DataParallelTableを使用しようとするとエラーが発生します。これは私がやろうとしていることです:
関数は次のとおりです。
もう1つは次のとおりです。
私が得るエラーは次のとおりです。
エラーがどこにあるのか、おそらくわかりますか?申し訳ありませんが、私はこれが初めてで、それを理解する方法が見つかりません。もちろん、私はネット構造が間違っていると考えています。前もって感謝します。
cuda - 「ワープ内のすべてのスレッドが同じ命令を同時に実行する」ことを理解する方法。GPUで?
私はProfessional CUDA C Programmingを読んでおり、GPUアーキテクチャの概要セクションで:
CUDA は、ワープと呼ばれる 32 個のグループでスレッドを管理および実行するために、Single Instruction Multiple Thread (SIMT) アーキテクチャを採用しています。ワープ内のすべてのスレッドは、同じ命令を同時に実行します。各スレッドには独自の命令アドレス カウンターとレジスタ状態があり、独自のデータに対して現在の命令を実行します。各 SM は、割り当てられたスレッド ブロックを 32 スレッド ワープに分割し、使用可能なハードウェア リソースでの実行をスケジュールします。
SIMT アーキテクチャは、SIMD (Single Instruction, Multiple Data) アーキテクチャに似ています。SIMD と SIMT はどちらも、同じ命令を複数の実行ユニットにブロードキャストすることで並列処理を実装します。主な違いは、SIMD ではベクトル内のすべてのベクトル要素がユニファイド同期グループで一緒に実行される必要があるのに対し、SIMT では同じワープ内の複数のスレッドが独立して実行できることです。ワープ内のすべてのスレッドが同じプログラム アドレスで同時に開始されたとしても、個々のスレッドが異なる動作をする可能性があります。SIMT を使用すると、独立したスカラー スレッド用のスレッド レベルの並列コードと、調整されたスレッド用のデータ並列コードを記述できます。SIMT モデルには、SIMD にはない 3 つの重要な機能が含まれています。
➤ 各スレッドには独自の命令アドレス カウンタがあります。
➤ 各スレッドには独自のレジスタ状態があります。
➤ 各スレッドは独立した実行パスを持つことができます。
最初のパラグラフでは " All threads in a warp execute the same instruction at the same time.
" が言及されていますが、2 番目のパラグラフでは " Even though all threads in a warp start together at the same program address, it is possible for individual threads to have different behavior.
" と述べられています。それは私を混乱させ、上記のステートメントは矛盾しているように見えます。誰でも説明できますか?
opencl - 複数の GPU から読み取るときの OpenCl の間違った値
number のみを __global int* c に書き込むカーネル関数があります。具体的には、次のようになります。
ホスト コードでは、C 値にメモリを割り当てました。
そして私はそれを次のように印刷します:
そして出力:
最初の値は問題ありません。残りは一種のゴミです。私がどのような間違いを書いたか知っていますか? もちろん部分的なコードですが、その 'c' 値に関するすべての行を貼り付けたと思います。グローバル サイズは 1 に設定されます。
tensorflow - マルチ GPU での Tensorflow 処理性能
友達!マルチGPUでの処理について質問です。私は 4 つの gpu を使用しており、以下のような 3 つの方法で単純な A^n + B^n の例を試しました。
シングル GPU
/li>複数の GPU
/li>特定の GPU は指定されていません (おそらくすべての GPU が使用されていると思います)
/li>
これを試してみると、結果は理解できませんでした。結果は 1. 単一の GPU : 6.x 秒 2. 複数の GPU (2 つの GPU) : 2.x 秒 3. 特定の GPU が指定されていない (おそらく 4 つの GPU) : 4.x 秒
#2 が #3 よりも速い理由がわかりません。誰でも私を助けることができますか?
ありがとう。