Использование Pytorch GPU - PullRequest
       159

Использование Pytorch GPU

0 голосов
/ 07 августа 2020

Итак, я сейчас тренирую свой DQN на Atari Breakout (из спортзала OpenAI). У меня проблема в том, что он очень медленный, но мой графический процессор, похоже, не используется полностью. Я контролирую это с помощью инструмента под названием HWMonitor, а также с помощью команды nvidia-smi. Есть идеи, почему?

Вот некоторые характеристики, которые могут иметь отношение:

Python version: 3.7.7
torch version: 1.4.0
gym version: 0.17.2
CUDA version: 11.0
GPU: GTX 980 founders edition
CPU: Inte Core i7 4790K

И вот некоторые сведения о моем DQN:

device:cuda
DQN(
  (conv1): Conv2d(1, 16, kernel_size=(8, 8), stride=(4, 4))
  (conv2): Conv2d(16, 32, kernel_size=(4, 4), stride=(2, 2))
  (mp1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (mp2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (lin1): Linear(in_features=128, out_features=256, bias=True)
  (lin2): Linear(in_features=256, out_features=4, bias=True)
)
optimizer: Adam (
Parameter Group 0
    amsgrad: False
    betas: (0.9, 0.999)
    eps: 1e-08
    lr: 0.001
    weight_decay: 0
)
gamma: 0.95
epsilon_decay: 0.99
epsilon_min: 0.01
obs_space: [110, 84]
trainig_batchsize: 32

Здесь вы можете увидеть как выглядит мой мониторинг во время тренировки на GPU: Мониторинг

Еще одна важная вещь. Почему-то обучение с CPU происходит быстрее, чем с GPU. Это в среднем результаты за 30 минут тренировки. Я не могу объяснить, почему мой процессор работает быстрее, поэтому, если у кого-то есть подсказка, я определенно хотел бы ее услышать.

GPU took 353 seconds for 1000 minibatches
CPU took 148 seconds for 1000 minibatches

Если какой-либо из моих кодов необходим для дальнейшего изучения моей проблемы, сообщите мне .

РЕДАКТИРОВАТЬ: Теперь я подумываю об использовании облачных сервисов графического процессора, более подробно c Linode. Единственное, что меня беспокоит, это то, что причина моей проблемы кроется в моем коде. Таким образом, использование облачного сервиса GPU было бы не очень разумным.

1 Ответ

0 голосов
/ 18 августа 2020

Несмотря на то, что следующее технически не делает его «быстрее», в смысле изменения / оптимизации кода, я все же хотел представить его как ответ на свой вопрос.

Решение для меня было используя Google Colab . Онлайн-ноутбук, очень похожий на jupyter notebook, но с существенным отличием, при использовании ноутбука у вас есть доступ к вычислительным ресурсам Google (например, вы можете использовать высокопроизводительный графический процессор бесплатно!).

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

...