Matlab双GPU内存使用



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

问题来了。

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

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

我该如何解决这个问题?

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

相关内容

  • 没有找到相关文章

最新更新