Python 运行速度比某些系统更改之前慢
Posted
技术标签:
【中文标题】Python 运行速度比某些系统更改之前慢【英文标题】:Python running slower than before some system change 【发布时间】: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 运行速度比以前慢了。 【参考方案1】:这可能不是您的主要问题,但是您的笔记本电脑使用电池运行吗?笔记本电脑可能会降低性能以延长电池寿命
【讨论】:
不,我的笔记本电脑一直插着电源。这没有改变。【参考方案2】:有很多原因需要考虑。首先,你正在破坏的代码 根本不使用GPU。这都是关于 CPU 控制油门的。 基本上,作为“热管理”笔记本电脑 CPU 功率限制的一部分 油门是不断控制的。事实是 CPU 的运行代码更快 比GPU的。所以,也许你的笔记本电脑达到了散热限制,并且 在运行程序的大部分时间里,油门会减慢 程序。也许您的 PC CPU 能够抑制油门,所以它是 完成得快一点。
一旦检查基准测试您的代码。一个精彩的指令在这里返回 https://***.com/a/1593034/15358800
【讨论】:
这是一个潜在的研究方向。令我困惑的是,我无法确定更改设置的原因,因为在我尝试安装 GPU 支持之前,笔记本电脑在其 CPU 上运行得更快。现在我删除了 GPU 支持并在 CPU 上运行所有内容,但在笔记本电脑上速度较慢。对这些变化有任何见解吗?谢谢。 您认为驱动程序或设置有问题尝试在笔记本电脑本身上运行基准测试...将您获得的基准测试分数与人们获得的在线结果进行比较...并找出问题所在。以上是关于Python 运行速度比某些系统更改之前慢的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 Spark 运行速度比纯 Python 慢?性能比较