Amdahl's Law (암달의 법칙, AI 성능의 병목)

📌 Brief Summary

Amdahl's Law는 어떤 시스템의 일부 성능을 개선했을 때, 전체 시스템이 얻을 수 있는 최대 성능 향상은 개선되지 않은 부분(순차적 부분)에 의해 제한된다는 법칙이다. AI 분야에서는 모델의 특정 레이어를 아무리 빠르게 만들어도, 병렬화 불가능한 계산이나 데이터 로딩 속도가 전체 추론 속도의 발목을 잡는 현상을 설명하는 데 사용된다.

---

📖 Core Content

## 1. 공식 및 핵심 원리

- **공식**: $S = \frac{1}{(1-P) + \frac{P}{N}}$
  - $S$: 전체 가속도
  - $P$: 병렬화 가능한 부분의 비율
  - $N$: 개선된 가속 배수 (예: 프로세서 개수)
- **핵심**: 병렬화할 수 없는 **1-P(순차적 부분)**가 전체 성능의 '천장'을 결정한다.

---

## 2. AI 시스템에서의 적용

| 요소 | 적용 사례 | 병목 현상 |
|------|-----------|-----------|
| **추론 (Inference)** | GPU 코어를 수만 개 사용 | 다음 토큰 생성은 이전 토큰에 의존적이므로 '순차적'임. |
| **훈련 (Training)** | 수천 대의 노드 연결 | 노드 간 데이터 통신(Communication) 시간이 가속의 한계를 결정. |
| **RAG (검색 증강)** | LLM 생성 속도 향상 | 외부 데이터베이스에서 문서를 찾는 속도가 전체 답변 지연 시간 결정. |

---

## 3. 암달의 법칙과 AI의 한계

- **순차적 사고의 벽**: LLM의 사고 과정이 한 단계 한 단계가 이전 단계의 결과물인 경우(Chain-of-Thought), 아무리 많은 GPU를 부어도 생각의 깊이를 만드는 '시간' 자체를 비약적으로 단축하기는 어려움.
- **Data Loading**: 연산 장치가 무한히 빨라도 스토리에서 메모리로 모델 가중치를 읽어오는 속도(Memory Bandwidth)가 병목이 됨.

---

## 4. 해결 전략: 아키텍처의 혁신

- **Speculative Decoding**: 지능은 낮지만 빠른 모델이 미리 미래의 토큰을 예측하게 하여, 순차 계산의 벽을 일부 무너뜨림.
- **Pipelining**: 작업을 겹쳐서 수행함으로써 빈 공간(Idle time)을 줄임.
- **MoE (Mixture of Experts)**: 모든 뉴런을 쓰지 않고 필요한 부분만 활성화하여 절대적인 연산량 자체를 줄임.

---

## 5. 인과관계 (기술 개선 → 새로운 병목 발견)

```
[시스템의 병렬화 가능한 부분(P) 극격히 개선] (GPU 코어 증가)
        ↓
[병렬 부분의 처리 시간 소멸]
        ↓
[개선 불가능한 순차 부분(1-P)의 비중이 상대적으로 커짐]
        ↓
[전체 가속도가 정체되는 한계수익 체감 지점 도달] (암달의 벽)
        ↓
[단순 확장이 아닌 구조적 혁신(Architecture Shift) 요구]
        ↓
[결과] 컴퓨팅 자원의 비효율성을 극복하기 위한 저전력/고효율 기술의 발전 촉발
```

---

🔗 Knowledge Connections

- [[Diminishing Returns (한계 수익 체감)|Diminishing Returns (한계 수익 체감)]], Scaling Laws (스케일링 법칙), MoE (Mixture of Experts), [[Adaptive Compute (적응형 계산량 조절)|Adaptive Compute (적응형 계산량 조절)]]
- **Projects/Contexts:** AI 추론 가속화 및 하드웨어 최적화
- **Contradictions/Notes:**
  - **Gustafson's Law**: 암달의 법칙이 고정된 작업량에 대한 효율을 따진다면, 구스타프슨의 법칙은 가용한 자원에 맞춰 작업량을 늘리면 성능 향상이 계속될 수 있음을 시사함.
  - **신규 키워드**: `Bottleneck`, `Memory Wall`, `Bandwidth`, `Serial Processing` → 탐색 큐 추가.
