Ошибка графического процессора: экземпляр Sagemaker mp.p2.xlarge с использованием tensorflow ==2.3.0

#tensorflow #amazon-sagemaker

#tensorflow #amazon-sagemaker

Вопрос:

Я получил следующую ошибку при попытке обучить мою модель tensorflow на экземпляре sagemaker ml.p2.xlarge. Я использую tensorflow ==2.3.0. Интересно, связано ли это с несовместимостью версии tensorflow с cuda. sagemaker ml.p2.xlarge, похоже, использует cuda 10.0

 GPU error:
2020-08-31 08:46:46.429756: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/openmpi/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
2020-08-31 08:47:02.170819: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/openmpi/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
2020-08-31 08:47:02.764874: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1753] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
  

Ответ №1:

Этот вопрос, вероятно, устарел, но он возвращается к открытой проблеме, обнаруженной в начале выбора того, какие версии фреймворков использовать. Проблема не зависит от типа указанного вами экземпляра (с графическим процессором NVidia).

Из официальной документации «Доступные изображения контейнеров глубокого обучения«, на сегодняшний день 20/10/2022, предварительно скомпилированные версии выше 2.2, похоже, не пригодны для использования:

Фреймворк Тип задания Параметры хоровода Процессор / графический процессор Параметры версии Python Пример URL
TensorFlow 2.2 (Cuda 10.2) Обучение ДА Графический процессор 3.7 (py37) 763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-training:2.2.0-gpu-py37-cu102-ubuntu18.04
TensorFlow 2.2 вывод НЕТ Графический процессор 3.7 (py37) 763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference:2.2.0-gpu-py37-cu102-ubuntu18.04

В файле dockerfile, который используется для использования контейнера, содержится инструкция по установке библиотек, которые отсутствуют в вашей пользовательской версии:

 RUN apt-get update amp;amp; apt-get install -y --no-install-recommends --allow-unauthenticated 
    python3-dev 
    python3-pip 
    python3-setuptools 
    ca-certificates 
    cuda-command-line-tools-10-1 
    cuda-cudart-dev-10-1 
    cuda-cufft-dev-10-1 
    cuda-curand-dev-10-1 
    cuda-cusolver-dev-10-1 
    cuda-cusparse-dev-10-1 
    curl 
    libcudnn7=7.6.2.24-1 cuda10.1 
    # TensorFlow doesn't require libnccl anymore but Open MPI still depends on it
    libnccl2=2.4.7-1 cuda10.1 
    libgomp1 
    libnccl-dev=2.4.7-1 cuda10.1 
    ....
  

Затем вы можете установить необходимые библиотеки из своей пользовательской версии непосредственно с помощью requirements.txt файл или запустите команду установки непосредственно в сценарии обучения.

Если нет особых требований к проекту, я рекомендую использовать предварительно скомпилированные версии sagemaker. В противном случае создайте образ docker с нуля вместо установки библиотек таким способом..