FLOPS(FLoat point Operation Per Sec)는 약어 그대로 1초당 몇 번의 부동소수점 계산을 할 수 있느냐 입니다.
실제 성능은 ALU의 구조와 기타 다른 요소에 따라서 결정되지만, GPU에서의 성능은 심플하게 "ALU수 x GPU_클럭 x 2"로 결정됩니다. (x2를 하는 이유는 내부 연산기 ALU 구조가 1번은 더하고, 1번은 곱하는 연산을 동시에 지원하는것이 일반적이기 때문)
대부분의 기준은 FP32, 즉 32비트 (Single) Float Point이며, 이 성능이 이론상 낼 수 있는 최대 성능 (Rpeak)입니다. S/W적으로 의미있는 연산을 하게 된다면 캐쉬나 메모리의 영향으로 달성하는 것이 거의 불가능한....수치.
번외로 16비트 half precision에서는 FP32 ALU에 2개 입력을 넣어서 x2 성능이 되거나, 64비트 double precision에서는 Nvidia의 테슬라나 AMD의 CDNA아키텍처가 아니면 64비트 연산을 지원 안 하거나 엄청 낮은 성능으로 지원하는 경우가 있습니다.
GPU의 FLOPS를 OpenCL기반의 앱에서 간단히 측정할 수 있는데...
https://play.google.com/store/apps/details?id=kr.clpeak&hl=ko&gl=US -> 안드로이드
https://github.com/krrishnarraj/clpeak -> 리눅스 (빌드법 참조)
폴드2 스냅드래곤 865+의 Adreno650은 아마 추정컨데...
768 ALU x 670Mhz x 2 해서 1.029 TFLOPS정도 나와야 하는데, 실질적으로 클럭이 조금 떨어지거나 해서 이론치에 거의 근접한 값이 나왔습니다. ALU에서 16비트 half를 지원해서 거의 2배의 성능....
많이들 쓰시는 Nvidia의 GTX/RTX GPU입니다. 개인용이기에.... 매우 빈약한 Double (64비트)을 보여줍니다.
AMD의 1세대 CNDA인 MI100입니다. AMD답게 16비트 half를 OpenCL에서 지원해주며, V100과 동일하게 FP32의 절반에 해당하는 FP64(double)성능을 보여줍니다.