this TensorFlow tutorial에서 N 개의 GPU를 사용하여 각 미니 GPU에 N 개의 미니 배치 (각 M 개의 샘플을 포함)를 배포하고 그라디언트를 동시에 계산할 수 있습니다.TensorFlow에서 Multi-GPU 교육의 장점은 무엇입니까?
그러면 N GPU에서 수집 한 그라디언트를 평균화하고 모델 매개 변수를 업데이트합니다.
그러나 이것은 단일 GPU를 사용하여 N * M 트레이닝 샘플의 그래디언트를 계산 한 다음 매개 변수를 업데이트하는 것과 동일한 효과가 있습니다.
그래서 나에게 유리한 점은 동일한 시간에 더 큰 크기의 미니 배치를 사용할 수 있다는 것입니다.
그러나 더 큰 크기의 미니 배치가 반드시 더 좋습니까?
최적화 된 안장 점을 만들기 위해 대형 미니 배치를 사용하지 않아야한다고 생각했습니다.
큰 크기의 미니 배치가 실제로 좋지 않은 경우 왜 멀티 GPU 학습 또는 다중 서버 학습을 고려해야합니까?
(상기 가이드 동기식 훈련이다.이 비동기 훈련 되었다면, I는 이점을 볼 수 있으며, 파라미터는 각 GPU에 의해 산출 된 기울기 평균화없이 갱신 될 것이기 때문에)
큰 미니 배치는 더 좋을 필요는 없지만 더 작은 소형 배치는 아닙니다. 배치 크기의 최적 선택은 다양한 요소에 크게 의존합니다. – Aenimated1
VRAM 크기 때문에 GPU 당 1,000 개의 샘플로 묶여 있다고 가정 해 봅니다. 그리고 최적의 미니 배치 크기가 2,000이라고 가정합시다. 그런 다음이 동기식 멀티 -GPU 설정에서 3 개 이상의 GPU를 사용하면 어떤 이점도 없어야합니다. 권리? – mp2893
나는 반대로, 이론적으로는 (실제로는 아니지만) 2000 GPU의 이점을 누릴 수 있다고 생각합니다. 각 GPU는 단일 예제의 그라디언트를 계산합니다. 현실적으로 GPU는 상당한 양의 병렬 처리를 사용하지만 그럼에도 불구하고 (예 : 4 GPU (각 배치 당 500 샘플의 그라디언트를 계산하는 데 책임이 있음) 사이에서 계산을 분산하여 성능 향상을 기대합니다. – Aenimated1