【发布时间】:2017-08-11 04:18:33
【问题描述】:
我有一个深度学习模型,它处于分配内存错误(权重矩阵)的边缘。我将模型的复杂性调整到可以很好地用于我的预测的水平(但它可能会更好)并且它可以很好地与我的 RAM 内存一起使用,但是当我切换 theano 以使用 gpu 进行更快的训练时(具有 2GB gddr5 vram 的 GPU) ,它会引发分配错误。
我搜索了很多关于如何与 GPU 共享 RAM 并且许多人表示这是不可能(没有参考或解释),即使可以,它也会很慢。而且论坛上总是有一两个人说可以做到(我在谷歌搜索上检查了整个页面 1),但又是一个非常不可靠的信息,没有任何支持。
我理解他们的缓慢论点,但在深度学习中使用 GPU + RAM 是否比使用 CPU + RAM 进行矩阵繁重计算要慢?从来没有人提到过。因为我读过的所有论点(比如购买新卡、设置较低的设置)都是关于游戏的,这对我来说是有意义的,因为你追求更好的即时性能而不是整体速度。
我的盲目猜测是,将 GPU 连接到 RAM 的总线只是系统中最窄的管道(比 RAM 慢),因此使用 CPU + RAM(具有非常快的总线)而不是更快的 GPU( + 内存)。否则,它没有多大意义。
【问题讨论】:
-
我投票结束这个问题,因为内存共享不是一个编程问题。它是关于硬件、架构,也许还有操作系统及其驱动程序。
标签: python performance memory cuda theano