FLOPs는 딥러닝 모델 복잡도를 재는 가장 단순한 잣대이다.
FLOPs(플롭스)는 딥러닝 모델을 평가할 때 가장 자주 쓰이는 수치다.
본문에서는 FLOPs가 무엇이며, 어떻게 계산하고 왜 중요한지 순서대로 정리한다.
FLOPs가 가리키는 것
- 모델이 입력 한 배치(영상 1 장, 문장 1 개 등)를 앞→뒤로 한 번 통과시키는 동안
- 모든 층(Conv, FC, BN, Activation 등)이 수행하는 부동소수점 산술 연산 개수를 모조리 합친 값
메모리 접근, 루프 인덱싱, 정수 논리 연산은 세지 않는다. 다만 계산 도구마다 포함 범위가 살짝 다를 수 있으므로, 논문에서는 “FLOPs 계산법”을 종종 밝힌다.
FLOP 하나는 어떤 연산을 세나
- Multiply 또는 Add 1회 → 1 FLOP
- Multiply‑Add(FMA) 1회 → 2 FLOPs(곱셈 1 + 덧셈 1)
- 일부 라이브러리(THOP 등)는 FMA를 1 FLOP으로 본다
따라서 동일 모델이라도 도구에 따라 숫자가 조금 달라진다.
단위 체계
- FLOP : 실수 연산 1회
- kFLOPs: 천 번
- MFLOPs: 백만 번
- GFLOPs: 십억 번
- TFLOPs: 조(兆) 단위
시간을 곱하면 초당 연산량(GFLOPS/sec) 같은 성능 지표가 된다. FLOPs 자체에는 시간 차원이 없다.
FLOPs 손으로 계산해 보기
Fully‑Connected 층
입력 512, 출력 1024 노드라면 가중치 행렬은 1024 × 512.
곱셈 1024 × 512, 덧셈 1024 × (512 – 1).
곱셈과 덧셈 개수가 거의 같으므로 총 FLOPs는 약 1024 × 512 × 2 ≈ 1.05 M.
3×3 Convolution 층
입력 채널 64, 출력 채널 128, 이미지 크기 128 × 128, 스트라이드 1.
곱셈 개수
128 × 128 × 128 × 64 × 9
덧셈 개수도 거의 동일.
총 FLOPs는 위 식에 2를 곱한 값으로 약 3.8 G.
FLOPs가 중요한 이유
- 속도 추정
- 같은 하드웨어라면 FLOPs가 두 배면, 추론 시간도 대략 두 배. (메모리 병목 때문에 정확히 비례하지는 않는다.)
- 모바일·엣지 한계
- 전력과 발열 예산에 맞춰 “1 GFLOPs 이하” 같은 목표를 미리 잡는다.
- 모델 선택·튜닝
- 정확도와 FLOPs를 좌표축으로 그려 최적 균형점을 찾는다.
자, 다시 정리.
- FLOP은 실수 연산 1회다.
- (G)FLOPs는 모델이 입력 배치 하나를 처리할 때 필요한 연산 총량이다.
- 시간 차원이 없으므로 ‘복잡도’와 ‘비용’을 가늠하는 단순 척도다.
'소프트웨어 > 머신러닝' 카테고리의 다른 글
| [PyTorch] 튜토리얼 목차 (0) | 2025.11.06 |
|---|---|
| [Machine Learning] Causal ML이란 무엇인가. (3) | 2025.06.11 |
| [리뷰] SMPL: A Skinned Multi-Person Linear Model (1) | 2025.01.15 |
| 지도학습 (0) | 2022.01.03 |
| 머신러닝이란 무엇인가? (0) | 2022.01.03 |