问题描述
我已经安装了 CUDA 11.0、cuDNN 8.0.5(用于 CUDA 11.0)和 tensorflow-gpu 2.4.1。在 Windows 10 专业版下。 我正在使用以下代码检查安装:
import tensorflow as tf
from tensorflow.python.client import device_lib
print(tf.version)
print(tf.test.is_built_with_cuda())
print()
print(tf.config.list_physical_devices())
print()
print(device_lib.list_local_devices())
输出似乎表明 TensorFlow 看到了 GPU:
正确
[PhysicalDevice(name='/physical_device:cpu:0',device_type='cpu'),
PhysicalDevice(name='/physical_device:GPU:0',device_type='GPU')]
[name: "/device:cpu:0" device_type: "cpu" memory_limit: 268435456
locality { } 化身:2790105922589511936,名称:“/device:GPU:0”
device_type: "GPU" memory_limit: 3173331764 locality { bus_id: 1
链接 { } } 化身:12842674850440179486 physical_device_desc:
“设备:0,名称:NVIDIA Quadro M1200,pci 总线 ID:0000:01:00.0,
计算能力:5.0" ]
PATH
中的相关条目:
C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v11.0\bin
C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v11.0\extras\CUPTI\libx64
C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v11.0\include
C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v11.0\libnvvp
这是CUDA_PATH
(虽然可能是不必要的,因为我将cuDNN的.dll、.h和.lib文件复制到了CUDA的相应目录中):
C:\cudnn-11.0-windows-x64-v8.0.5.39\cuda\bin
然而,当我训练卷积神经网络时,cpu 负载飙升至几乎 100%,而 GPU 负载保持在 0%。 我需要做什么才能让 TensorFlow 使用 GPU?
更新: 我尝试了以下代码:
import numpy as np
import tensorflow as tf
tf.debugging.set_log_device_placement(True)
for i in range(100):
a = tf.constant(np.random.randn(1000,1000))
b = tf.constant(np.random.randn(1000,1000))
c = tf.matmul(a,b)
print(c[465][266])
输出(部分显示)清楚地表明 TensorFlow 认为它正在使用 GPU:
在设备中执行 op MatMul
/job:localhost/replica:0/task:0/device:GPU:0 执行 op StridedSlice 在设备 /job:localhost/replica:0/task:0/device:GPU:0 执行操作
设备 /job:localhost/replica:0/task:0/device:GPU:0 中的 StrdedSlice tf.Tensor(48.741279799952544,shape=(),dtype=float64)
不过,NZXT Cam
仅显示 cpu 使用率。不过,当我使用 Zoom
时,它确实显示了 GPU 利用率,因此 NZXT Cam
不是问题。 TensorFlow 似乎认为它在使用 GPU 而实际上并没有这样做......
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)