Сбой графического процессора при работе Keras / tenorflow-GPU, особенно когда тактовая частота переходит в режим ожидания на 0 МГц - PullRequest
0 голосов
/ 01 ноября 2018

Я использую Jupyter Notebook для запуска Keras с бэкэндом Tensorflow GPU. Я провел некоторое тестирование с различными фиктивными моделями, одновременно отслеживая использование моего графического процессора, используя MSI Afterburner, GPU-Z, nvidia-smi и диспетчер задач. Мой графический процессор - GeForce GTX 960M, у которого нет проблем с запуском игр. Температуры также низкие при работе Keras.

Что я заметил, так это то, что Keras работает нормально (например, загружает или обучает модель) в начале, но всякий раз, когда Keras ничего не запускает, графический процессор естественно хочет работать на холостом ходу от 1097 МГц до 0 МГц и как только делает ли сбой GPU. Я вижу, что "NVIDMI потерян" на NVSMI. Затем мне нужно отключить и снова включить мой графический процессор в диспетчере устройств, чтобы он заработал.

Кто-нибудь знает, почему это может происходить?

Редактировать: я могу временно предотвратить это для очень маленьких программ, используя функцию "allow_growth" следующим образом:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
set_session(sess)

Однако это работает только в том случае, если операция действительно мала, так как она использует только около 0,1 ГБ памяти графического процессора, например при загрузке модели или запуске действительно маленькой модели. Однако, если программа использует память даже 0,3 ГБ памяти, мой GPU падает, так как память не достигает 0 ГБ до , тактовая частота падает до 0 МГц (более низкое состояние питания).

1 Ответ

0 голосов
/ 29 ноября 2018

Мне наконец удалось выяснить проблему благодаря кому-то с другого форума. Это была проблема с драйверами. Последние драйверы, предоставленные Nvidia, вызывают проблему в отличие от старых драйверов, предоставленных производителем моего ноутбука.

Так как я не смог запустить tenorflow со своими старыми драйверами и выполнить дополнительные действия по устранению неполадок, я загрузил eDrawings Viewer и открыл несколько случайных сборочных чертежей, которые я нашел в Интернете. Сначала я попробовал использовать последние версии драйверов Nvidia и вижу, что когда я манипулирую моделями, моя карта находится в состоянии P0, но если я ничего не делаю и программное обеспечение не работает, моя карта переходит в состояние пониженного энергопотребления и вылетает GPU. Но когда я проделал то же упражнение с драйверами, сертифицированными производителем ASUS (так как это программное обеспечение было совместимо даже с более старыми драйверами, в отличие от TF), мой графический процессор НЕ вылетал.

Я также обнаружил, что eDrawings Viewer не аварийно завершает работу даже с последними драйверами Nvidia, если я захожу в панель управления Nvidia и выбираю «Предпочитать максимальную производительность» в режиме управления питанием. Карта остается в состоянии P0 всякий раз, когда у меня открыто программное обеспечение, даже после простоя в течение нескольких минут. К сожалению, поскольку python.exe не имеет графического интерфейса, эта опция не работает для моего случая. В качестве обходного пути, я все еще могу запустить тензор потока, не вызывая его сбоя, запустив eDrawings Viewer в фоновом режиме (или на самом деле любую программу, использующую графический интерфейс), которая держит мою карту в состоянии P0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...