У меня есть некоторый код на Python, который обучает нейронную сеть с использованием тензорного потока.
Я создал образ докера, основанный на тензорном потоке / тензорном потоке: образ последней-gpu-py3, который запускает мой скрипт на python.Когда я запускаю экземпляр EC2 p2.xlarge, я могу запустить свой док-контейнер с помощью команды
docker run --runtime=nvidia cnn-userpattern train
, и контейнер с моим кодом запускается без ошибок и использует графический процессор хоста.
Проблема заключается в том, что, когда я пытаюсь запустить тот же контейнер в обучающем задании AWS Sagemaker с экземпляром ml.p2.xlarge (я также пробовал с ml.p3.2xlarge), алгоритм завершается ошибкой с кодом ошибки:
ImportError: libcuda.so.1: невозможно открыть общий объектный файл: нет такого файла или каталога
Теперь я знаю, что означает этот код ошибки.Это означает, что среда выполнения хоста докера не установлена на «nvidia».В документации AWS говорится, что команда, используемая для запуска образа докера, всегда
docker run image train
, которая будет работать, если для среды выполнения по умолчанию задано значение «nvidia» в docker / deamon.json.Есть ли способ отредактировать хост deamon.json или указать docker в Dockerfile на использование «--runtime = nvidia»?