최적의 배치크기 계산

HanJu Han·2024년 10월 27일

LLM 최적화

목록 보기
6/16
  1. 기본 공식: 배치 크기 = 하드웨어 연산 속도 / (2 × 메모리 대역폭)

  2. 실제 숫자를 대입한 예:

  • 하드웨어 연산 속도 = 312×10¹² (FLOPS)
  • 메모리 대역폭 = 1555×10⁹ (bytes/s)
  • 계산: (312×10¹²) / (2 × 1555×10⁹) = 102.73
예시 상황:
- A100 GPU가 초당 수행할 수 있는 연산량: 312 테라FLOPS (312×10¹²)
- 메모리 대역폭: 1,555 GB/s (1555×10⁹)

계산 과정:
1. 분자: 312×10¹² (연산 속도)
2. 분모: 2 × 1555×10⁹ (메모리 대역폭의 2배)
3. 나눗셈: 312×10¹² ÷ (2 × 1555×10⁹)
4. = 312×10¹² ÷ 3110×10⁹
5. = 102.73

이 계산을 통해 얻은 102.73이라는 숫자는 최적의 배치 크기가 약 100정도라는 것을 나타냅니다. 이는 GPU의 성능을 최대한 활용하면서도 메모리를 효율적으로 사용할 수 있는 배치 크기입니다.


메모리 대역폭에 2를 곱하는 이유

  1. 읽기와 쓰기 작업이 모두 필요:
  • 딥러닝 연산에서는 데이터를 메모리에서 읽어오고(read)
  • 계산 결과를 다시 메모리에 저장하는(write) 두 가지 작업이 필요합니다
  1. 실제 예시:
Forward Pass (순전파) 과정:
- 입력 데이터 읽기
- 가중치 읽기
- 계산 결과 저장

Backward Pass (역전파) 과정:
- 저장된 결과 읽기
- 그래디언트 계산
- 계산된 그래디언트 저장

따라서 하나의 데이터 포인트에 대해 최소한:

  • 한 번의 읽기 작업 (1×)
  • 한 번의 쓰기 작업 (1×)
    총 2배의 메모리 대역폭이 필요하게 됩니다.

이것이 공식에서 메모리 대역폭에 2를 곱하는 기본적인 이유입니다. 실제로는 더 많은 메모리 접근이 발생할 수 있지만, 이론적 최소값으로 2배를 사용합니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글