ATI Stream SDKを使用してGPUで大きな線形方程式を解くために、コレスキー分解を実装しました。今度は、ますます多くのGPUの計算能力を活用したいと考えており、このコードを複数のGPUで実行したいと考えています。
現在、1台のマシンと1台のGPUがインストールされており、コレスキー分解が正しく実行されています。Nマシンで実行したいのですが、すべてに1つのGPUがインストールされています。だから私にどのように進めるべきか提案してください。
ATI Stream SDKを使用してGPUで大きな線形方程式を解くために、コレスキー分解を実装しました。今度は、ますます多くのGPUの計算能力を活用したいと考えており、このコードを複数のGPUで実行したいと考えています。
現在、1台のマシンと1台のGPUがインストールされており、コレスキー分解が正しく実行されています。Nマシンで実行したいのですが、すべてに1つのGPUがインストールされています。だから私にどのように進めるべきか提案してください。
まず、このアプローチでは、ノード間の通信に 3 つのレベルのレイテンシが発生することに注意する必要があります。
適切な最初のステップは、エンベロープ計算の一部を実行して、問題を複数のマシンに分割することで得られる速度向上が、導入する遅延を上回るかどうかを判断することです。
アプローチが従いたいものであることを確認したら、これを正しく実装するのはほとんどあなた次第です。現在、NVIDIA の CUDA または OpenCL ライブラリは、X セッションと結合しなくても計算のために GPU にアクセスできるため、より良い選択になることに注意してください。ATI の OpenCL 実装が GPU をサポートすると、これも実行可能なオプションになるはずです。
すでに GPU の実装が機能しているため、従う必要がある基本的な手順は次のとおりです。
非常に専門的な質問です。Stream開発者リソースとStream開発者フォーラムを確認することをお勧めします。
この Q を、これらのことを知っている同僚に見せました。彼は ScaLAPACK の使用を提案しました。