В this TensorFlow tutorial вы можете использовать N количество графических процессоров для распределения N мини-пакетов (каждый из которых содержит M обучающих образцов) для каждого графического процессора и вычисления градиентов одновременно.В чем преимущество тренировки Multi-GPU в TensorFlow?
Затем вы усредняете градиенты, собранные с N графических процессоров, и обновляете параметры модели.
Но это имеет тот же эффект, что и использование одного графического процессора для расчета градиентов выборок обучения N * M, а затем обновления параметров.
Таким образом, единственное преимущество, которое мне кажется, заключается в том, что вы можете использовать мини-пакет большего размера за такое же количество времени.
Но размер мини-партии большего размера обязательно лучше?
Я думал, что вы не должны использовать мини-пакет большого размера, чтобы сделать оптимизацию более устойчивой к точкам седла.
Если мини-пакет большего размера действительно не лучше, почему бы вам не заботиться об обучении с несколькими GPU или даже о многоуровневом обучении?
(Учебник выше, является синхронным обучением. Если это асинхронная обучение, то я могу увидеть достоинство, так как параметры будут обновляться без усреднения градиентов, рассчитанных по каждому GPU)
Большие мини-партии не нужны лучше, но не меньшие мини-партии. Оптимальный выбор размера партии зависит от различных факторов. – Aenimated1
Предположим, вы ограничены до 1000 образцов на графический процессор из-за размера VRAM. И предположим, что оптимальный размер мини-партии составляет 2000 экземпляров. Затем в этой синхронной настройке multi-gpu не должно быть преимуществ при использовании более 2 графических процессоров. Правильно? – mp2893
Я бы подумал, что, наоборот, теоретически (но не практически) можно извлечь выгоду из 2000 графических процессоров, каждый из которых вычисляет градиенты одного примера. Реалистично, для начала использования графических процессоров используется значительный объем параллелизма, но, тем не менее, я ожидал бы повышения производительности путем распределения вычислений между (например) 4 графическими процессорами (каждый из которых отвечает за вычисление градиентов по 500 выборок на каждую партию). – Aenimated1