What is the compute power of your Computer?? Lets find out using some calculations. CPU and GPU both performs arithmetical and logical operations. Arithmetical operations like addition, subtraction, multiplication, Division,etc. Logical operations performs logical calculations like AND, OR , NOT, EXOR, etc. CPU and GPU also performs Floating point calculations. so, there is a unit of measurement of performance and its called “FLOP”.
FLOP stands for “Floating Point Operations”. It measures the computer ability of a computer.
There are types of FLOPs. They are :
- MEGAflop- millions
- GIGAflop- billions
- TERAflop- trillions
- PETAflop- quadrillion
- EXAflop- quintrillion
Now every processing device which consist of ALU (Arithmetical and Logical unit) can be measured by FLOPs, even smartphones also measured in Flops. They are useful in fields of scientific calculations that make heavy use of floating-point calculations. It is also more accurate measure than the generic instructions per second. It also measures compute performance of supercomputer. As FLOPS measures Floating point operations, where MIPS measures Integer performance of a computer. MIPS as a performance benchmark used in database query, word processing, spreadsheets, or to run multiple virtual operating systems. Example of integer operation include data movement (A to B) or value testing (If A = B, then C).
what is fixed point and floating point??
Fixed point used to store the numeric representation of data. Fixed point are designed to represent integer values without decimal point as whole number. for example 16 bits yields 65536(216) possible bit patterns that represent whole numbers from -32768 to 32767.
Floating point is used to store very large or very small number, numbers using decimal point(like pi or irrational) . This standard defines the format for 32-bit numbers called single precision, as well as 64-bit numbers called double precision and longer numbers called extended precision (used for intermediate results). The encoding scheme used by the processor for floating-point numbers is more complicated than for fixed-point.
How to compute floating point operations perform by any processing element?
Flops can be calculated using this equation
FLOPS = sockets x (cores/ sockets) x clock x (Flops/cycle)
Now this equation calculates flops of supercomputer. But If I want to calculate flops by my graphic processor, I will use this formula
Compute Performance = Shaders x 2 x clock frequency (in AMD Radeon graphic cards, shaders = Stream processing units)
In AMD Radeon Graphic cards,
Compute Performance = Stream processing units x 2 x GPU clock frequency
= 1024 x 2 x 0.975(GHz) ( AMD R7 370 = 1024 units)
= 1997 GFlops
In Nvidia Graphic cards,
Compute Performance = No. of CUDA Cores x 2 x GPU Clock frequency
= 768 x 2 x 0.928 (Nvidia GTX 650 )
= 1425 GFlops
In case of CPU, Flops can be theoretically calculated by
FLOPS = Number of cores x Operating frequency x Operations per cycle. Operations per cycle is basically architecture dependent. AMD and Intel architecture are different, so the operation per clock cycle can be different.
Compute Performance of Processing elements are calculated in GigaFlops and TeraFlops, but it is only useful when there is more number of processors are connected in a node. It will give us the efficient results.Hence the peak performance of supercomputer is calculated in Flops.