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

2024-05-04 23:52:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的Ubuntu 14.04.5 LTS x64服务器上,我有3个在GPU上运行的TensorFlow程序,和2个在CPU上运行的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与{}相同,只是前者在CPU上运行,而后者在GPU上运行。在

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


Tags: py程序服务器gpu进程mainubuntutensorflow
1条回答
网友
1楼 · 发布于 2024-05-04 23:52:30

正如您的链接所指示的那样,虚拟大小是基于分配给程序的虚拟内存地址,而不是(准确地)表示程序存储或使用的数据量。虚拟内存地址可以指向GPU上每个4字节的位置,而每个地址在CPU上可以代表1MB,因此这些地址的虚拟大小膨胀了约33.000倍。在

相关问题 更多 >