問題タブ [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.

0 投票する
2 に答える
3068 参照

opencl - 複数のデバイス (複数の GPU) に OpenCL を使用する

StackOverflow ユーザーの皆様、こんにちは。

私はこの問題を抱えています:私は取り組みたい非常に大きな画像を1つ持っています。私の最初のアイデアは、大きな画像をいくつかのサブ画像に分割し、このサブ画像を異なる GPU に送信することです。RGB値を使用しないため、Image-Objectは使用しませんが、画像を操作するために輝度値のみを使用しています。

私の質問は次のとおりです。

  1. すべてのデバイスで1 つcontextを複数使用できますか? commandqueuesまたは、各デバイスcontextに 1 つずつ使用する必要がありますか?commandqueue
  2. 各デバイスに送信するカーネル引数を設定するために inputMem-Data (サブイメージ データ) を動的に変更する方法を教えてください。(同じ入力データの送信方法しか知りません)
  3. たとえば、GPU 数よりも多くのサブイメージがある場合、どのようにサブイメージを GPU に分配できますか?
  4. それとも、別のよりスマートなアプローチでしょうか?

すべての助けとアイデアに感謝します。どうもありがとうございました。

0 投票する
1 に答える
458 参照

c++ - 異なる GPU で構造体を初期化する

私はこのような構造体を持っています

LstmLayerここで、各要素が異なる GPU デバイス上にある の配列を初期化したいと考えています。私は次のようにします

このプログラムを実行すると、次のエラーが発生します

私のコードの何が問題なのか、それを正しく行う方法を教えてください。よろしくお願いします。

0 投票する
0 に答える
343 参照

neural-network - Torch の複数の GPU でのシャム ニューラル ネットワークのトレーニング: 共有は cunn の DataParallelTable ではサポートされていません

torch7で実装されたネットワークを高速化しようとしていますが、 nn.DataParallelTableを使用しようとするとエラーが発生します。これは私がやろうとしていることです:

関数は次のとおりです。

もう1つは次のとおりです。

私が得るエラーは次のとおりです。

エラーがどこにあるのか、おそらくわかりますか?申し訳ありませんが、私はこれが初めてで、それを理解する方法が見つかりません。もちろん、私はネット構造が間違っていると考えています。前もって感謝します。

0 投票する
1 に答える
2139 参照

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." と述べられています。それは私を混乱させ、上記のステートメントは矛盾しているように見えます。誰でも説明できますか?

0 投票する
1 に答える
35 参照

opencl - 複数の GPU から読み取るときの OpenCl の間違った値

number のみを __global int* c に書き込むカーネル関数があります。具体的には、次のようになります。

ホスト コードでは、C 値にメモリを割り当てました。

そして私はそれを次のように印刷します:

そして出力:

最初の値は問題ありません。残りは一種のゴミです。私がどのような間違いを書いたか知っていますか? もちろん部分的なコードですが、その 'c' 値に関するすべての行を貼り付けたと思います。グローバル サイズは 1 に設定されます。

0 投票する
2 に答える
2275 参照

tensorflow - マルチ GPU での Tensorflow 処理性能

友達!マルチGPUでの処理について質問です。私は 4 つの gpu を使用しており、以下のような 3 つの方法で単純な A^n + B^n の例を試しました。

  1. シングル GPU

    /li>
  2. 複数の GPU

    /li>
  3. 特定の GPU は指定されていません (おそらくすべての GPU が使用されていると思います)

    /li>

これを試してみると、結果は理解できませんでした。結果は 1. 単一の GPU : 6.x 秒 2. 複数の GPU (2 つの GPU) : 2.x 秒 3. 特定の GPU が指定されていない (おそらく 4 つの GPU) : 4.x 秒

#2 が #3 よりも速い理由がわかりません。誰でも私を助けることができますか?

ありがとう。