我有一个深度学习模型,它位于分配内存错误(权重矩阵)的边缘。我将模型的复杂度调整到了适合我的预测的水平(但它可能更好)并且它与我的RAM内存一起工作正常,但是当我切换theano使用gpu进行更快速的训练时(GPU使用2GB gddr5 vram) ,它会抛出分配错误。
我搜索了很多关于如何与GPU共享RAM的内容,很多人说它不可能(没有参考或解释),即使你可以,也会很慢。论坛上总会有一两个人说它可以完成(我在谷歌搜索中检查了整个页面1),但是再次提供了一个非常不可靠的信息,没有任何支持它。
我理解他们的慢速论证,但是使用GPU + RAM比使用CPU + RAM进行深度学习中的矩阵重计算更慢?没有人提到过这一点。因为我读过的所有论据(比如买新卡,设置较低的设置)都是关于游戏的,这对我来说很有意义,因为你需要更好的准时性而不是整体速度。
我的盲目猜测是将GPU连接到RAM的总线只是系统中最窄的管道(比RAM慢),因此使用CPU + RAM(具有真正快速的总线)比更快的GPU更有意义( + RAM)。否则,它没有多大意义。
答案 0 :(得分:0)
由于您使用CUDA标记了您的问题,我可以给您以下答案。
使用Managed memory,您可以从CPU内存中可能存在也可能不存在的内核引用内存中获取。通过这种方式,GPU内存类似于缓存,并且您不受实际GPU内存大小的限制。
由于这是一种软件技术,我会说这是SO的主题。