understanding에서 이 부분 궁금해서. 1. pipeline이란게 무슨 뜻이야? pipeline parallelism이랑 좀 단어가 비슷해서 헷갈리네.
여기서 pipeline은 그냥 “학습 작업을 나눠서 처리하는 하나의 실행 단위/흐름” 정도로 보면 돼요.
조금 더 정확히는, Hydraulis 문맥에서 pipeline은 여러 GPU(또는 rank)로 구성된 하나의 병렬 실행 묶음이고, 그 안에서 동일한 모델/서브모델이 어떤 parallel scheme으로 돌지 정해지는 단위예요.
헷갈리는 이유는 맞아요. pipeline parallelism(PP)이랑 단어가 비슷한데, 논문에서는 보통 이렇게 구분해서 읽으면 됩니다:
- pipeline:
스케줄링/할당의 대상이 되는 “그룹” 또는 “실행 경로” - pipeline parallelism (PP):
그 pipeline 안에서 모델의 layer들을 여러 stage로 나눠서 직렬-병렬로 돌리는 한 가지 병렬화 방식
즉, 관계를 풀어쓰면:
- pipeline = “이 묶음이 어떤 parallel scheme으로 실행될지”를 받는 단위
- PP = 그 scheme을 구성하는 축 중 하나
논문에서 ⟨TP, PP, CP⟩처럼 scheme을 쓰잖아요.
여기서 PP 값이 1보다 크면, 그 pipeline 내부에서 pipeline parallelism을 쓰는 거고,
pipeline은 그 scheme이 적용되는 “개별 그룹”이라고 보면 됩니다.
아주 직관적으로 비유하면
- pipeline = 공장 라인 하나
- pipeline parallelism = 그 공장 라인을 여러 단계로 쪼개서 동시에 흘려보내는 방식
공장 라인 자체가 pipeline이고,
그 라인을 단계별로 나눠 운영하는 방식이 PP예요.
Hydraulis에서 중요한 점
논문은 pipeline마다 다른 scheme을 허용한다고 했죠.
즉, pipeline A는 TP=8, PP=1, CP=1, pipeline B는 TP=4, PP=2, CP=1 같은 식으로 서로 다른 병렬 전략을 가질 수 있어요.
여기서 pipeline은 “각 전략이 적용되는 대상 그룹”입니다.
원하면 다음 답변에서 제가
“pipeline / micro-batch / stage / rank / TP·PP·CP”를 한 장 그림처럼 정리해서 설명해줄게요.