본문 바로가기
딥러닝 with Python

[개념정리] FLOPS란? FLOPS(Floating Pont Operations Per Second)

by CodeCrafter 2025. 2. 18.
반응형

 

 이번에는 인공지능 모델의 연산 성능 평가 시 중요한 기준으로 사용되는 FLOPS(Floaintg Point Operations Per Second)에 대해서 알아보겠습니다.

 

 

1. FLOPS란? FLOPS(Floating Point Operations Per Second)?

- FLOPS(Floating Point Operations Per Second는 초당 수행할 수 있는 부동소수점 연산의 개수를 나타내는 지표입니다.

- FLOPS에서 주요 개념을 정리해보면

 * Floating Point Operations (부동 소수점 연산) : 실수 연산을 포함하는 계산(덧셈, 곱셈 등)

 * Per Second : 초당 수행할 수 있는 연산의 횟수

 * 단위 : GFLOPS(Giga FLOPS : 10^9 FLOPS), TFLOPS(10^12 FLOPS) 등

 

- FLOPS는 AI 모델 학습, 딥러닝 연산, 시뮬레이션, 게임 렌더링 등의 성능을 평가하는 중요한 지표입니다.

 * 딥러닝 모델에서는 행렬 연산이 많은데, 이때 FLOPS가 높은 GPU를 사용할 수록 그 속도가 빨라지게 됩니다.

 

- FLOPS의 계산 방법은 아래와 같습니다.

 * FLOPS = (클럭 속도) x (코어 개수) x (1초당 연산 수) x (연산 단위 당 FLOP 개수) 

 * 예를 들어서 NVIDIA RTX 3090으로 연산을 한다고 했을때

   코어 개수는 10496 CUDA 코어, 클럭 속도는 1.7GHz, 연산 수는 2 FLOP/클럭(FP32 기준) 일 경우

 

    FLOPS는 10496 x 1.7 x 10^9 x 2 = 약 35.7 FLOPS가 됩니다.

 

 

- 그렇다면 FLOPS가 높다고 성능이 무조건 좋은걸까요? 

  그렇지는 않습니다.

 

  * 실제 성능을 결정하는 요소들은, 메모리의 대역폭(Bandwidth),  연산 효율(Instruction Efficiency), 알고리즘 최적화 등등에 영향을 받습니다.

 

 * 예를 들어, RTX 4090과 A100을 비교해보겠습니다.

    RTX 4090의 FLOPS는 82.6 TFLOPS 이고 A100 은 19.6 FLOPS입니다. 이렇게 FLOPS만 보게되면 4090이 더 좋아보이지만, A100은 딥러닝에 최적화(행렬 연산 최적화 등)에 되어 있기에 실제적으로는 A100이 더 연산 속도면에서도 우수합니다. ( VRAM에서의 비교도 당연히 A100이 좋구요. 가격도 더 비싸지요)

 

 

2. 인공지능 모델의 성능 평가에 왜 FLOPS를 사용하는지?

- 그렇다면 다음과 같은 질문이 생길 수 있습니다. 그냥 좋은 GPU, CPU 사용하면 되는거지 왜 이걸 인공지능 모델의 성능 평가에 사용하는지? 라고 말입니다.

 

- 이는 다음과 같이 2가지 정도의 이유를 생각해 볼 수 있습니다.

 1) FLOPS는 연산량을 측정하는 객관적이 지표이기 때문입니다.

    * 자주 사용되는 CNN, RNN, Transformer 등등 대부분의 AI 모델들은 부동소수점 연산(FLOPs)로 이루어져 있습니다. 즉 이를 통해 모델별 연산량을 수치화할 수 있고, 특정 모델이 특정 하드웨어에서 어느 정도의 속도로 실행될 수 있는지를 예측할 수 있게됩니다.

     (ex. ResNet-50의 연산량이 3.8GFLOPs라고 주어졌을때 만약 GPU의 성능이 1GFLOPS라면 3.8s 의 시간이 걸리고

           10TFLOPS라면, ResNet-50를 0.38ms안에 처리가능하다고 예측할 수 있게됩니다)

 

2) 모델 크기 비교 및 경량화 지표로 활용할 수 있습니다.

  * FLOPS가 높을수록 연산량이 많기에 좋은 성능의 연산 장비가 필요하게 됩니다. 이는 즉, 하드웨어적인 제약사항이 붙게되는 Edge AI, IoT 디바이스 등등에게는 제한사항이 되는데요. 예를 들어 아래와 같이 특정 Task에 대해 ResNet 50와 MobileNet-V2 중 어떤것을 사용해야할지 고민이 된다면 사용목적과 FLOPS 비교를 통해 모델을 정해볼 수 도 있습니다.

 

 * 이는 곧 비용과도 직결되기에 FLOPS를 통해 모델에 필요한 연산량을 미리 확인하여 비용을 늘릴지 또는 줄일지에 대해 판단 기준 중 하나가 되어 줄 것입니다.

 

 

3. 결론

- FLOPS는 AI 모델의 연산량을 측정하는 객관적인 기준이다.

- 모델 경량화, 하드웨어 선택, 학습 비용 계산 등의 다양한 최적화 과정에서 판단의 근거가 되는 필수적인 지표이다.

- 하지만, FLOPS만으로는 실제 성능 평가가 완전하게 되지는 않으며, Accuracy, Latency, 전력 소비 등등의 추가적인 고려 요소까지 설명해주지는 못한다.

 

 

반응형

댓글