Tensorflow автоматическая смешанная точность fp16 медленнее, чем fp32 на официальном реснете - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь использовать официальные тесты модели ResNet из https://github.com/tensorflow/models/blob/master/official/resnet/estimator_benchmark.py#L191, чтобы поэкспериментировать с поддержкой AMP, включенной в tensorflow-gpu==1.14.0rc0. Я работаю на 2080 Ti, драйвер 410.78, CUDA 10, Ubuntu.

Я внес следующие изменения, чтобы обеспечить быстрое сравнение и сравнение яблок с яблоками:

  • Сокращены эпохи до 10.
  • Удален в 2 раза больший размер партии для прогонов tweaked, так что все тренируется на одном и том же количестве сэмплов.
  • Установите контрольную точку так, чтобы она выполнялась только один раз после окончания обучения.
  • Переключен режим обучения на использование CIFAR-10, поскольку он загружен на локальный диск.

Я вижу это в журналах, что означает, что AMP активен:

2019-06-03 16:08:40.976829: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1767] Running auto_mixed_precision graph optimizer
2019-06-03 16:08:40.977057: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.985402: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.986858: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.987745: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.996781: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.001948: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.003208: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.004589: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.005981: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.511761: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1767] Running auto_mixed_precision graph optimizer
2019-06-03 16:08:41.527751: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1723] Converted 529/2910 nodes to float16 precision using 3 cast(s) to float16 (excluding Const and Variable casts)

Но фактическое время выполнения медленнее:

Время выполнения fp32 (голубой) меньше, чем у всех запусков fp16.

Что я могу сделать, чтобы увидеть улучшение производительности?

...