FLOPs(Floating Point Operations Per Second)

FSA·2024년 2월 22일
0

딥러닝 기초

목록 보기
26/38
  • 특정 알고리즘, 모델이 초당 수행할 수 있는 부동 소수점 연산의 수
  • 그러나, 컴퓨팅 분야에서 FLOPs는 종종 단순히 '부동 소수점 연산의 총 수'를 의미하기도 함
  • 특히, 딥러닝과 같은 컴퓨터 비전 분야에서 FLOPs는 모델이나 알고리즘이 처리하는데 필요한 계산량을 측정하는 데 사용

  • 수학적으로 FLOPs를 계산하는 방법은 모델이나 알고리즘의 구조에 따라 달라집니다. 예를 들어, 간단한 행렬 곱셈 연산의 경우, FLOPs는 다음과 같이 계산할 수 있습니다:
  • 여기서:
    • (m)은 첫 번째 행렬의 행의 수,
    • (n)은 두 번째 행렬의 열의 수 (첫 번째 행렬의 열의 수와 동일),
    • (p)는 두 번째 행렬의 행의 수입니다.
  • 이 수식은 한 번의 행렬 곱셈 연산에서 수행되는 곱셈 연산과 덧셈 연산의 수를 모두 고려합니다. 각 요소를 곱하는 연산이 (m \times n \times p)번 발생하고, 결과를 더하는 연산도 거의 같은 횟수로 발생하기 때문에 총 연산 수는 대략 (2 \times m \times n \times p)가 됩니다.
  • 딥러닝 모델에서 FLOPs를 계산하는 것은 더 복잡
    • 모델의 각 계층(예: 합성곱 계층, 완전 연결 계층 등)에서 수행되는 연산의 종류와 양을 고려해야 하며, 이를 모두 합산하여 전체 모델의 FLOPs를 계산
    • FLOPs는 모델의 복잡성을 평가하고, 다른 모델이나 하드웨어 구성과의 성능 비교에 유용한 지표로 사용됨
profile
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것

0개의 댓글