2

我在 tensorflow 中有一个 1 层 LSTM 模型,并且我的 GPU 的温度读数在训练阶段变得相当高。始终在 80 C 和 90 C 之间变化。我的 GPU 是 24/7 冷藏室中的水冷 gtx 1080“超级时钟”版本。该模型有效,但这个温度让我担心。我想知道这是否正常和安全。

我正在用标记化的 reddit 评论训练 LSTM 的下一个单词预测问题。我从 wildml.com 的不同教程中得到了这个想法。以下是有关它的一些详细信息:

  • TensorFlow 1.2.1、Cuda tk 8.0、Cudnn 6.0、Nvidia 驱动程序 375.66
  • 我的训练数据包含 20 万条 reddit 评论。
  • 我的字典由 8000 个单词组成,这意味着每个预测有 8000 个分类
  • 我使用 GLOVE 预训练的 100 维维基百科词嵌入
  • 我没有使用占位符来提供我的输入。这一切都由 TFRecordfiles 阅读器完成,它将示例输入到 100k 容量的随机洗牌队列
  • 从随机洗牌队列,它进入一个填充 FIFO 队列,在那里我生成了 20 个零填充小批量
  • 20 个大小的小批量进入一个 tf.dynamic_rnn(),其中 LSTM 单元的隐藏维度为 150
  • 我使用 tf.sign() 掩盖损失并使用 Adam 优化器最小化结果

我注意到当我提高小批量大小时温度会升高很多。1 号小批量(单个示例),读数在 72-75 摄氏度之间。对于 10 号小批量,它立即达到 78 摄氏度并保持在 78-84 摄氏度的范围内。对于 20 号小批量,84 -88 C. 30 小批量,87-92 C。

如果我将隐藏维度提高到 200、250、300 等,同时保持小批量大小固定,我也会得到类似的温度升高。

我也训练了相同的模型,但只使用占位符提供数据,即不使用 TFRecord、队列和小批量。它保持在 65 C 左右,但显然远未优化和理想地使用占位符来喂网。

我真的很感谢你的帮助,说实话,我有点绝望。

- - - - - - - - -编辑 - - - - - - - - - - -

事实证明,我的 BIOS 上已将水冷却器泵配置为根据 CPU 温度而变化……显然 GPU 温度不会影响它,这就是发生的事情。它以 50% 的容量运行。好吧,我已经将它调整为始终保持 100%,现在相同的模型以大约 100 的最高温度运行。83 C. 仍然不完美,但有很大的改进。我想由于我的模型的复杂性 + 我的 GPU 的 1.8 GHz 时钟非常高,我无能为力。

4

1 回答 1

2

根据 nvidia,GTX 1080 的最高设计温度为 94 摄氏度。任何低于此温度的温度都应该是安全的。

最高 GPU 温度(摄氏度)94

当您提高 mini-batch 大小时 GPU 温度升高的事实是一个好兆头,这意味着您的 GPU 正在尽最大努力工作。事实上,如果你的 GPU 温度不在 ~80-90 C,这意味着它没有以全功率工作,并且你正在失去一些性能。

于 2017-07-12T08:24:08.517 回答