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

  • Mondozai - Friday, November 6, 2015 - link

    That's too bad. Over 90% of the world population exists outside of it and even if you look at the HPC market, the vast majority of that is, too.

    The world doesn't revolve around you. Get out of your bubble.
  • bji - Friday, November 6, 2015 - link

    He never claimed the world revolved around him, he just made a true statement that may be worth consideration. Your response is unnecessarily hostile and annoying.

    I would expand Jtaylor1986's statement: I believe that most if not all native English speaking populations use commas for thousands grouping in numbers. Since this site is written in English, it might be worthwhile to stick to conventions of native English speakers.

    It's possible that there are many more non-native English speakers reading this site who would prefer dots instead of commas, but I doubt it. Only the site maintainers would know though.
  • Jtaylor1986 - Friday, November 6, 2015 - link

    You read my mind :)
  • mapesdhs - Tuesday, November 10, 2015 - link

    Talking to numerous people around Europe about tech stuff, I can't think of any nation from which someone used the decimal point in their emails instead of a comma in this context. I'd assumed the comma was standard for thousands groupings. So which non-US countries do use the point instead? Anyone know?
  • lmcd - Friday, November 6, 2015 - link

    Cool on the rest of the world part, but the period vs comma as delimiters in the world numeric system ARE backward. In language (universal, or nearly), a comma is used to denote a pause or minor break, and a period is used to denote the end of a complete thought or section. Applied to numerics, and you end up with the American way of doing it.

    ^my take
  • JohanAnandtech - Saturday, November 7, 2015 - link

    Just for the record, this was not an attempt to nag the US people. Just the mighty force of habit.
  • ZeDestructor - Saturday, November 7, 2015 - link

    For future use: just use a space for thousands seperation (that's how I do it on anything that isn't limited to a 7seg-style display), and confuse readers by mixing commas and periods for decimals :P
  • tygrus - Sunday, November 8, 2015 - link

    I like to use a fullstop for the decimal point, an apostrophe for the thousands separator, a comma for separating items in the list, don't start a sentance with a digit.
    One list of numbers may be : 3'500'000, 45.08, 12'500.8, 9'500. Second list : 45'000, 15'000, 25'000. We use apostrophes when we contract words like don't so why not use it for contracting numbers where we would otherwise have the words thousand, millions, billions etc ?
  • mapesdhs - Tuesday, November 10, 2015 - link

    I have a headache in my eyeballs! :D
  • ws3 - Friday, November 6, 2015 - link

    North America is on the majority side on this issue. Asia, in particular, is almost completely on the side of using a dot as the decimal separator and a comma to put breaks in long numbers.

    Get with the program Europe. The world doesn't revolve around you!

Log in

Don't have an account? Sign up now