Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Tensorflow中用GPU进行大矩阵分解_Tensorflow_Gpu - Fatal编程技术网

如何在Tensorflow中用GPU进行大矩阵分解

如何在Tensorflow中用GPU进行大矩阵分解,tensorflow,gpu,Tensorflow,Gpu,我正在尝试用GPU在Tensorflow中进行矩阵分解(或张量上的tucker分解)。我有tensorflow gpu,我的NVidia gpu有4GB内存。我的问题是,我的输入矩阵很大,有数百万行和数百万列,而且矩阵的大小在内存中超过5GB。所以每次Tensorflow都会给我一个内存不足(OOM)错误。(如果我关闭GPU,整个过程可以使用系统RAM在CPU中成功运行。当然,速度很慢。) 我对Tensorflow和NVidia CUDA lib做了一些研究。CUDA似乎有一个“统一内存”机制,

我正在尝试用GPU在Tensorflow中进行矩阵分解(或张量上的tucker分解)。我有tensorflow gpu,我的NVidia gpu有4GB内存。我的问题是,我的输入矩阵很大,有数百万行和数百万列,而且矩阵的大小在内存中超过5GB。所以每次Tensorflow都会给我一个内存不足(OOM)错误。(如果我关闭GPU,整个过程可以使用系统RAM在CPU中成功运行。当然,速度很慢。)

我对Tensorflow和NVidia CUDA lib做了一些研究。CUDA似乎有一个“统一内存”机制,所以系统RAM和GPU RAM共享一个地址簿。但没有找到进一步的细节


我想知道Tensorflow是否支持某种内存共享机制,以便我可以在系统RAM中生成输入?(因为我想用GPU来加速计算),GPU可以一块一块地进行计算。

这个分解可以手动分解成更小的片段吗?那是你最好的选择。共享内存架构通常会耗尽GPU,并且会失去很多速度优势。谢谢你直截了当的评论,库巴。我还没有找到任何简单/有效的方法来做这件事。一个原因是我没有找到一个简单的方法来分割这个SVD类似的工作。其次,考虑到不同RAM的带宽不同,我不确定这是否值得。