파이프라인 병렬 버블 계산
입력
| 파이프라인 단계 수 | 8 |
|---|---|
| 마이크로 배치 수 | 32 |
파이프라인 병렬 버블 계산
파이프라인 단계 수와 배치당 마이크로 배치 수로부터 파이프라인 병렬 학습의 버블 비율과 그에 따른 연산 효율을 계산합니다.
입력
파이프라인
결과
값을 입력하면 계산 결과가 표시됩니다.
파이프라인 병렬 버블
파이프라인 병렬화는 모델을 순차 단계로 나눠 각각을 서로 다른 장치 그룹에 두므로, 첫 장치의 계층 블록이 그 출력을 다음 장치로 넘기고, 그런 식으로 이어집니다. 덕분에 가속기 하나에 담기에 너무 큰 모델을 여러 장치에 펼칠 수 있지만, 특유의 대가가 따릅니다. 모든 단계가 한꺼번에 바쁠 수 없다는 점입니다. 배치의 시작에는 뒤 단계들이 데이터가 도달하기를 기다리며 유휴 상태이고, 끝에는 마지막 마이크로 배치들이 빠져나가면서 앞 단계들이 유휴 상태가 됩니다. 그 유휴 구간이 파이프라인 버블이며, 이 계산기가 그것을 정량화합니다.
버블이 생기는 곳
여덟 개의 작업대를 가진 조립 라인을 떠올려 봅니다. 첫 품목은 작업대 1번부터 7번을 거쳐야 8번이 할 일이 생기는데, 그때까지 일곱 스텝 동안 라인이 온전히 가동되지 못합니다. 라인이 비어 갈 때도 같은 일이 거꾸로 일어납니다. 단계가 개인 파이프라인에서 이 워밍업과 쿨다운은 뒤에 얼마나 많은 작업이 따르든 스텝이 듭니다. 그 고정 비용이 중요한지는 그 뒤로 몇 개의 마이크로 배치가 흘러가느냐에 달려 있습니다.
계산식
파이프라인 단계 개와 마이크로 배치 개가 주어지면 표준 동기식 스케줄의 버블 비율 와 그 보수인 효율 는 다음과 같습니다.
BE=m+p−1p−1=m+p−1m분모는 전체 파이프라인 스텝 수, 곧 유용한 마이크로 배치 개에 채우기와 비우기의 스텝을 더한 값입니다. 모든 스텝은 유용한 작업이거나 버블이므로 두 비율은 항상 1로 합쳐집니다.
계산 예시
8단계 파이프라인에 배치당 32개의 마이크로 배치를 흘려보내는 경우를 살펴봅니다.
BE=32+8−18−1=397≈0.179=17.9%=3932≈0.821=82.1%스케줄의 거의 18%가 버블로 사라지고 약 82%가 유용한 연산에 남습니다. 마이크로 배치 수를 64로 올리면 고정된 일곱 스텝의 채우기가 더 많은 작업에 퍼지므로 버블이 약 11%로 떨어집니다.
한계
이 공식은 표준 동기식 스케줄, 비용이 같은 단계, 무시할 만큼 작은 단계 간 통신을 가정합니다. 연속하지 않은 여러 단계 조각을 각 장치에 배정하는 인터리브드 스케줄은 버블을 이 값보다 줄이는 반면, 고르지 않은 단계 비용이나 무거운 단계 간 전송은 실제 효율을 더 나쁘게 만들 수 있습니다. 여기 쓰인 마이크로 배치 수는 전역 배치를 통해 옵티마이저 동작을 좌우하는 양과도 같은 것이므로 실효 배치 크기 계산를 참고하십시오. 또한 파이프라인 병렬화는 보통 데이터 병렬화와 함께 쓰이는데, 그 별개의 확장 손실은 데이터 병렬 확장 계산가 다룹니다.
자주 묻는 질문 (FAQ)
파이프라인 버블이란 무엇입니까?
파이프라인 병렬화에서는 모델을 여러 장치의 순차 단계로 나누고, 마이크로 배치가 조립 라인처럼 그 단계들을 흘러갑니다. 각 배치의 시작에는 첫 단계만 일을 하고 나머지는 데이터가 도착하기를 기다리며, 끝에는 마지막 단계들이 마무리하는 동안 앞 단계들이 유휴 상태가 됩니다. 그 유휴 채우기-비우기 시간이 버블입니다.
순전파와 역전파 횟수가 같은 동기식 스케줄에서 버블은 전체 스케줄에 퍼진, 단계 수에서 1을 뺀 만큼의 워밍업 스텝입니다.
버블은 어떻게 줄입니까?
직접적인 방법은 배치를 더 많은 마이크로 배치로 나누는 것입니다. 채우기와 비우기 비용은 단계 수에서 1을 뺀 스텝으로 고정되어 있으므로, 배치를 더 잘게 나누면 그 비용이 더 많은 유용한 작업에 분산되어 버블 비율이 줄어듭니다.
인터리브드를 비롯한 고급 스케줄은 연속하지 않은 여러 단계를 각 장치에 배정해 버블을 더 줄입니다. 절충은 마이크로 배치가 많아지면 마이크로 배치당 크기가 작아져 커널 효율이 떨어질 수 있다는 점이며, 그래서 버블은 없어지는 것이 아니라 줄어듭니다.
단계와 마이크로 배치는 어떻게 상호작용합니까?
단계가 많을수록 파이프라인이 깊어져 채우기-비우기 비용이 커지므로, 마이크로 배치 수가 고정된 상태에서 버블이 커집니다. 마이크로 배치가 많을수록 그 반대로 고정 비용을 희석합니다. 유용한 기준은 마이크로 배치 수를 단계 수보다 충분히 크게, 흔히 네 배 이상으로 유지해 버블을 작게 두는 것입니다. 버블 비율과 효율은 항상 1로 합쳐지므로, 한쪽을 개선하면 다른 쪽도 개선됩니다.
면책조항
이 계산은 표준 동기식 파이프라인 버블 공식을 쓰며, 단계 비용이 같고 단순한 채우기-비우기 스케줄이며 단계 간 통신이 무시할 만하다고 가정합니다. 인터리브드 스케줄과 고르지 않은 단계 비용은 결과를 바꿉니다. 측정된 효율의 보장이 아니라 계획용 추정값으로 다루십시오.