在我的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.py
与main_GPU.py
相同,只是前者在CPU上运行而后者在GPU上运行。
为什么使用GPU的TensorFlow进程比仅在CPU上运行的TensorFlow进程具有更高virtual size(VIRT
列)(776GB对比~12GB)?
答案 0 :(得分:0)
当您的链接指示一点时,虚拟大小基于分配给程序的虚拟内存地址,并且(不准确地)表示程序存储或使用的数据量。虚拟内存地址可能指向GPU上每个4字节的位置,而每个地址可能代表CPU上的1MB,从而使表示的虚拟大小膨胀了这些地址的~33.000。