Keras / Tensorflow не обнаруживает графический процессор в экземпляре AWS ml.p2.xlarge, управляемом SageMaker

Я использую пользовательский контейнер Docker для использования с SageMaker на экземпляре ml.p2.xlarge .

Базовый образ - tiangolo / python-machine-learning: cuda9.1-python3.7 , который обычно поставляется с необходимым инструментарием CUDA. Пакеты python устанавливаются через conda с использованием следующего минималистского environment.yaml :

dependencies:
  - boto3
  - joblib
  - keras
  - numpy
  - pandas
  - scikit-learn
  - scipy
  - tensorflow=2.0

Но когда я запускаю учебное задание для небольшого lenet5 CNN, я не вижу никакой активности графического процессора в журналах (и обучение длится столько же, сколько и в экземпляре без графического процессора).

Еще больше беспокоит то, что len(tf.config.experimental.list_physical_devices('GPU') возвращает 0 , а K.tensorflow_backend._get_available_gpus() пусто. Наконец, если я проверяю расположение устройства (используя tf.debugging.set_log_device_placement(True) ) на базовая операция, такая как следующее:

a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)

я получил

Executing op _MklMatMul in device /job:localhost/replica:0/task:0/device:CPU:0

Подтверждение того, что операция произошла на процессоре.

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

Всего 1 ответ


Я рекомендую начать с предоставленных SageMaker сред, чтобы убедиться, что у вас есть проверенная, последняя и готовая к работе установка. В частности, для Tensorflow и Keras это:


Есть идеи?

10000