首页 > 解决方案 > TensorFlow 如何在 Windows 10 的 GPU 上同时使用共享和专用 GPU 内存?

问题描述

在运行 TensorFlow 作业时,我有时会收到一个非致命错误,提示 GPU 内存超出,然后我在 Windows 10 的性能监视器上看到“共享内存 GPU 使用情况”。

TensorFlow 是如何做到这一点的?我查看了 CUDA 文档,但没有找到对性能监视器中使用的专用和共享概念的引用。CUDA 中有一个共享内存的概念,但我认为它是设备上的东西,而不是我在性能监视器中看到的 RAM,它是由 BIOS 从 CPU RAM 分配的。

注意:有人提出了类似的问题,但另一位发帖人没有回答。

标签: tensorflowmemory-managementwindows-10

解决方案


我想我偶然发现了这一点。如果有多个进程同时访问 GPU,则 Windows 10 任务管理器性能选项卡报告的“共享 GPU 内存”确实会被使用。我通过编写一个 Python 程序发现了这一点,该程序使用多处理来排队多个 GPU 任务,我看到“共享 GPU 内存”开始填满。这是我看到它发生的唯一方式。

所以它只用于排队任务。每个单独的任务仍然仅限于板载 DRAM 减去永久分配给实际图形处理的任何内容,这似乎约为 1GB。


推荐阅读