Обучение на нескольких GPU не сокращает время обучения - PullRequest
0 голосов
/ 24 марта 2020

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

  1. Первая модель была обучена с использованием 1 размера пакета на 1 графическом процессоре (P100) , Каждый шаг тренировки занимал ~ 254 мс. (Обратите внимание, что это шаг, а не эпоха).
  2. Вторая модель была обучена с использованием 2-х размеров партии с использованием 1 графического процессора (P100). Каждый этап обучения занимал ~ 399 мс.
  3. Третья модель была обучена с использованием 2 размеров партии с использованием 2 графических процессоров (P100). Каждый шаг тренировки занимал ~ 370 мс. По логике это должно было занять то же время, что и в первом случае, поскольку оба графических процессора обрабатывают 1 партию параллельно, но это заняло больше времени.

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

1 Ответ

1 голос
/ 24 марта 2020

Я предполагаю, что это связано с тем, что вы используете очень маленький batch_size; в этом случае стоимость распределения градиентов / вычислений по двум графическим процессорам и их извлечения (а также распределения данных между процессорами и графическими процессорами (2)) перевешивает преимущество параллельного времени, которое вы можете получить, по сравнению с последовательным обучением (на 1 графическом процессоре) .

Ожидайте увидеть большую разницу, например, для размера партии 8/16.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...