システムに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. alea gpuでcuBLASを使用した行列乗算
- 2. PBLASを使用した並列行列乗算
- 3. 並列行列乗算
- 4. Java並列行列乗算
- 5. 並列乗算ベクトル行列
- 6. CUDAを使用した行列乗算
- 7. ループを使用した行列乗算
- 8. gpuでの大きな行列乗算
- 9. GPUを使用した並列プログラミングR
- 10. 並列処理、疎演算、GPU計算の行列演算
- 11. 配列を使った行列乗算
- 12. 並行行列の乗算。アダプタパターンの使用
- 13. C++の並列行列乗算は、私の乗算の不正確な計算
- 14. 1d配列を使用した行列乗算
- 15. Cで1次元配列を使用した行列乗算
- 16. 除算と征服を使用した行列乗算
- 17. 行列乗算
- 18. ポインタを使った行列の乗算
- 19. SSE行列 - 行列乗算
- 20. 高速化のための行列乗算の並行シーケンス
- 21. 行列の行列の行列乗算
- 22. スパース行列を使用した2次形式の行列乗算のアルゴリズム
- 23. einsumを使用した行列の乗算
- 24. Mpi_ScatterとMpi_Gatherを使用した行列乗算
- 25. スレッドプールを使用したJava行列の乗算
- 26. CUDA + MPIを使用した行列乗算
- 27. cuda:共有とグローバルを使用した行列乗算
- 28. ユーザー設定のスレッド数を使用した行列の乗算
- 29. テンソルフロー行列乗算によるGPUのテスト
- 30. 乗算行列パイソン
ありがとうございます。私はこれについて実装を開始し、進捗状況をお知らせします。これを行うには、これが最も効率的な方法だと思いますか?すべての要素を半分に分けていないので、 – pradyot
私はあなたが何を意味するのか分かりません。この分割は完全に仮想です。実際には、行列の乗算ルーチンを異なるGPUの配列の異なる部分に向けるだけです。 – fjarri
ありがとうございます。これは完全に働いた!! – pradyot