Обработка двухбитных исключений / ошибок графического процессора в Tensorflow - PullRequest
0 голосов
/ 04 декабря 2018

Мы используем Keras и Tensorflow для приложения глубокого обучения на некоторых машинах в Google Cloud Platform с использованием графических процессоров K80.

У нас возникли некоторые проблемы с ошибками Double Bit ECC (DBE).В соответствии с официальной документацией https://docs.nvidia.com/deploy/dynamic-page-retirement/index.html:

Приложения получат уведомление о событии DBE для корректного выхода, и дальнейший контекст на GPU не будет создаваться до тех пор, пока DBE не будет отображен.

Когда эти ошибки происходят, наше приложение переходит на использование 100% CPU.Мы не знаем, что он делает на данный момент, но мы будем работать над добавлением еще нескольких способов его мониторинга.

Мой вопрос: как мое приложение получает эти уведомления о событиях DBE?Это SIGTERM, какой-то тип ошибки, который я должен отлавливать при вызове Keras, или что-то еще, что я должен делать?

Заранее спасибо

1 Ответ

0 голосов
/ 05 декабря 2018

Когда графический процессор получает неисправимую ошибку ECC, она не сообщается напрямую ни одному приложению.Драйвер ядра регистрирует Xid 48, за которым следует Xid 63, и графический процессор фактически отключается до тех пор, пока не будет сброшен утилитой nvidia-smi или перезагрузкой компьютера.Подробности см. Здесь: https://docs.nvidia.com/deploy/xid-errors/index.html

С точки зрения приложения, эффект заключается в том, что в какой-то момент ядра начинают не запускаться.В зависимости от приложения вы можете получить сообщение об ошибке.Я полагаю, что тензор потока проверяет ошибки большую часть времени, и приложение, в конечном счете, потерпит неудачу с утверждением.Вероятно, что сообщения об ошибках не будут иметь никаких признаков того, что сбой имеет какое-либо отношение к ошибке ECC.

Самый первый сбой после обнаружения неисправимой ошибки может выглядеть особенно озадачивающим.В этот момент ошибка приводит к прерыванию некоторой продолжающейся операции, и вы можете в конечном итоге получить довольно широкий диапазон возможных ошибок.Опять же, никто из них не скажет ничего об ошибках ECC, и вам нужно будет проверить это самостоятельно.

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