Floating Point: C-ray

Shifting over from integer to floating point benchmarks we have C-ray. C-ray is an extremely simple ray-tracer which is not representative of any real world raytracing application. In fact, it is essentially a floating point benchmark that runs out the L1-cache. Luckily it is not as synthetic and meaningless as Whetstone, as you can actually use the software to do simple raytracing. That is not the kind of benchmark we like to use for the evaluations of server CPUs, but since our first efforts to port some of our favorite applications to OpenPOWER failed, we settled for something easier. We knew we would have the POWER8 system only for a few weeks, so we had to play it safe.

First we compiled the C-ray multi-threaded version with -O3 -ffast-math. To understand the CPU performance better, we limited C-ray with taskset to one or two threads (CPU 0 and 18) on the Haswell-based Xeon and one to eight threads on the POWER8. We also kept the output resolution at 768x432 to keep the render times in check. The "sphfract" file was used as input.

C-ray 768x432 on one core

Real floating point intensive applications tend to put the memory subsystem under pressure, and running a second thread makes it only worse. So we are used to seeing that many HPC applications performe worse with multi-threading on. But since C-ray runs mostly out of the L1-cache, we get different behavior. Still, 8 threads of floating action seem to be too much: the POWER8 delivers the best FP performance at 4 threads. At this point, the POWER8 core is able to deliver 20% higher floating point performance than the Haswell Xeon.

Next we used all 160 (20 x 8 threads SMT) or 72 (36 x 2 threads SMT) threads and increased the resolution to 3840x2160.

C-ray rendering at 3840x2160

With a core count that is 80% higher, there is nothing stopping the Xeon E5-2699 v3 from taking the top spot. Still, the POWER8 delivers solid performance and outperforms the slower Xeon E5-2695 v3 by 5%. Although the real world relevance of this benchmark is small, we now have an idea of how good the "basic FP" performance is. Otherwise in real world applications, the use of AVX-2/VSX and the available bandwidth will play a role.

Influence of the Compiler: Integer Floating Point & Compilers
Comments Locked

146 Comments

View All Comments

  • JohanAnandtech - Saturday, November 7, 2015 - link

    Ok, Europe adopt the dot, but maybe the US can adopt the metric system like the rest of the world? :-)
  • bitaljus - Saturday, November 7, 2015 - link

    or better yet recode this site to see from what country u are visiting and use the appropriate denote thousands symbol, appropriate metric system and even time for the viewer. how meany time i was irradiated when i need to google something like this just to make it in local. and this is easy to do in the site natively. (P.S. Sorry for bad English, not native)
  • nils_ - Wednesday, November 11, 2015 - link

    The browser already sends a header with Accept-Language, which should be the preferred way to for the web site to determine locale. For example, I live in Germany so my browser will send en, en_UK, en_US, de and DE (this can be set somewhere in the settings). Now you can determine the language and other localisation based upon that, and there are tools where you can set the locale to then display dates, times etc.. based n that.

    Many sites instead use Geolocation based on the IP address, which can be really awkward when you travel to a country where you can't read the language.
  • ZeDestructor - Saturday, November 7, 2015 - link

    Even within EU it's not consistent.. UK uses commas for thousands, dot for decimal (and that's why the US and most anglophone countries use the same setup), Germany, Netherlands and France on the other hand favour dots for thousands, commas for decimal, so you see it used there.. and in a great number of their former colonies where the language and culture has stuck.
  • nils_ - Wednesday, November 11, 2015 - link

    Dates / Time are even funnier, that's also extremely inconsistent and can be very misleading. Think for examle a date like 12/11/2015, in some countries it'll mean the 12th of November while in others it will mean the 11th of December, and sometimes even the 2015th of November in 11 AD ;)

    I remember reading on the GTA IV in-game "Internet" a travel guide to Europe that said the months here have 12 days but there are 30 months a year or something to that effect ;)
  • powchie - Friday, November 6, 2015 - link

    let Johan do more reviews. been reading his stuff from late 90's and consider him the best then followed by Anand.
  • Ryan Smith - Saturday, November 7, 2015 - link

    Trust me when I say that if I could whip Johan any harder and make him work any faster I would be doing just that.;-)
  • juhatus - Saturday, November 7, 2015 - link

    When the Balrog showed up for work he had everyone fired.
  • ruthan - Friday, November 6, 2015 - link

    In summary should be something about software support, raw power is here, but software stack is
    very limited.
    PowerCPU is good for old legacy apps - SAP, Oracle etc.. but otherwise its dead end.
    I would like to see comparision of IBM LPAR virtualization against Xeon Vmware solution, or Oracle / MySQL benchmark on power vs. Oracle benchmark on Xeon.

    Server with Power even cant to run Crysis, or maybe some QEMU magic..
  • ruthan - Friday, November 6, 2015 - link

    Pleas Ad edit button like other civilized sites, i was hurry when i wrote it.

Log in

Don't have an account? Sign up now