システムに2つのGPU(2x Nvidia Quadro 410)を異なるpciスロットにインストールしました。これら両方のGPUでのマルティクスの乗算を解決するには、各GPUが出力行列の一部を処理/計算して戻すように入力行列を分割する方法を教えてください。 たとえば、第1のGPU上で100個の要素(10×10)50個の要素を計算し、残りの50個(すなわち、50個)の要素を計算するように、出力行列C = A×Bを計算する。 bは2番目のGPUで計算されます。 私はOpenCLで実装しようとしています。しかし、私が解決策を考案するのに役立つアルゴリズムは歓迎されています。一般にマルチGPUを使用した並列行列乗算
0
A
答えて
1
、あなたは(サイズX b
a
の、最初の列)の行列X
を有する場合(サイズX c
b
の)Y、この擬似コードで
X * Y = vcat(X[0:a/2,0:b] * Y, X[a/2:a,0:b] * Y)
、vcat
縦連結である(いずれかを置きます例えば、2x3マトリクスで連結された4x3マトリクスは6x3マトリクスを生成する)、:
は範囲を表し、[]
はインデックスを付ける。
異なるGPUでvcat
の両方の引数を計算することができます。連結は、出力バッファの異なる部分領域に出力を指定するだけで可能です(C配列の場合)。 X
の最初の分割は、(行に沿って分割されるため)異なる部分領域を使用するだけで同様に達成できます。
関連する問題
- 1. PBLASを使用した並列行列乗算
- 2. 並列乗算ベクトル行列
- 3. Java並列行列乗算
- 4. 並列行列乗算
- 5. gpuでの大きな行列乗算
- 6. CUDAを使用した行列乗算
- 7. GPUを使用した並列プログラミングR
- 8. 配列を使った行列乗算
- 9. 並行行列の乗算。アダプタパターンの使用
- 10. C++の並列行列乗算は、私の乗算の不正確な計算
- 11. 1d配列を使用した行列乗算
- 12. Cで1次元配列を使用した行列乗算
- 13. SSE行列 - 行列乗算
- 14. ポインタを使った行列の乗算
- 15. 高速化のための行列乗算の並行シーケンス
- 16. 行列の行列の行列乗算
- 17. テンソルフロー行列乗算によるGPUのテスト
- 18. スパース行列を使用した2次形式の行列乗算のアルゴリズム
- 19. ユーザー設定のスレッド数を使用した行列の乗算
- 20. Mpi_ScatterとMpi_Gatherを使用した行列乗算
- 21. einsumを使用した行列の乗算
- 22. cuda:共有とグローバルを使用した行列乗算
- 23. CUDA + MPIを使用した行列乗算
- 24. 行列乗算プロローグ
- 25. 行列の乗算
- 26. 行列乗算フロート
- 27. 3by3行列乗算
- 28. Matlabを使用した並列計算
- 29. オペレータを使用したコピーを使用しない行列乗算*
- 30. 大きな整数の並列乗算
ありがとうございます。私はこれについて実装を開始し、進捗状況をお知らせします。これを行うには、これが最も効率的な方法だと思いますか?すべての要素を半分に分けていないので、 – pradyot
私はあなたが何を意味するのか分かりません。この分割は完全に仮想です。実際には、行列の乗算ルーチンを異なるGPUの配列の異なる部分に向けるだけです。 – fjarri
ありがとうございます。これは完全に働いた!! – pradyot