我有一个名为 Titan Z 的双 GPU 卡。我有 Matlab 2016a 试图解决一个针对不同 ' ' 值的稀疏Ax=b
方程组。b
Titan Z 有两个 GPU 和每个 gpu 的 6 GB 内存
这就是问题所在。
- 如果我
Ax=b
在 1 个 GPU 上解决问题,假设一个 'A
' 矩阵大小为 2GB,Matlab 会将此矩阵复制到每个 GPU 的 vram。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
”向量时,它会这样做。
我怎么解决这个问题?