0

Titan Z という名前のデュアル GPU カードがあります。Matlab 2016a を使用して、さまざまな ' ' 値のスパースAx=b方程式セットを解こうとしています。bTitan Z には 2 つの GPU と各 GPU に 6 GB の RAM があります

これが問題です。

  1. Ax=b1 つの GPU で問題を解決する場合、たとえば ' A' マトリックス サイズが 2GB の場合、Matlab はこのマトリックスを各 GPU の vram にコピーします。GPU-Z は、各 GPU に 2 GB のデータがあり、1 つの GPU のみが動作していると報告しています
  2. Ax=b2 つの GPU で 2 つの問題を解決する場合、たとえばA行列サイズが 2GB の場合、Matlab はこの行列を各 GPU の vram に 2 回コピーします。GPU-Z は、各 GPU に 4GB のデータがあり、2 つの GPU が同時に動作していると報告しています。
  3. 「4GB」の問題を同時に解決しようとすると、VRAM が不十分なためにNvidia ドライバーがクラッシュします。しかし、1 つの GPU で解決できます。2 つの GPU で同時に使用することはできません。

問題は、Matlab がこれらの行列を必要としないときに 2 回コピーすることです。さらに興味深いことに、2 つの GPU がまったく同じ ' A' 行列を使用しているが、異なる ' b' ベクトルを使用している場合にこれを行います。

どうすればこの問題を解決できますか?

4

1 に答える 1

0

私自身の質問への返信は少し遅れていますが、ここに解決策があります。Nvidia コントロール パネルでマルチ GPU モードを無効にすると、問題が解決しました。基本的に、sli を無効にし、gpus を独立して実行できます。それはそれとして簡単でした。

于 2016-10-03T05:56:13.857 に答える