Модель сегментации обучения, 4 графических процессора работают, 1 заполняется и получает: «Ошибка CUDA: недостаточно памяти» - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь построить модель сегментации и продолжаю получать сообщение «Ошибка CUDA: недостаточно памяти», после исследования я понял, что все 4 графических процессора работают, но один из них заполняется.

Некоторые технические данные:

  • Моя модель:

    модель написана в pytorch и имеет параметры 3,8M.

  • Мое оборудование:

    У меня есть 4 графических процессора по 12 грамм (Titan V) каждый.

I 'Я пытаюсь понять, почему один из моих графических процессоров заполняется, и что я делаю неправильно.

  • Доказательства: , как видно на скриншоте ниже, всеграфические процессоры работают, но один из них просто продолжает заполняться, пока не получит свой лимит.

enter image description here

  • Код: Я попытаюсь объяснить, что я сделал в коде:

    Первая моя модель:

    model = model.cuda()
    model = nn.DataParallel(model, device_ids=None)
    

    Вторая, входы и цели:

    inputs = inputs.to('cuda')
    masks = masks.to('cuda')
    

Это строки, которые работают сграфические процессоры, если я что-то пропустил, а вам нужно что-то еще, пожалуйста, поделитесь.

Мне кажется, что мне не хватает чего-то настолько базового, что повлияет не только на эту модель, но и на модели в будущемЯ буду очень рад за помощь.

Большое спасибо!

1 Ответ

0 голосов
/ 15 декабря 2018

Не зная многих деталей, я могу сказать следующее

  1. nvidia-smi не самый надежный и современный механизм измерения
  2. распределитель GPU PyTorch делаеттоже не поможет - он будет кешировать блоки памяти, искусственно взрывая использованные ресурсы (хотя здесь это не проблема)
  3. Я полагаю, что все еще существует «главный» графический процессор, к которому данные загружаются напрямую (а затем транслировать на другие графические процессоры в DataParallel)

Я не знаю достаточно о PyTorch, чтобы надежно ответить, но вы точно можете проверить, работает ли отдельная установка графического процессора с размером пакета, деленным на 4.И, возможно, если вы можете загрузить модель + пакет за один раз (без обработки).

...