Как активировать использование графического процессора на инстансе AWS EC2?

Я использую AWS для обучения CNN на настраиваемом наборе данных. Я запустил экземпляр p2.xlarge, загрузил свои скрипты (Python) на виртуальную машину и запускаю свой код через интерфейс командной строки.

Я активировал виртуальную среду для TensorFlow (+ Keras2) с помощью Python3 (CUDA 10.0 и Intel MKL-DNN), который использовался по умолчанию через AWS.

Сейчас я запускаю свой код для обучения сети, но мне кажется, что графический процессор не «активирован». Обучение идет так же быстро (медленно), как если бы я выполнял его локально с помощью процессора.

Это сценарий, который я запускаю:

https://github.com/AntonMu/TrainYourOwnYOLO/blob/master/2_Training/Train_YOLO.py

Я также попытался изменить это, поместив with tf.device('/device:GPU: 0'): после синтаксического анализатора (строка 142) и сделав отступы под ним. Однако, похоже, это ничего не изменило.

Какие-либо советы о том, как активировать графический процессор (или проверить, активирован ли графический процессор)?


person Y.Ynot    schedule 01.09.2020    source источник


Ответы (2)


Ознакомьтесь с этим ответом, чтобы просмотреть список доступных графических процессоров.

from tensorflow.python.client import device_lib

def get_available_gpus():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']

Вы также можете использовать CUDA для списка текущего устройства и, при необходимости настройте устройство.

import torch

print(torch.cuda.is_available())
print(torch.cuda.current_device())
person justMiles    schedule 01.09.2020
comment
Спасибо за Ваш ответ! Я могу просмотреть доступные графические процессоры, также запустив nvidia-smi. Итак, я знаю, что есть доступный графический процессор, он просто не активируется, когда я запускаю свой код. И это именно та проблема, которую я хочу решить. - person Y.Ynot; 02.09.2020
comment
Получаете ли вы ошибки при настройке устройства? - person justMiles; 02.09.2020
comment
Привет, Майлз. Еще раз спасибо за ваш комментарий! Я пробовал это делать, но ошибок не было. Я выполнил следующие команды, которые дали следующие результаты: torch.cuda.is_available() - ›True, torch.cuda.is_initialized() -› False, torch.cuda.set_device(0), torch.cuda.is_initialized() - ›True. Однако скорость обработки не увеличивается, и nvidia-smi, к сожалению, по-прежнему выдает сообщение «нет запущенных процессов». - person Y.Ynot; 03.09.2020
comment
Я также выполнил первую предложенную вами команду, и, как ни странно, она не возвращает графический процессор. Результат: [name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 15573112437867445376 , name: "/device:XLA_CPU:0" device_type: "XLA_CPU" memory_limit: 17179869184 locality { } incarnation: 9660188961145538128 physical_device_desc: "device: XLA_CPU device" ] - person Y.Ynot; 03.09.2020
comment
Если первая команда ничего не возвращает, графический процессор недоступен для tenorflow. Здесь может быть пара проблем, но я бы 1) проверил, доступен ли графический процессор для ОС: lspci | grep VGA должен вернуть графический процессор NVIDIA. 2) убедитесь, что версии tensorflow и cuda поддерживают ваш графический процессор. Какой AMI вы используете? - person justMiles; 08.09.2020

В конце концов, это было связано с моим пакетом tensorflow! Мне пришлось удалить tenorflow и установить tensorflow-gpu. После этого GPU был автоматически активирован.

Для документации см .: https://www.tensorflow.org/install/gpu

person Y.Ynot    schedule 09.09.2020