【发布时间】:2021-12-28 12:12:50
【问题描述】:
我家里有两台电脑用于我的 python 项目。一种是配备 Intel i5-7400 CPU 的 PC,另一种是配备 Intel i7-10750H CPU 的笔记本电脑。据推测,笔记本电脑运行相同的 python 代码比 PC 更快。在我对笔记本电脑进行一些更改以尝试利用其 Nvida GPU 训练 DNN 模型之前就是这种情况。
我按照 Tensorflow GPU 支持网页的说明升级了 Nvida GPU 驱动程序,安装了推荐版本的 Cuda 工具包和 cuDNN。安装后,我创建了一个新的 conda 环境并安装了最新的 tensorflow。有了这一切,我可以使用tf.config.list_physical_devices() 检测我的 GPU 并在 GPU 上运行一些测试代码。然而,性能并没有提升,更糟糕的是,笔记本电脑在其 CPU 上运行相同的代码变得明显变慢。我在两台机器上测试了以下简单代码:
from datetime import datetime
import numpy as np
t0 = datetime.now()
for i in range(1000):
a = np.random.rand(1000, 1000)
b = np.random.rand(1000, 1000)
c = np.matmul(a, b)
t1 = datetime.now()
print(t1 - t0)
PC 需要 32 秒,但笔记本电脑需要 45 秒。我尝试了一些方法来解决这个问题,包括卸载 Cuda 工具包/cuDNN 并重新安装 anaconda(尝试了不同的 anaconda 版本)。但问题仍然存在。任何人都对为什么会发生这种情况以及如何尝试解决它有任何见解?非常感谢。
更新:我注意到,如果在 PC 的英特尔 i5-7400 CPU 上运行相同的 python 代码,则使用大约 30% 的 CPU,但在笔记本电脑的英特尔 i7-10750H CPU 上使用超过 90% 的 CPU,并且速度较慢。正常吗?
【问题讨论】:
-
该代码根本没有利用 GPU。
-
是的,该代码在 CPU 上运行。问题是由于某种原因 CPU 运行速度比以前慢了。
标签: python performance gpu cpu