0

我有一个名为 Titan Z 的双 GPU 卡。我有 Matlab 2016a 试图解决一个针对不同 ' ' 值的稀疏Ax=b方程组。bTitan Z 有两个 GPU 和每个 gpu 的 6 GB 内存

这就是问题所在。

  1. 如果我Ax=b在 1 个 GPU 上解决问题,假设一个 ' A' 矩阵大小为 2GB,Matlab 会将此矩阵复制到每个 GPU 的 vram。GPU-Z 报告每个 GPU 有 2 GB 的数据并且只有 1 个 GPU 在工作
  2. 如果我Ax=b在 2 个 GPU 上解决两个问题,假设A矩阵大小为 2GB,Matlab 再次将此矩阵复制到每个 GPU 的 vram 两次。现在 GPU-Z 报告每个 GPU 有 4GB 的数据,并且两个 GPU 同时工作。
  3. 如果我尝试同时解决“4GB”问题,Nvidia 驱动程序由于 Vram 不足而崩溃。但我可以在一个 GPU 上解决它。不能同时在 2 个 GPU 上。

问题是 Matlab 在不需要时复制这些矩阵两次,更有趣的是,当两个 GPU 使用完全相同的“ A”矩阵但不同的“ b”向量时,它会这样做。

我怎么解决这个问题?

4

1 回答 1

0

回答我自己的问题有点晚了,但这是解决方案。在 Nvidia 控制面板中禁用多 GPU 模式解决了该问题。基本上它禁用了 sli 并且 gpus 可以独立运行。就这么简单。

于 2016-10-03T05:56:13.857 回答