딥러닝에서 계산량은 파라미터와 함께 모델이 얼마나 큰지, 효율적인지를 나타내는 지표이다.
계산량은 보통 FLOPs(FLoating point OPerations) 혹은 MAC(Multiply–ACcumulate)으로 나타낸다.
대부분의 현대 하드웨어는 tensor를 다루는 연산을 할때 FMA라고 하는 명령어 셋을 사용한다.
FMA는 a*x+b를 하나의 연산(operation)으로 처리를 하고 이 연산이 몇번 실행되었는지를 세는 것이 MAC이다.
FLOPs는 덧셈, 곱셈을 하나 하나의 연산으로 보기 때문에 일반적으로 MACs : FLOPs = 1 : 2(덧셈 1회, 곱셈 1회)가 된다.
따라서 MAC을 FLOPs로 변환할 때는 2를 곱하면 되고, 반대의 경우엔 2로 나눠주면 된다.
100 MACs = 2*100 FLOPs = 200 FLOPs
100 FLOPs = 0.5 * 100 MACs = 50 MACs
FLOPs와 FLOPS도 서로 뜻이 다른데, 각각의 원래 단어를 보면 바로 구분이 된다.
FLOPs(FLoating point OPerations)
FLOPS(FLoating point OPerations per Second, flop/s)
즉, FLOPs는 실제 계산량을 나타내는 단위이고.
FLOPS는 얼마나 빨리 계산을 처리할수 있는지에 대한 단위이다.
Focus Only AI | Ocean: GPU 클러스터 관리 솔루션 | AI Ocean 대표 신은섭
Ocean 소개글: https://bongjasee.tistory.com/pages/Ocean
Github:https://github.com/AI-Ocean