memory-management - 了解 tensorflow 队列和 cpu <-> gpu 传输

标签 memory-management gpu tensorflow

在阅读了这个 github 问题后,我觉得我在对队列的理解中遗漏了一些东西:

https://github.com/tensorflow/tensorflow/issues/3009

我认为当将数据加载到队列中时,它会在计算最后一批数据时预先传输到 GPU,因此实际上没有带宽瓶颈,假设计算时间比加载下一批的时间更长。

但是上面的链接表明,从队列到图形中有一个昂贵的副本(numpy <-> TF),并且将文件加载到图形中并在那里进行预处理会更快。但这对我来说没有意义。为什么从文件加载 256x256 图像与原始 numpy 数组很重要?如果有的话,我会认为 numpy 版本更快。我错过了什么?

最佳答案

没有 GPU 队列的实现,所以它只将内容加载到主内存中,并且没有异步预取到 GPU。您可以使用固定到 gpu:0 的变量来制作类似基于 GPU 的队列的东西。

关于memory-management - 了解 tensorflow 队列和 cpu <-> gpu 传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38751736/

相关文章:

javascript - 在javascript中从内存中删除对象

dynamic - 静态分配与动态分配与自动分配

objective-c - getaddrinfo 期间用户数量极少时出现 BAD_ACCESS

linux - 是否可以在应用程序之间共享 Cuda 上下文?

cuda - 如何释放 device_vector<int>

electron - 如何在electron.js中强制使用离散GPU?

tensorflow - 将 Tensorboard 嵌入元数据链接到检查点

python - Tensorflow/Keras : Model accuracy during training is always 0. 5 输入大小与第一个官方教程不同

python - 大型 numpy 矩阵内存问题

python - tf.boolean_mask 不接受轴参数