Titan Z という名前のデュアル GPU カードがあります。Matlab 2016a を使用して、さまざまな ' ' 値のスパースAx=b方程式セットを解こうとしています。bTitan Z には 2 つの GPU と各 GPU に 6 GB の RAM があります
これが問題です。
Ax=b1 つの GPU で問題を解決する場合、たとえば 'A' マトリックス サイズが 2GB の場合、Matlab はこのマトリックスを各 GPU の vram にコピーします。GPU-Z は、各 GPU に 2 GB のデータがあり、1 つの GPU のみが動作していると報告していますAx=b2 つの GPU で 2 つの問題を解決する場合、たとえばA行列サイズが 2GB の場合、Matlab はこの行列を各 GPU の vram に 2 回コピーします。GPU-Z は、各 GPU に 4GB のデータがあり、2 つの GPU が同時に動作していると報告しています。- 「4GB」の問題を同時に解決しようとすると、VRAM が不十分なためにNvidia ドライバーがクラッシュします。しかし、1 つの GPU で解決できます。2 つの GPU で同時に使用することはできません。
問題は、Matlab がこれらの行列を必要としないときに 2 回コピーすることです。さらに興味深いことに、2 つの GPU がまったく同じ ' A' 行列を使用しているが、異なる ' b' ベクトルを使用している場合にこれを行います。
どうすればこの問題を解決できますか?