Processors that can do 20+ GFLOPS per Watt (2012)

System for communicating power-efficiency of new equipment. “A” being best, “F” being worst. 2011-A is incomparable with 2012-A.

For yearly power-usage there is a rule-of-thumb which states that a device that is continuously on, costs the amount of Watt times 1.5 in Euro per year. So the computer in front of me, that takes around 107 Watt, costs me €160 a year if I would leave it on. A moderate cluster with several GPUs of a few hundred Watts each, would cost a few thousand Euros a year. I would say: very doable for most companies.

So why is the performance per Watt? There is more to a Watt than just the costs. The energy to cool a cluster is quite high, as most of the energy escapes via heat. And then there is the increase in demand for portable power. In cases you are thinking of sweeping you credit card for a top 10 supercomputer, then these energy-costs are extremely high.

In this article I try to get an overview of who is entering the 20+ GFLOPS/Watt area. All processors that do less than 20 GFLOPS/Watt, need to have other advantages to survive. And you’ll see that all the green processors are programmed with OpenCL, the technology StreamHPC is all about.

IMPORTANT: The total power used is sometimes including and sometimes excluding memory-transfers. So the comparison below IS NOT FAIR. The graphics cards are including memory-transfers, while the CPUs and SoCs are not.

The list

Understand that since I mix CPUs, GPUs and SoCs (= CPU+GPU) the list is really only an indication of what is possible. Also a computer is built up of more energy-consuming parts than just the processors: interconnects, memory, harddrives, etc.

Disclaimer: The below list is incomplete and based on theoretical values. TDP is assumed to be consumed when processor is working at maximum performance. Actual FLOPS/Watt values can be much lower, depending on many factors. If you want to buy hardware specifically for the purpose of highest FLOPS/Watt have your software tested on the device.

ProcessorTypeYearGFLOPS (32bit)GFLOPS (64bit)Watt (TDP)GFLOPS/Watt (32bit)FLOPS/Watt (64bit)
Adapteva Epiphany-IVEpiphany2013100N/A250N/A
Movidius MyriadARM SoC: LEON3+SHAVE201215.28N/A0.3248N/A
Nvidia GT 630, 2nd revision (GK208)X86 GPU2013692?2527.68?
AMD Radeon HD 8970MX86 GPU20132304144100?231.44
Nvidia Tesla K10X86 GPU2012457719022520.34?
ZiiLabs ZMS-40ARM SoC201258N/A?20?N/A
ARM + MALI T604ARM SoC20128 + 68N/A4?19?N/A
NVidia GTX 690X86 GPU x 220125621234?30018.740.78
Geforce GTX TitanX86 GPU201345001300250185.2
GeForce GTX 680X86 GPU2012309012819515.850.65
AMD Radeon HD 7970 GHzX86 GPU201243001075300+14.33.58
Intel Xeon Phi 5110PX872012202210112258.994.49
AMD A10-5800K + HD 7660DX86 SoC2012121 + 614?1007.35?
Intel Core i7-3770 + HD4000X86 SoC2012225 + 294,4112 + 73.6776.742.41
NVIDIA CARMA (complete board)ARM + GPU2012? + 200?405.00?
IBM Power A2Power CPU2012204? 204553.72?3.72
Intel Core i7-3770X86 CPU2012225112???
AMD A10-5800KX86 CPU201212160????

Beware that the list is updated, while this text is not!

The list contains recent and general available processors, but I will add any processor you want to see in the list – just request them in a comment.

Please also point me to sources where official data can be found on these processors, as it seems to be top-secret data. As not all the data was available, I had to make some guesses.

Below you find a graph of the list, including architectures grouped by GFLOPS + GFLOPS/Watt.

GFLOPS/Watt for 32-bit. Red: CPUs, orange: APUs, yellow: GPUs, light-blue: ARM, green: grid-processors, not circled: Phi. The upper-right area is where we need to go.

Below is a maybe more interesting view: Watt/GFLOPS. This projection has the advantage that low-power processors (< 2Watt) don’t get overrated and are closer together.

Watt/GFLOPS (lower is better) vs GFLOPS, excluding the CPUs. You see the Radeons doing best if it comes to performance and Watt/GFLOPS. The left-upper area is where we need to go.

CPU vs GPU

Let’s be clear:

  1. A GPU needs a CPU as a host.
  2. A GPU is great in vector-computations, a CPU much better in scalar computations.
In other words, a mix between a scalar and a vector processor is best. But once a problem can be defined as a vector-problem, the GPU is much, much faster than a CPU.

64 bit vs 32 bit

As the memory-usage is energy-consuming and results in half the number of data showing up at the processor, we have two reasons why more energy is consumed. Due to architecture-differences, CPUs have a penalty for 32 bit and GPUs a penalty for 64 bit.

Notice that most X86-alternatives have no 64 bit support, or just recently started with it. GPUs crunch double precision numbers at a fourth or less of the 32-bit performance-roof.

Architectures

ARM, X86/X87, Power and Epiphany all have different architecture-choices to get their targeted trade-off between precision, power-consumption and performance-optimisation (control unit). These choices make it sometimes impossible to get with the pace of other architectures in a certain direction.

Current winner: Adapteva Epiphany

Their 64-core Epiphany-IV is programmable with OpenCL (buggy compiler though) and the 50 GFLOPS/Watt makes it worth to put time in porting software if you need a portable device. People who have ported their software to OpenCL already have an advantage here. Adapteva even claims 72 GFLOPS/Watt, as you can read here. With a 100-core CPU coming up, they will probably even raise the bar.

X86 CPUs have the advantage of precision and legacy code, of which precision is the biggest advantage. As X86 GPUs (with Nvidia on top) have a great performance/Watt entering the 20+ GFLOPS/Watt, this could be very interesting for defending the X86 market against ARM.

ARM-processors have a lot of software written for it (via Android) and is very flexible in design, while keeping power-usage for the CPU-part around 1Watt. For instance ZiiLabs’ processor can be compared to the design of Adapteva, but then with an ARM-CPU attached to it.

Conclusion

There is much more than just this number of GFLOPS/Watt, and which architecture will be mainstream architecture in a few years one can only speculate on. Luckily recompiling for other architectures is getting easier with compiler-technologies such as LLVM, so we don’t need to worry too much. Except to redesign our software for multi-core of course. You have read above that new architectures are programmed with OpenCL. It is better to invest in this technology now than later.

The LEAP-conference is all about exactly this subject. Meet StreamHPC at this very unique event on 21 May 2013.

More reading

As memory-access takes energy, minimising memory-calls can lower consumption. This article on the ARM blog explains how this is done with MALI GPUs.

The Mont Blanc project is a supercomputer based on ARM. This 12 page PDF shows some numbers and specifications of this supercomputer.

As supercomputers eat lots of power, The Green 500 tries to stimulate to build greener HPC.

44 thoughts on “Processors that can do 20+ GFLOPS per Watt (2012)

  1. david moloney

    If you were at HotChips 2011 you would have seen Movidius Myriad which delivers 50GFLOPS/W

    • StreamHPC

      Ok, added to the list – I will update the text later. How much GFLOPS does it deliver?

  2. david moloney

    Also Epiphany is shown as ARM based in your table which I’m sure must be a mistake.

    • StreamHPC

      Oops, that’s not ARM at all! Thanks for noticing!

      • pip010

        64 RISC units, but not mentioning what. good chance it is ARM!

  3. PENG ZHAO

    How about Nvidia Tesla K10 and Geforce GTX 690? I found some figures.
    Tesla K10:
    Power: 225 W
    Single float: 4577 Gigaflops, 20.342 GFlops/W
    Double float: 190 Gigaflops, 0.8444 GFlops/W

    GTX 690:
    Power: 300 W
    Single float: 5621Gigaflops, 18.74 GFlops/W
    Double float: ?

    The single float computation power is impressive, but the double float one is rubbish.
    Even worse Nvidia seems to stop the update of their OpenCL implementation.

    • StreamHPC

      The GTX 690 is a double GPU, so therefore I chose to put the 680 in the list – maybe good point to add double-GPU cards too.

      It seems that my source for the K20 was completely wrong. I’ll update for the K10 for now.

  4. E P

    The table says FLOPS/Watt, instead of GFLOPS/Watt.

    Can you, please, include Integer arithmetic?

    Depending on floating point (especially 32-bit) is sometimes not an option due to accumulation of errors. So, a lot of integer arithmetic algorithms have been developed. Main point in porting them to OpenCL will be keeping the integer arithmetic calculations. And, that becomes even more important having in mind that a lot of devices increase performance and/or decrease power consumption at the expense of accuracy.

    • StreamHPC

      It was extremely difficult (and exhausting) to find the data already in the list. I will therefore focus on what is already there and try to complete the list for just 32-bit and 64-bit (being it floats or integers).

      The trade-off between precision and the other aspects of computing is an interesting subject though.

  5. Pingback: Processors that can do 20 GFLOPS/Watt | Adapteva

  6. rahul garg

    Corrections:

    1. The 3770K’s peak (CPU-only) is about 225 GFlops (at base frequency, with turbo slightly higher).

    2. Knight’s corner has fp32 at twice the rate of fp64. So I expect 2 teraflop for fp32 for knights corner.

    3. 3770K CPU-only fp64 peak is half of fp64 peak = 112 gflops.

    • StreamHPC

      Thanks for all the feedback! You’re great! Together we can make the picture.

    • StreamHPC

      They have their own compilers, but it would be a good choice for Kalray to start supporting OpenCL besides their own.

  7. Mxgolfcpu

    Since the GPU for AMD APUs can be programmed through OpenCL, the FLOPs of the integrated GPU should also be considered. You can calculate the GFLOPs for the AMD APUs through GFLOPs = (# of x86 cores x (128 bit (FPUs) / 32 bit (SP Operation)) * CPU Frequency) + (# of shader units * (64 bit (shader) / 32 bit (SP Operation)) * GPU Frequency

    For the 3.8GHz A10-5800K with 800MHz GPU that is 675.2 GFLOPs for the APU by itself

    You should be able to do similar calculations for the other devices

    • StreamHPC

      I have chosen to only use the officially given GFLOPS and Watt as told by the vendor. This will make sense later.

  8. Bharat

    does the GTX 690 give 5621GFlops/s? I tried out N-body similuation in gpu computing sdk and it was giving 600GFlops/s with one card, which is far far less than 2800GFlops/s…is something wrong with my card

    • Sean Happe

      That’s the thing about GPUs.. they’re fragile.. only an exceeding small number of applications match the structure of the hardware.. most applications don’t match, so they don’t get anywhere near the peak performance. In contrast, for CPUs, most applications get a high percentage of the peak. Normally, divide GPU peak by 5 and that’s the maximum you can expect from a well tuned application.. Unfortunately, the power will not go down in proportion to delivered GFLOPs.. you’ll still burn a high percent of the peak power, but won’t get much of the performance..

      • Donald Becker

        A wide range of applications work reasonably well on GPGPUs, and a few commercially important ones work quite well. Just as with commodity clusters, the set of addressable applications increased well beyond what was initially expected. (You pushed a hot button: the claim of an “exceedingly small number of applications” echoed what was loudly repeated two decades about clusters, just as they were becoming viable.)

        I certainly agree that GPGPUs typically get a lower percentage of peak. But it’s not that low with tuned code, and it’s more than offset by an astonishingly high peak number.

        Recent GPGPUs have sophisticated internal power management and use power proportional to the work they do.

        Disclosure: I work on the CARMA project at NVIDIA, although it’s a small proportion of almost three decades of working with parallel and cluster systems.

  9. Michael

    How is it that the top reated green500 is only 2Gflops/W, yet this article speaks of 20+ being the norm?

    • StreamHPC

      Good point! The Green500 describes the whole system, above solely the processor (and sometimes processor + memory). So the Green 500 includes all memory, hard-disks, network, case-cooling, etc.

      But this is exactly why it is quite difficult to compare processors. For example GPUs have their own memory, meaning that the CPUs perform worse in comparison. At the other hand GPUs need a CPU to operate.

      If you want to know what is best for you, focus on the system you have in mind – as there is no “the norm”. A cluster is incomparable to a 3-GPU-desktop or a powerful tablet.

  10. Leandro

    what’s the frequency?? there is no point in just having 50 GFLOPS/W if it takes a whole life to get these GFLOPS done!

  11. Pingback: ¿Pueden los móviles superar la potencia de consolas y PCs? | Blog Personal de Ariel Infante

  12. jipe4153

    And btw Knighs Corner is rate at 300 watt…

  13. jipe4153

    Hi Vincent,

    The Tegra K1 GPU does 365 GFLOPS @ 5 watts (whole SoC TDP) and it’s already shipping to oems.

    This would place it at ~73 GFLOPS / watt for the whole SoC (excluding the arm core FLOPS).

    This is likely the most efficient general purpose processor on this planet…

    Regards

    • StreamHPC

      True. I put up a new article specially for the 2014 mobile GPUs. Because there the fight is on bandwidth rather than compute power. The GPU is very interesting, though!

      • Ibrahim Awwal

        I’d be interested in this article or a newer one, but I can’t find it on this site. Could you link to it if you remember which one it is? Thanks!

  14. Krishnaraj

    Curious about how you got numbers for Mali-T604. kyokojap.myweb.hinet.net/gpu_gflops/ says either 17, 34 or 81 gflops

  15. jim

    OK, so a given processor is capable of a certain number of GFLOPS per Watt. If you are coding a algorithm that you expect to use 1/10th or 1/100th of its capacity, I am guessing that this doesn’t mean you only need 1/10th or 1/100th of the power to run that, right? How do you figure out the actual power requirments of your algorithm on a particular processor apriori from the manufacturer’s specifications? Is there a curve or closed form expression somewhere for these things?

Comments are closed.