📌 요약
모델 성능 평가 지표
- FLOPs: 부동소수점 연산(사칙연산, log, 지수 연산 등)의 개수
- MAC: 곱셈 후 덧셈 연산의 개수
하드웨어 성능 평가 지표
- FLOPS: 초당 수행할 수 있는 부동소수점 연산의 횟수
논문을 읽다보면 제안하는 모델의 심플함을 주장하면서 모델의 연산량을 보여주는 경우가 많은데,
오늘은 이 연산량 측정에 사용되는 지표인 FLOPs 와 MAC에 대해 알아보고,
FLOPs와 거의 같은 이름을 가지고 있는 FLOPS에 대해서도 알아보도록 하겠습니다.
1. FLOPs
FLOPs는 FLoating point OPerations 즉 부동소수점 연산의 약자로,
사칙연산, log, 지수 연산 등을 각각 1회 연산으로 계산하는 방법입니다.
예를 들어 $ax+b$ 의 FLOPs를 측정한다고 하면 $a \times x$ 와 $+ b$ 두 번의 사칙연산이 포함되므로 FLOPs는 2가 됩니다.
2. MAC
MAC은 Multiply-ACcumulate의 약자로,
이름에서 알 수 있다시피 곱하고 더하는 연산이 몇 번 시행되었는지를 측정하는 지표입니다.
하드웨어에는 보통 FMAC-Unit이나 MAC-Unit이라는 $ax+b$ 와 같은 곱셈 후 덧셈 연산을 한 번에 수행할 수 있는 유닛이 있는데, 이 유닛을 몇 번 사용했는지를 나타내는 지표가 MAC이라고 할 수 있습니다.
FLOPs와 달리 곱셈 후 덧셈을 한 번의 연산으로 치기 때문에 $ax+b$의 MAC은 1이 됩니다.
3. FLOPS
마지막으로 FLOPS는 FLOPs와 비슷하지만 의미하는 바가 상당히 다릅니다.
FLOPS는 FLoating point Operation Per Second 의 약자로, FLOPs가 모델의 연산량인 소프트웨어의 성능 측정에 주로 사용되는 지표인 반면, FLOPS는 GPU와 같은 하드웨어적의 성능 측정에 주로 사용되는 지표로, 1초에 수행할 수 있는 FLOPs를 의미합니다.
보통 위와 같은 GPU 성능 비교 사이트에서 찾아볼 수 있고, 위와 같은 표를 보면 해당 하드웨어로 1초에 몇 FLOPs의 연산을 수행할 수 있는지를 알 수 있습니다.
대소문자 하나로 FLOPs와 FLOPS의 의미가 상당히 달라지니 주의해서 보고 다녀야겠네요 😂
'개발 > 🦾 머신러닝, 딥러닝' 카테고리의 다른 글
DPO란? - RLHF를 개선한 모델 학습 방법론 (0) | 2024.11.18 |
---|---|
RLHF란? - ChatGPT가 사용한 언어모델 학습 방법론 (1) | 2024.11.16 |
[Basics] Object Detection이란? - 2Stage 모델 (1) | 2024.10.29 |
[Bayesian] MLE와 MAP (0) | 2024.10.29 |