我有一台有八个GPU的机器,但Tensorflow在训练时似乎不使用它们
以下是有关环境的一些信息:
tensorflow-gpu
2.3.1已安装李>nvidia-smi
命令报告:NVIDIA-SMI 440.82,驱动程序版本:440.82,CUDA版本:10.2nvcc --version
命令报告:nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
当我使用大量数据运行model.fit()
时,它似乎根本不使用GPUnvidia-smi
显示所有GPU的使用率为0%,CPU使用率范围为400-700%(这是一台16核机器)
我怀疑我的模型有问题(可能有些指令无法编译成CUDA C或类似的东西),所以我在Google Colab GPU实例上测试了它。每一步需要10-15毫秒(每个历元13秒),而在我的机器上每一步需要100毫秒以上。这让我相信,我的模型正在使用谷歌Colab上的GPU进行训练
下面的代码
import tensorflow as tf
tf.config.list_physical_devices()
产生以下结果:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:0', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:1', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:2', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:3', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:4', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:5', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:6', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:7', device_type='XLA_GPU')]
但是这个
tf.test.gpu_device_name()
返回一个空字符串
然而,在Google Colab上
>>> tf.config.list_physical_devices()
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:0', device_type='XLA_GPU'),
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
>>> tf.test.gpu_device_name()
'/device:GPU:0'
在这一点上,我发现我的机器和Google Colab之间唯一有意义的区别是,我的机器有XLA_GPU
个设备,而Google Colab有GPU
。我不完全确定这是否与我的问题有关。有没有人遇到过类似的问题
目前没有回答
相关问题 更多 >
编程相关推荐