2017-03-20 119 views
-2

我有一个深度学习模型,它位于分配内存错误(权重矩阵)的边缘。我将模型的复杂性调整到了对我的预测来说工作正常的水平(但它可能会更好),并且它对我的RAM内存工作正常,但是当我切换theano以使用gpu进行更快速的训练时(带有2GB gddr5 vram的GPU)它会抛出分配错误。与GPU共享RAM

我搜索了很多关于如何与GPU共享RAM,很多人说它不可能(没有引用或解释),即使可以,它也会很慢。并且论坛上总有一两个人声明可以完成这项工作(我在谷歌搜索中检查了整个页面1),但是又有一个非常不可靠的信息,没有任何支持。

我理解他们缓慢的说法,但它是速度较慢使用GPU + RAM比使用CPU + RAM在深度学习矩阵重计算?没有人提到过。因为我读过的所有参数(比如购买新卡,设置较低的设置)都是关于游戏的,因此当您更好地实现即时性能,而不是整体速度时,这对我来说是有意义的。我的瞎猜是,将GPU连接到RAM的总线只是系统中最窄的管道(比RAM慢),所以使用CPU + RAM(总线速度非常快)通过更快的GPU更合理(+ RAM)。否则,这没有多大意义。

+2

我投票结束这个问题作为题外话题,因为内存共享不是一个编程问题。它涉及硬件,体系结构以及操作系统和驱动程序。 –

回答

-1

既然你CUDA标记你的问题我可以给你以下答案。

随着Managed memory你可以从一个内核基准内存可能会或可能不会对CPU的内存。这样,GPU内存就像缓存一样工作,并且不受实际GPU内存大小的限制。

由于这是一个软件技术,我会说这是对话题的SO。

+1

假设OP想要重写theano或类似使用托管内存,在这种情况下,这可能是主题。但是,这不是我从这样一个问题的猜测。而你指的只是Pascal GPU的明智之举。对于目前其他GPU系列,托管内存不允许您分配GPU可访问的内存大小,该内存大小大于GPU上的物理内存。 –