Python 为什么使用GPU的TensorFlow程序的虚拟大小要比仅在CPU上运行的TensorFlow程序大得多?
在我的Ubuntu 14.04.5 LTS x64服务器上,我有3个在GPU上运行的TensorFlow程序和2个在CPU上运行的TensorFlow程序:Python 为什么使用GPU的TensorFlow程序的虚拟大小要比仅在CPU上运行的TensorFlow程序大得多?,python,tensorflow,Python,Tensorflow,在我的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
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进程(776GB对~12GB)具有更高的(
VIRT
列)?正如您的链接所示,虚拟大小基于分配给程序的虚拟内存地址,而不是(准确地)表示程序存储或使用的数据量。虚拟内存地址可能指向GPU上的位置,每个位置都有4个字节,而这些地址在CPU上都可能代表1MB,因此这些地址所代表的虚拟大小会膨胀约33.000倍。正如链接所示,虚拟大小基于分配给程序的虚拟内存地址,并不(准确地)表示程序存储或使用的数据量。虚拟内存地址可能指向GPU上的位置,每个位置有4个字节,而这些地址在CPU上可能代表1MB,因此这些地址所代表的虚拟大小会膨胀33.000倍