FLOPs (FLoating point OPerations)

1. FLOPs (FLoating point OPerations)의 개념

FLOPs
(s 소문자)
– FLoating point OPerations
– 사칙 연산을 포함하여 root, log, exponential 등 부동 소수점을 이용한 컴퓨팅 연산
FLOPS
(S 대문자)
– FLoating point Operations Per Second
– 1초 동안 부동 소수점(Floating Point) 기반 FLOPs 연산을 처리하는 성능 단위
– FLOPS = cores x clock x (FLOPs / cycle)
  • FLOPs(s는 소문자)는 컴퓨터의 부동 소수점 연산을 의미하며, FLOPS(S는 대문자)와 다름
  • FLOPS(S는 대문자)는 초당 FLOPs 연산 성능을 의미하며, GPU, 인공지능 모델 연산 성능 및 효율성 비교 등에 활용 

 

2. 인공신경망에서 FLOPs 계산 사례

가정
(Suppose)
  • 입력층 벡터 3개, 은닉층(H1) 벡터 4개, 은닉층(H2) 벡터 4개, 출력층 벡터 2개
  • 입력/은닉/출력 층의 벡터 간 드롭아웃(Dropout) 없이 Full-connected layer
벡터 1개에 대한
FLOPs 계산
  • 은닉층 벡터(H11) 1개에 대한 내적(Dot product) 계산
  • 계산식: I1 x W1 + I2 x W1 + I3 x W1
  • H11 벡터 연산 횟수: 5 FLOPs (= 곱셈 3번 + 덧셈 2번)
    (입력 벡터 n개에 대해 곱셈 n번과 덧셈 n-1번을 연산하므로, 2n-1 FLOPs)
전체 인공신경망의
FLOPs 계산
  • 은닉층(H1) 벡터 4개에 대한 연산 횟수: 5 FLOPs x 4개 = 20 FLOPs
  • 은닉층(H2) 벡터 4개에 대한 연산 횟수: 7 FLOPs x 4개 = 32 FLOPs
  • 출력층 벡터 2개에 대한 연산 횟수: 7 FLOPs x 2개 = 14 FLOPs
  • 전체 인공신경망에 대한 연산 횟수: 20 + 32+ 14 = 66 FLOPs
  • 인공지능 모델 연산 성능은 FLOPS 뿐 아니라 HBM(High Bandwidth Memory), CXL(Compute Express Link) 등 시스템 환경에 따라 모델 성능이 달라질 수 있으므로 다양한 환경을 고려하여 인공지능 모델의 성능 및 효율성 비교 필요

 
[참고]

  • IEEE, IEEE Std 754™-2019, IEEE Standard for Floating-Point Arithmetic, 2019

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^