Примечание: этот вопрос изначально был задан в github, но его попросили вместо этого
У меня возникли проблемы с запуском shadoworflow на gpu, и это, похоже, не является обычной проблемой конфигурации cuda, потому что все, кажется, указывает, что cuda правильно настроена.
Основной симптом: при работе с тензорным потоком мой gpu не обнаружен (код, который выполняется, и его выход).
Что отличает от обычных проблем, так это то, что cuda кажется правильно установленным и работает ./deviceQuery
из образцов cuda успешно (output).
У меня есть две графические карты:
- старый GTX 650, используемый для моих мониторов (я не хочу использовать его с тензорным потоком)
- GTX 1060, который я хочу посвятить tensorflow
Я использую:
- tensorflow-1.0.0
- cuda-8.0 (ls -l/usr/local/cuda/lib64/libcud *)
- cudnn-5.1.10
- питон-2.7.12
- nvidia-drivers-375.26 (это было установлено cuda и заменило мой пакет драйверов дистрибутива)
Я пробовал:
- добавление
/usr/local/cuda/bin/
в$PATH
- принудительное размещение gpu в тензорном потоке script с помощью
with tf.device('/gpu:1'):
(иwith tf.device('/gpu:0'):
, когда он не прошел, для хорошей оценки) - whitelisting gpu, который я хотел использовать с
CUDA_VISIBLE_DEVICES
, если наличие моей старой неподдерживаемой карты действительно вызвало проблемы. - запуск script с помощью sudo (потому что почему бы и нет)
Вот выходы nvidia-smi и nvidia-debugdump - l, если это полезно.
В этот момент я чувствую, что я следил за всеми сухарями и понятия не имею, что я мог бы попробовать. Я даже не уверен, рассматриваю ли я ошибку или проблему с конфигурацией. Любые советы о том, как отладить это, будут очень признательны. Спасибо!
Обновление: с помощью Ярослава в github я собрал больше информации об отладке, подняв уровень журнала, но, похоже, он не говорит о выборе устройства: https://gist.github.com/oelmekki/760a37ca50bf58d4f03f46d104b798bb
Обновление 2. Использование anano обнаруживает gpu правильно, но интересно, что он жалуется на то, что cuDNN является слишком недавним, а затем возвращается к процессору (code бежал, output). Может быть, это может быть проблемой и с тензорным потоком?