У меня есть код на Python, который обучает нейронную сеть с использованием тензорного потока.
Я создал образ докера на основе образа tensorflow / tensorflow: latest-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
что будет работать, если в docker / deamon.json для среды выполнения по умолчанию установлено значение «nvidia». Есть ли способ отредактировать хост deamon.json или указать докеру в Dockerfile использовать "--runtime = nvidia"?