为什么使用GPU的TensorFlow程序比仅在CPU上运行的TensorFlow程序具有更高的虚拟大小?

时间:2017-02-25 22:42:11

标签: python tensorflow

在我的Ubuntu 14.04.5 LTS x64服​​务器上,我有3个在GPU上运行的TensorFlow程序,以及在CPU上运行的2个TensorFlow程序:

 CPU%   MEM%  VIRT   RES   PID USER        NI S     TIME+   R/s   W/s Command
1047.3   0.1 11.7G 1.04G 29414 userli       0 S  34h06:03     0     0 python3.5 main_CPU.py
 930.6   0.1 12.2G  996M 28443 userli       0 R  44h58:36     0     0 python3.5 main_CPU.py
 162.0   0.1  776G 1.33G 27457 userli       0 S   8h09:06     0     0 python3.5 main_GPU.py
 144.8   0.1  776G 1.33G 20023 userli       0 S   8h53:24     0    4K python3.5 main_GPU.py
 144.0   0.1  776G 1.34G 20111 userli       0 S   8h48:52     0    4K python3.5 main_GPU.py

main_CPU.pymain_GPU.py相同,只是前者在CPU上运行而后者在GPU上运行。

为什么使用GPU的TensorFlow进程比仅在CPU上运行的TensorFlow进程具有更高virtual sizeVIRT列)(776GB对比~12GB)?

1 个答案:

答案 0 :(得分:0)

当您的链接指示一点时,虚拟大小基于分配给程序的虚拟内存地址,并且(不准确地)表示程序存储或使用的数据量。虚拟内存地址可能指向GPU上每个4字节的位置,而每个地址可能代表CPU上的1MB,从而使表示的虚拟大小膨胀了这些地址的~33.000。