Where the Journey Starts - Hyperthreading
Hey guys, we’ve disabled our hyper-threading!
Although enabling it sounds like more fun, we decided to test how much of a difference it actually makes when it comes to rendering in V-Ray Next. Some people might be quite familiar with Intel’s hyper-threading technology which first launched back in 2002, and on first glance looks like your Intel CPU will do double the work. Or not double? Maybe some of you find this question quite familiar. How much of a speed boost does hyperthreading give when it comes to rendering? That is what we are here to find out when it comes to the world of CPU ray tracing.
The short description of hyperthreading is simple – it is a technology allowing one physical core of your CPU to act as two logical cores and therefore do more work simultaneously.
Imagine you are waiting in line in the supermarket. Only one cash registry is opened, it’s slow, everybody has to wait for the person before them to finish shopping. Ping-ping, they open another cash registry. Now half of the line can go to the other cash registry and maybe it will be twice faster for you. Or maybe not, depends on how many families shopping for the month are there in front of you. So, imagine hyperthreading like that.
The main question we are here to answer is… What is the speed difference when rendering with V-Ray Next on the same CPU with and without hyperthreading.
Setting Up the Picture
Let’s introduce you to our set up. We have the same machines (produced by the super trendy and friendly Bulgarian PC manufacturer Persy Ltd). With the same hardware. We’ve disabled hyperthreading (yes, from the BIOS) on one of them. We’ve installed the same software on both. We use the same scene files. The climate in the room is the same, the machines are just a couple of meters away from each other. Sorry, it’s not in a vacuum.
Now, let’s bring in the competitors:
The Hardware in short:
Intel Core i7-8700 @3.20 GHz, 6 Core, 12 Threads
32GB RAM – DDR4 2400
256GB SSD + 1TB of HDD
Nvidia RTX 2070 – 8GB GDDR6 – because we can 😉
Windows Pro 10 x64
V-Ray Standalone for x64 core version 4.20.00 from 14.06.2019
V-Ray Next Benchmark, hotfix 3 from 22.05.2019
The scenes used here are just examples of different rendering situations. The render time will always depend on the scene you are rendering.
The first item on our cash registry is the latest official Chaosgroup V-Ray Benchmark. It is a software designed and created to… well, benchmark. So it should be the fairest of them all:
As you can see, we were not lying about disabling our hyperthreading. One of the machines is running on 6 cores, while the other on – on visibly twelve. They are all engaged and all trying to do the work.
Behind the numbers
The score is here, 7 095 vs. 9 168. Yes, the test was done a couple of times just to be sure. The results were 7 095 vs. 9 102; 7 086 vs. 9 168; 7 086 vs. 9159. Very similar indeed.
But what do these numbers mean? The long version you can find on Chaosgroup’s official docs page but the short one is “internal statistics of the calculations per minute” displayed in samples… Which, let’s be honest, are not a real value… but according to Chaosgroup is a linear value, allowing us to compare results.
Since the original configuration of the CPUs we are testing was WITH hyperthreading and turning it off was the modification, let’s take the second score as 100%. So, the result from the V-Ray Benchmark is:
The CPU without hyperthreading worked at around 77% of its original capacity. Or in other words, the HT provides 29% more performance compared to no HT
But this is just one test based on one software. And it is testing software. Let’s compare a few real scenes. All of them were exported before and rendered for this test in V-Ray Standalone so there is no slowing down because of the original 3D platform and exporting geometry.
The render time here is:
No hyperthreading: 0h 16m 41.0s VS. Hyperthreading: 0h 14m 1.2s
Doing the math for you: 1 001 seconds VS. 841.2 seconds resulting in 84% of the original (with hyper-threading) speed or in 19% increase with HT.
The render time here is:
No hyper-threading: 3h 13m 8.8s VS. Hyper-threading: 2h 34m 9.8s
Doing the math for you: 11 588.8 seconds VS. 9 249.8 seconds resulting in 80% of the original (with hyper-threading) speed or in a 25% increase with HT.
These scenes have something in common. They are simple test scenes with V-Ray materials and without any dynamic geometry. Which led to an interesting question. What will happen if we use dynamic geometry (geometry that is not fully visible in the scene but is loaded in render time)?
No hyper-threading: 1h 43m 33.0s VS. Hyper-threading: 1h 26m 51.6s
Doing the math for you: 6 213 seconds VS. 5 211.6 seconds resulting in 84% of the original (with hyper-threading) speed. or in a 19% increase with HT.
Test Time Again - Hyperthreading Benchmark
Let’s test the same trees as above, but this time the original tree is exported as proxies and then instanced in the scene in the same way that the original geometry was.
No hyper-threading: 3h 13m 4.1s VS. Hyper-threading: 2h 34m 1.4s
Doing the math for you: 11 584.1 seconds VS. 9 241.4 seconds resulting in 80% of the original (with hyper-threading) speed or in a 25% increase with HT
As you can see, the results not only are almost the same with and without proxies (answering another question) but are the same time difference when comparing between with and without hyperthreading.
The sample scenes showed some numbers… but who in a real pipeline renders sample scenes? May be on Fridays just for fun, but on regular days we render real scenes.
No hyper-threading: 0h 38m 24.3s VS. Hyper-threading: 0h 30m 49.7s
Doing the math for you: 2 304.3 seconds VS. 1 849.7 seconds resulting in 80% of the original (with hyper-threading) speed in a 25% increase with HT.
No hyper-threading: 0h 19m 38.0s VS. Hyper-threading: 0h 15m 59.3s
Doing the math for you: 1 178 seconds VS. 959.3 seconds resulting in 81% of the original (with hyper-threading) speed in a 23% increase with HT.
Okay, so they’ve opened the new check out counter and you can see the results. When it comes to numbers, let’s not repeat the obvious. Let’s try to answer why, keeping in line with our shopping metaphor.
Imagine the cash registry is opened just for the small stuff. It’s one of those “a couple of items or less and none of the items should be a lawnmower” type of a cash registry. The big stuff, your new boat and washer, and dryer still need to be checked by the original processor. So you are still counting on those magical physical processors which we began with and they are still doing the heavy lifting. But the logical cores, the ones provided by hyperthreading are great helpers.
And as it is in life, so it is in rendering – you do you. Pick the hardware you like and is best suited for your individual needs. And have fun.
Some Notes Instead of Goodbye
1. ALL percentage values are based on the 3 symbols after the decimal point.
2. We are artiss and not mathematicians, so please do make your own checks or double-check our calculation if you want to be extremely precise. We highly encourage you to make your tests and share your results in a comment below.
3. Stay tuned to our blog for more interesting news.
Author: Kalina Panteleeva