FLOPs는 딥러닝 모델 복잡도를 재는 가장 단순한 잣대이다.

FLOPs(플롭스)는 딥러닝 모델을 평가할 때 가장 자주 쓰이는 수치다.

본문에서는 FLOPs가 무엇이며, 어떻게 계산하고 왜 중요한지 순서대로 정리한다.

 
FLOPs가 가리키는 것

  • 모델이 입력 한 배치(영상 1 장, 문장 1 개 등)를 앞→뒤로 한 번 통과시키는 동안
  • 모든 층(Conv, FC, BN, Activation 등)이 수행하는 부동소수점 산술 연산 개수를 모조리 합친 값

메모리 접근, 루프 인덱싱, 정수 논리 연산은 세지 않는다. 다만 계산 도구마다 포함 범위가 살짝 다를 수 있으므로, 논문에서는 “FLOPs 계산법”을 종종 밝힌다.

 
FLOP 하나는 어떤 연산을 세나

  1. Multiply 또는 Add 1회 → 1 FLOP
  2. Multiply‑Add(FMA) 1회 → 2 FLOPs(곱셈 1 + 덧셈 1)
  3. 일부 라이브러리(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는 모델이 입력 배치 하나를 처리할 때 필요한 연산 총량이다.
  • 시간 차원이 없으므로 ‘복잡도’와 ‘비용’을 가늠하는 단순 척도다.

+ Recent posts