gpt4 book ai didi

python - 为什么 CPU 上的 Keras LSTM 比 GPU 快三倍?

转载 作者:太空狗 更新时间:2023-10-30 02:07:17 24 4
gpt4 key购买 nike

我使用 this notebook from Kaggle运行 LSTM 神经网络。

我已经开始训练神经网络,但发现它太慢了。它几乎比 CPU 训练慢三倍。

  • CPU 性能: 每个 epoch 8 分钟;
  • GPU 性能: 每轮 26 分钟。

在此之后我决定在 this question on Stackoverflow 中寻找答案我应用了 CuDNNLSTM (仅在 GPU 上运行) 而不是 LSTM

因此,GPU 性能变得每个 epoch 只有 1 分钟,模型的准确度下降了 3%。

问题:

1) 有人知道为什么在经典的 LSTM 层中 GPU 比 CPU 运行得慢吗?我不明白为什么会这样。

2) 为什么当我使用 CuDNNLSTM 而不是 LSTM 时,训练变得更快,模型的准确性却下降了?

附言:

我的 CPU: Intel Core i7-7700 处理器(8M 缓存,高达 4.20 GHz)

我的 GPU: nVidia GeForce GTX 1050 Ti (4 GB)

最佳答案

猜测这只是一个不同的、更好的实现,如果实现不同,你不应该期待相同的结果。

一般来说,在 GPU 上高效地实现算法是困难,并且要获得最佳性能需要特定于体系结构的实现。因此,如果特定于 Nvidia GPU 的实现比 GPU 的通用实现具有更高的性能,也就不足为奇了。与致力于一般 CNN 实现的团队相比,Nvidia 将投入更多资源来加速其 GPU 代码也就不足为奇了。

另一种可能是后端使用的数据类型已经从 double 变为单精度甚至半精度 float 。较小的数据类型意味着您可以以准确性为代价更快地处理更多数字。对于 NN 应用程序,这通常是可以接受的,因为不需要特别准确的单个数字就能使网络产生可接受的结果。

关于python - 为什么 CPU 上的 Keras LSTM 比 GPU 快三倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52481006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com