Monday, 15 October 2012

How to Calculate FLOPS of GPU

How to Calculate FLOPS (floating point operations per second) of GPU

or How to Calculate GigaFlops of GPU

For this You should know

  1. Clock Speed of the GPU
  2. No of mul-add (ALU that can perform both mul and add in one clock second) units, nof of mul units
  3. No of SIMD units
  4. No of Cores

    Clock speed tells about how many instruction can be generated in one second

     In one clock tick one mul-add unit can perform one multiplication + one add so 2 (two) floating point operations per clock
    In one clock tick one mul unit can perform one multiplication so 1 floating point operation per clock tick
  
    Each SIMD unit will have these units and Each Core will have SIMD units so

    Floating point operations per second= no of cores * no of SIMD units * ((no of mul-add units*2) + ( no of mul units)) * clock speed in Hertz

if the clock speed is in GHz , result is Giga flops per second
Example :
AMD FireStream 9250 NVIDIA Quadro FX 4800 NVIDIA Quadro 6000 ATI FirePro V9800 Tesla C2070
No of Cores 10 24 56 20 56
SIMDs per Core 16 8 8 16 8
mul_add units (2 flops) 5 1 1 5 1
mul units (1 flop) 0 1 0 0 0
clock Speed (GH) 0.75 1.204 1.15 0.85 1.15
Max GFLOPS (Cores*SIMDs*(mul-add*2+mul*1)*clock speed) 1200 693.504 1030.4 2720 1030
Global Memory (GB) 1 1.5 6 4 6
LOCAL Memory NIL 16 KB 16KB 16KB 16KB
Bandwidth 144 GB/s 144 GB/S
power consumption 225 W 225W 238W


Above table also shows GPU Comparisions



Same formula applies for CPU also but SIMDs may not be there