0
我有一個名爲Titan Z的雙GPU卡。我有Matlab 2016a試圖解決爲不同'b
'值設置的稀疏Ax=b
方程。泰坦Z有兩個GPU和6 GB RAM每個GPUMatlab雙GPU內存使用
這是問題所在。
- 如果我解決1個GPU一個
Ax=b
問題,比方說,一個 2GB,MATLAB副本這個矩陣的「A
」矩陣大小,每個GPU的顯存。 GPU-Z報告 每個GPU擁有2 GB的數據,僅1 GPU工作 - 如果我解決兩個
Ax=b
問題2 GPU,讓我們說「A
」 2GB,MATLAB再次複製這個矩陣的矩陣大小,每個GPU的vram兩次。現在GPU-Z報告每個GPU有4GB數據,兩個GPU同時工作。 - 如果我嘗試同時解決'4GB'問題Nvidia驅動程序由於Vram不足而崩潰。但我可以在一個GPU上解決它。不是同時在2個GPU上。
問題是Matlab的拷貝那些矩陣兩次,當不需要它,更有趣的是,它這樣做時兩個GPU使用完全相同的「A
」矩陣但不同的「b
」向量。
我該如何解決這個問題?
你能分享你的代碼嗎?你使用'spmd'還是類似的? – Edric
它其實很簡單。我使用gpuArray進行分配和傳輸,之後使用parfor循環(i = 1:2)來解決方程組。在GPU上。 – coercion
所以,你不是在'parfor'循環中構建'gpuArray'?如果你在'parfor'裏面構建'gpuArray',會發生什麼? – Edric