부록 — 참조 도구 모음
본문에서 쓴 도구를 한곳에 모았다. 각 표는 해당 장으로 되돌아가는 참조점이다. 주제 고유 용어집과 기초 분산·시스템 용어 사전은 역할이 다르다(맨 아래 두 절, 서두에 명시).
A. 병렬화 축 비교표 — 나눔 / 복제 / 통신 (03·04·05장)
| 축 | shard(나눔) | replicate(복제) | 대표 collective | 주로 푸는 한계(01장) | 노드 경계 |
|---|---|---|---|---|---|
| TP (텐서) | 레이어 안 가중치 | 레이어 입출력 활성값 | all-reduce (또는 reduce-scatter+all-gather) | capacity, latency(조건부) | 안(scale-up) 선호 |
| PP (파이프라인) | 레이어(깊이) | 없음 | p2p send/recv | capacity | 넘김 가능(scale-out) |
| DP(추론) (데이터) | 요청/배치 | 가중치 전체 | 매 스텝 없음 → 라우팅 | traffic | 복제본 분산 |
| SP (시퀀스) | 시퀀스 활성값 | 가중치(TP 결합) | all-gather/reduce-scatter | capacity(활성값) | TP 따라감 |
| CP (컨텍스트) | 긴 컨텍스트·KV | 가중치 | KV/부분결과 교환 | capacity(장문), latency | 구현 의존 |
| EP (전문가/MoE) | 전문가 | 라우터·비전문가부(구현 의존) | all-to-all (dispatch/combine) | capacity(total) | non-blocking 노드 내 선호 |
핵심: 추론 DP는 학습 DP와 달리 매 스텝 gradient all-reduce가 없다(04장). all-to-all(EP)은 topology 민감·경합 취약(05장).
B. Collective 통신 패턴 정리 (02·03·05장)
| collective | 무엇을 하는가 | 어디서 쓰이나 | 한 줄 그림 |
|---|---|---|---|
| all-reduce | 모든 device의 부분값을 축약(합 등)해 전원이 같은 결과 보유 | TP 출력 합산(03장) | 각자 부분합 → 전원 같은 총합 |
| all-gather | 각자의 조각을 모아 전원이 전체 보유 | SP·reduce-scatter 짝(04장) | 조각들 → 전원이 전체 |
| reduce-scatter | 축약하되 결과를 나눠 각자 조각만 보유 | all-reduce 등가 조합(03장) | 부분합 → 각자 다른 조각 |
| broadcast | 한 device의 값을 전원에게 복사 | 초기 배포 등 | 하나 → 전원 복사 |
| reduce | 부분값을 축약해 한 device에 모음 | 집계 | 각자 → 하나로 합침 |
| all-to-all | 각자가 다른 모두에게 서로 다른 조각 송수신 | EP dispatch/combine(05장) | 우편 분류: 각자→목적지별 재분배 |
| p2p (send/recv) | 두 지점 간 직접 전송 | PP 스테이지 간(04장) | 컨베이어: 옆으로 전달 |
주의: all-reduce는 링·트리로 잘 최적화됨. all-to-all은 모두가 모두에게 보내 패브릭 경합에 취약(02·05장).
C. SLO·capacity 계약 템플릿 (10장)
CODE
[capacity 계약] 워크로드: 프롬프트 길이 분포 = ____, 생성 길이 분포 = ____, 부하 패턴 = ____ SLO: p99 TTFT ≤ ____ ms, p99 TPOT/TBT ≤ ____ ms (tail로 명시) goodput: 위 SLO를 지키며 = ____ 요청/초 (또는 ____ 토큰/초) ※ 분모 명시 headroom: 운영 이용률 ≤ ____ % (saturation 여유) 대응: 초과 시 → backpressure(____) / 오토스케일링(____ , 반응 시간 ____) 측정 조건: 하드웨어 = ____, 엔진/서빙층 = ____ (버전·확인일), 이용률 = ____
검증 규칙: 분모(무엇당)·tail·워크로드·이용률이 빠지면 계약이 아니다. throughput ≠ goodput.
D. 엔진 vs 서빙 층 경계 체크리스트 (11·12장)
이 관심사는 엔진 층인가 서빙 층인가?
| 질문 | 엔진 층 | 서빙 층 |
|---|---|---|
| 한 워커 안의 KV 페이지 관리인가? | ✅ (PagedAttention 등) | |
| 여러 워커 사이 KV 전송인가? | ✅ (NIXL 등 data path) | |
| 모델 안 토큰→전문가 라우팅(MoE)인가? | ✅ (05장) | |
| 요청→워커 라우팅인가? | ✅ (KV-aware routing) | |
| 한 forward pass 커널·배칭인가? | ✅ | |
| PD 오케스트레이션·오토스케일링인가? | ✅ |
규율: 같은 단어(KV·라우팅·배치)가 두 층에서 다른 것을 가리킨다. "한 워커 안인가, 워커 사이인가"를 먼저 물어라.
E. 비용·성능·전력 주장 감사 체크리스트 (15장)
정량 주장을 만나면 여섯 칸을 채운다. 하나라도 비면 미완성.
| 요소 | 질문 | 채움 |
|---|---|---|
| 분자 | 무엇을 세는가? (요청·토큰·$·W) | ____ |
| 분모 ⚠️ | 무엇당인가? (요청당·토큰당·device당·시간당) | ____ |
| 이용률 | 얼마나 바쁜 상태에서? (포화 근처인가?) | ____ |
| 시간 | 순간/지속? 워밍업 포함? 측정 구간? | ____ |
| 품질 | 무엇을 포기했나? (양자화·근사의 품질 영향) | ____ |
| SLO | 어떤 tail SLO를 지키며? (없으면 goodput 아님) | ____ |
비교 판정: 두 주장의 분모가 다르면 비교 불가. 이용률·시간·품질·SLO가 다르면 조건 통제 후에만 비교. 안 맞으면 "직접 비교 불가"를 명시.
F. 구성도 재구성 워크시트 (16장)
| 단계 | 할 일 | 산출 |
|---|---|---|
| 1 | 텍스트에서 컴포넌트 추출, 각각 explicit 여부 표시 | 컴포넌트 목록 |
| 2 | 각 연결이 control인가 data인가 분류(미명시는 inferred/unknown) | 경로 분류 |
| 3 | trust boundary·failure domain을 자료 근거로 표시(근거 없으면 unknown) | 경계 |
| 4 | 색·선 적용: explicit=실선/명시색, inferred=점선, unknown=빨강 점선 블록 | 색 규칙 |
| 5 | 상위 개요 + 하위 상세로 분리 | 두 수준 그림 |
| 6 | 그림의 unknown을 목록화 → 17장 브리프의 추가 검증으로 | unknown 목록 |
규율: 상세함과 정직함이 충돌하면 정직함. 빈칸을 상상으로 메우지 않는다.
G. 근거 기반 기술 브리프 템플릿 (17장)
CODE
[기술 브리프] ① 주장 (한 문장): ____________________________________________ ② 근거표: | 근거 | 라벨(explicit/inferred/unknown) | 출처 등급·주장 유형 | | | supports / conditions / does-not-support | canonical URL·버전·확인일 | ③ 조건표 (15장 여섯 요소): 분자=___ 분모=___ 이용률=___ 시간=___ 품질=___ SLO=___ ④ 적용 경계: 성립하는 범위: ____________ 성립하지 않는(약해지는) 범위: ____________ ⑤ 추가 검증 (unknown + 확인 방법): - ____ (확인 방법: ____) (선택) 구성도: explicit/inferred/unknown 색 구분 (16장)
규율: 결론을 몰아가지 않는다(설득 문서 아님). unknown을 정직하게. owner-reported ≠ 독립 재현.
H. 주제 고유 용어집 (이 과정의 주인공 개념)
이 과정이 다루는 분산 LLM 추론 특유의 개념. 아래 "기초 분산·시스템 용어 사전"(어디서나 쓰이는 일반 용어)과 역할이 다르다.
| 용어 | 한 줄 뜻 | 처음 등장 |
|---|---|---|
| tensor parallelism (TP) | 레이어 안 가중치를 device에 쪼개 행렬 곱을 나눔 | 03장 |
| pipeline parallelism (PP) | 레이어(깊이)를 스테이지로 갈라 device에 배치 | 04장 |
| sequence parallelism (SP) | 시퀀스 활성값을 device에 나눔(TP 보조, 메모리) | 04장 |
| context parallelism (CP) | 초장문 컨텍스트·KV를 device에 나눠 어텐션 분산 | 04장 |
| expert parallelism (EP) | MoE 전문가를 device에 나눔(all-to-all 발생) | 05장 |
| MoE / total vs activated | 전문가 혼합; total=메모리 결정, activated=연산 결정 | 05장 |
| communication-compute overlap | 통신을 독립 연산 뒤에 숨기는 조건부 스케줄(byte 제거 아님) | 06장 |
| PD disaggregation | prefill·decode를 다른 GPU 풀로 분리(간섭 제거, KV 전송 발생) | 07장 |
| KV tiering | KV를 HBM→CPU→원격 계층으로 올리고 내림 | 08장 |
| KV ownership/lifetime | KV의 소유자·수명(요청/세션/프리픽스) | 08장 |
| goodput | SLO를 지키며 낸 유효 처리량(≠ throughput) | 07·10장 |
| PagedAttention | KV를 가상 메모리처럼 페이지로 관리(vLLM) | 11장 |
| RadixAttention | 프리픽스를 radix tree로 저장해 공유 계산 재사용(SGLang) | 11장 |
| 컴파일 엔진 | 모델을 하드웨어 특화 실행 계획으로 컴파일(TensorRT-LLM) | 11장 |
| control/data path | 서빙 층의 결정 경로 vs 무거운 데이터(KV) 경로 | 12장 |
| engine-agnostic | 서빙 층이 여러 엔진을 워커로 갈아 끼움 | 12장 |
| NIXL | Dynamo의 KV 전송 데이터 라이브러리(data path) | 12장 |
| explicit/inferred/unknown | 자료가 밝힌 것/유도한 것/불명 — 사례 읽기 3라벨 | 13장 |
| owner-reported | 사업자 자기 보고(≠ 독립 재현) | 13장 |
| 하드웨어 다섯 축 | memory·kernel·software·topology·power | 14장 |
I. 기초 분산·시스템 용어 사전 (어디서나 쓰이는 일반 용어)
본문에 등장한 일반 분산·시스템 용어. 위 "주제 고유 용어집"과 달리, 이 용어들은 분산 시스템 어디서나 쓰인다. 더 기초적인 용어(bit·정밀도·compute/memory-bound·KV 캐시·batching·양자화·추론 지표 등)는 선수 과정 ①②를 참조하라.
| 용어 | 한 줄 뜻 | 처음 등장 |
|---|---|---|
| shard (샤딩) | 하나를 여러 조각으로 나눠 서로 다른 곳에 둠 | 01·03장 |
| replicate (복제) | 같은 것을 여러 벌 복사해 둠 | 01·03장 |
| collective (집합 통신) | 여러 device가 함께 참여하는 통신 연산 | 02장 |
| scale-up / scale-out | 한 노드 안 촘촘히 묶기 / 노드를 여럿 잇기 | 02장 |
| fabric (패브릭) | 여러 링크를 엮은 연결망 구조(topology) | 02장 |
| topology (토폴로지) | device·노드가 연결된 형태(링·트리·메시 등) | 02장 |
| non-blocking | 모든 쌍이 동시 통신해도 피크율 유지되는 패브릭 | 02장 |
| 명목 vs 실효 대역폭 | 스펙상 상한 vs 실제 도달치(busBW) | 02장 |
| bubble (버블) | 파이프라인 시작·끝에서 일부 유닛이 노는 유휴 | 04장 |
| load imbalance (부하 불균형) | 일부에 일이 몰려 나머지가 노는 상태 | 05·09장 |
| critical path (임계 경로) | 전체 소요를 결정하는 가장 긴 의존 사슬 | 06장 |
| interference (간섭) | 서로 다른 작업이 자원을 다퉈 서로를 느리게 함 | 07장 |
| producer / consumer | 데이터를 만드는 쪽 / 소비하는 쪽 | 07·08장 |
| backpressure (백프레셔) | 하류가 밀리면 상류를 늦추는 흐름 제어(안정성) | 08장 |
| queue (큐) / queueing delay | 대기열 / 대기로 인한 지연 | 08·09장 |
| routing (라우팅) | 요청을 어느 목적지로 보낼지 결정 | 09장 |
| load balancing (로드밸런싱) | 부하를 고르게 분산 | 09장 |
| autoscaling (오토스케일링) | 부하 추세에 따라 인스턴스 개수 조절 | 09장 |
| locality (지역성) | 관련 데이터·상태가 가까이 있어 재사용 이득 | 09장 |
| session affinity (세션 친화) | 같은 세션을 같은 인스턴스로 보냄 | 09장 |
| percentile / tail (백분위/꼬리) | p50·p99 등, 특히 최악에 가까운 값 | 10장 |
| saturation (포화) | 처리 상한 도달, 큐·tail이 비선형 폭발하는 상태 | 10장 |
| headroom (여유) | 현재 부하와 포화 사이 남긴 여유 용량 | 10장 |
| utilization (이용률) | 자원이 얼마나 바쁜가 | 10·15장 |
| trust boundary (신뢰 경계) | 서로 다른 신뢰·소유·격리 영역의 경계 | 16장 |
| failure domain (실패 도메인) | 한 번에 함께 죽는 범위 | 16장 |
| numerator / denominator (분자/분모) | 무엇을 세나 / 무엇당인가 | 15장 |
처음으로 → 00. INDEX