CPU Tests: Rendering

Rendering tests, compared to others, are often a little more simple to digest and automate. All the tests put out some sort of score or time, usually in an obtainable way that makes it fairly easy to extract. These tests are some of the most strenuous in our list, due to the highly threaded nature of rendering and ray-tracing, and can draw a lot of power. If a system is not properly configured to deal with the thermal requirements of the processor, the rendering benchmarks is where it would show most easily as the frequency drops over a sustained period of time. Most benchmarks in this case are re-run several times, and the key to this is having an appropriate idle/wait time between benchmarks to allow for temperatures to normalize from the last test.

Blender 2.83 LTS: Link

One of the popular tools for rendering is Blender, with it being a public open source project that anyone in the animation industry can get involved in. This extends to conferences, use in films and VR, with a dedicated Blender Institute, and everything you might expect from a professional software package (except perhaps a professional grade support package). With it being open-source, studios can customize it in as many ways as they need to get the results they require. It ends up being a big optimization target for both Intel and AMD in this regard.

For benchmarking purposes, we fell back to one rendering a frame from a detailed project. Most reviews, as we have done in the past, focus on one of the classic Blender renders, known as BMW_27. It can take anywhere from a few minutes to almost an hour on a regular system. However now that Blender has moved onto a Long Term Support model (LTS) with the latest 2.83 release, we decided to go for something different.

We use this scene, called PartyTug at 6AM by Ian Hubert, which is the official image of Blender 2.83. It is 44.3 MB in size, and uses some of the more modern compute properties of Blender. As it is more complex than the BMW scene, but uses different aspects of the compute model, time to process is roughly similar to before. We loop the scene for at least 10 minutes, taking the average time of the completions taken. Blender offers a command-line tool for batch commands, and we redirect the output into a text file.

(4-1) Blender 2.83 Custom Render Test

 

Corona 1.3: Link

Corona is billed as a popular high-performance photorealistic rendering engine for 3ds Max, with development for Cinema 4D support as well. In order to promote the software, the developers produced a downloadable benchmark on the 1.3 version of the software, with a ray-traced scene involving a military vehicle and a lot of foliage. The software does multiple passes, calculating the scene, geometry, preconditioning and rendering, with performance measured in the time to finish the benchmark (the official metric used on their website) or in rays per second (the metric we use to offer a more linear scale).

The standard benchmark provided by Corona is interface driven: the scene is calculated and displayed in front of the user, with the ability to upload the result to their online database. We got in contact with the developers, who provided us with a non-interface version that allowed for command-line entry and retrieval of the results very easily.  We loop around the benchmark five times, waiting 60 seconds between each, and taking an overall average. The time to run this benchmark can be around 10 minutes on a Core i9, up to over an hour on a quad-core 2014 AMD processor or dual-core Pentium.

(4-2) Corona 1.3 Benchmark

 

POV-Ray 3.7.1: Link

A long time benchmark staple, POV-Ray is another rendering program that is well known to load up every single thread in a system, regardless of cache and memory levels. After a long period of POV-Ray 3.7 being the latest official release, when AMD launched Ryzen the POV-Ray codebase suddenly saw a range of activity from both AMD and Intel, knowing that the software (with the built-in benchmark) would be an optimization tool for the hardware.

We had to stick a flag in the sand when it came to selecting the version that was fair to both AMD and Intel, and still relevant to end-users. Version 3.7.1 fixes a significant bug in the early 2017 code that was advised against in both Intel and AMD manuals regarding to write-after-read, leading to a nice performance boost.

The benchmark can take over 20 minutes on a slow system with few cores, or around a minute or two on a fast system, or seconds with a dual high-core count EPYC. Because POV-Ray draws a large amount of power and current, it is important to make sure the cooling is sufficient here and the system stays in its high-power state. Using a motherboard with a poor power-delivery and low airflow could create an issue that won’t be obvious in some CPU positioning if the power limit only causes a 100 MHz drop as it changes P-states.

(4-4) POV-Ray 3.7.1

V-Ray: Link

We have a couple of renderers and ray tracers in our suite already, however V-Ray’s benchmark came through for a requested benchmark enough for us to roll it into our suite. Built by ChaosGroup, V-Ray is a 3D rendering package compatible with a number of popular commercial imaging applications, such as 3ds Max, Maya, Undreal, Cinema 4D, and Blender.

We run the standard standalone benchmark application, but in an automated fashion to pull out the result in the form of kilosamples/second. We run the test six times and take an average of the valid results.

(4-5) V-Ray Renderer

 

Cinebench R20: Link

Another common stable of a benchmark suite is Cinebench. Based on Cinema4D, Cinebench is a purpose built benchmark machine that renders a scene with both single and multi-threaded options. The scene is identical in both cases. The R20 version means that it targets Cinema 4D R20, a slightly older version of the software which is currently on version R21. Cinebench R20 was launched given that the R15 version had been out a long time, and despite the difference between the benchmark and the latest version of the software on which it is based, Cinebench results are often quoted a lot in marketing materials.

Results for Cinebench R20 are not comparable to R15 or older, because both the scene being used is different, but also the updates in the code bath. The results are output as a score from the software, which is directly proportional to the time taken. Using the benchmark flags for single CPU and multi-CPU workloads, we run the software from the command line which opens the test, runs it, and dumps the result into the console which is redirected to a text file. The test is repeated for a minimum of 10 minutes for both ST and MT, and then the runs averaged.

(4-6a) CineBench R20 Single Thread(4-6b) CineBench R20 Multi-Thread

 

CPU Tests: Simulation CPU Tests: Encoding
Comments Locked

229 Comments

View All Comments

  • Otritus - Monday, May 17, 2021 - link

    And that's why if there is an option to run AVX-512, I'd like to see it being run. Also with the massive efficiency deficit of Tiger Lake, and AVX-512 requiring even more power, it's plausible Cezanne might be competitive at the same power limits. Although with NAMD, I'd expect Tiger Lake to top the chart.
  • vyor - Monday, May 17, 2021 - link

    That is not how AVX512 works.
  • mode_13h - Monday, May 17, 2021 - link

    Depends on how well the compiler can vectorize your workload or if you're using something like OpenMP. However, if I really wanted max performance from AVX-512, I'd be using the intrinsics.

    BTW, it's worth noting that you can't simply disable AVX-512 with build-time compiler flags, for software that performs runtime code-generation (usually via LLVM). Many popular deep learning frameworks fall in this category.
  • mode_13h - Monday, May 17, 2021 - link

    > Even Skylake-X and cascadelake-X there is a noticeable improvement in performance in AVX-512

    Not always. Clock throttling is so bad in Skylake SP & Cascade Lake that you need an AVX-512 -heavy workload to see a net-benefit.
  • zaza - Monday, May 17, 2021 - link

    I actually ran that test myself in my university lab. we ran AI workloads and vectorized workloads on avx2 and avx512. Running avx512 on all threads would result in a significant clock drop, but despite this, I was testing 20% faster than AVX 256 (they were using the same power ~200 watts). When you mixing several workloads (AVX and non-AVX), you don't see the same drop unless more than 50% of the cores are running AVX. Granted this is anecdotal evidence, but I think the power budgeting across the chip was working well to maximize performance.
  • mode_13h - Monday, May 17, 2021 - link

    > I actually ran that test myself in my university lab. we ran AI workloads and vectorized
    > workloads on avx2 and avx512. Running avx512 on all threads would result in a
    > significant clock drop, but despite this, I was testing 20% faster than AVX 256
    > (they were using the same power ~200 watts).

    Depends on your network architecture. We saw the opposite, and this was confirmed by engineers at Intel. To resolve the problem, they sent us a patch to disable AVX-512.

    > When you mixing several workloads (AVX and non-AVX), you don't see the same drop
    > unless more than 50% of the cores are running AVX.

    I'm talking specifically about AVX-512. And when I had a lot of threads using it for maybe only 10% of the time (different scenario than above), I also saw clock drops big enough to decrease overall system throughput.

    This was all on 14 nm CPUs, so I'm eager to try Intel's 10 nm chips.
  • mode_13h - Monday, May 17, 2021 - link

    > I'm conflicted on your decision to omit AVX-512 on NAMD.

    Let's remember that this is a notebook processor. Sure, it's what most Intel-based mobile workstations will probably use, but most users of this processor aren't going to be recompiling their apps with -march=native.

    In other words, I think the case for testing AVX-512 on this CPU is a lot weaker than on server CPUs or even desktop processors.
  • ballsystemlord - Monday, May 17, 2021 - link

    Good point!
  • Techtree101 - Monday, May 17, 2021 - link

    Dwarf Fortress looks like a great benchmark tool for judging heavy single threaded AI/Simulation games?

    Could I use these benchmark results with it, loosely, to extrapolate what this CPU can do for Civilization VI, Cities Skylines, Minecraft, etc.?
  • Techtree101 - Monday, May 17, 2021 - link

    And Dolphin 5.0 I suppose too.

Log in

Don't have an account? Sign up now