我在 Windows 7 64 位计算机上安装了两个 GPU:NVIDIA GeForce GTX 750 Ti 和 GeForce GTX 570。前者的计算能力为 5,后者的计算能力为 2。
对于我的一个项目,我想使用MatConvNet,这是一个用于在 MATLAB 中以类似于 Caffe 或 TensorFlow 的风格拟合卷积神经网络 (CNN) 的库。该软件包支持两种显卡的使用,但 NVIDIA 的深度学习工具包 cuDNN 仅与计算能力为 3 或更高的显卡兼容。如果我决定只使用 750 Ti,我可以编译 MatConvNet 并enableCudnn
设置为true
,如果我决定只使用 570,我必须编译它并设置为false
。
在我创建的一个简单的 CNN 上,用三个卷积层、三个池化层、一个全连接层和一个 softmax 层对手写数字进行分类,我注意到仅 750 Ti 的训练时间最短,其次是两张牌紧随其后的是570。这是因为当我使用这两张卡时,我必须使用 to 编译 MatConvNet 包enableCudnn
,false
这会阻止 MatConvNet 使用作为 cuDNN 一部分的快速卷积代码。但是,拥有两个 GPU 仍然比单独拥有 570 更好。
我想知道是否有办法为每个显卡分别编译 MatConvNet,以便 750 使用 cuDNN 而 570 不使用。不考虑在显卡之间分配工作负载的开销,与单独使用 750 相比,这在理论上应该可以加快代码速度。有人可以让我知道他们是否做过这样的事情,如果可能的话,和/或如果可以的话怎么做?