Blender - CPU or GPU - which to invest in?

TBH, Vega (despite being a disappointment for gamers) looks like it will be stellar for things like blender.

Did a “quick” test using the Classroom file from blender.org

Dual Xeon e5-2687w - 15.59.18
Single RX 480 - 16.07.17
Dual RX 480 - 7.30.63

Estimated Threadripper 1950x (36% faster then my xeon in Cinebench)
Threadripper 1950x - 11.43.00

pabellon_barcelona from blender.org

Dual Xeon e5-2687w - 10.31.19
Single rx 480 - 23.28.11
Dual rx 480 - 11.12.02

Threadripper esitmate - 7.42.00

Which OS are you using? The GCC builds on Linux are still faster on CPU.

Dual Xeon e5-2687w - 15.59.18
Single RX 480 - 16.07.17
Dual RX 480 - 7.30.63

1080Ti@1920Mhz - 5:06

Windows 10

As for that 1080ti… NICE…

LinusTechTips

on an Alienware Threadripper 1950X system:

BMW: 2:50.59
Classroom: 9:21.54

EDIT: Again, it should be noted that CPU performance on GCC builds should be better.

Just to complicate matters, some Houdini users are seeing 1080/70 performance on Ryzen when running OpenCL on the CPU. Typically with Intel there is no advantage to using OpenCL, though this doesn’t appear to apply with AMD’s newest architectures.

I don’t know if this will translate to Cycles or not.

Thanks BeerBaron on the GCC reminder.

Yeah, the 9m21s performance is… Impressive. do wonder what version of 2.78c they used in the benchmark, but i expect the default build on main page since they are not blender users…

Either way… 2.79 willl also adjust the OpenCL since it should be on par to CUDA now…

Still looking at render performance in current layout, CPU when doing lots of simulations, for general render invest in GPU’s with at least 8GB of memory

Now have to wait to see when someone releases 6(or 7) PCIE 16x slots, then that would be an awesome build.

I know it’s an older topic but I thought I would share and support some of your guy’s input.

If you use Cycles rendering, then indeed, invest most of the budget into a scary powerful GPU.

A GTX 1080 even brought my Pentium 4 641 from the grave and into some insane levels of graphics work.

That is to say, do not run out and buy a 13 year old PC and throw a top tier GPU in it, it’s for example’s sake.

The best systems are not necessarily the most powerful, but the most balanced.

A GTX 1080 paired with a Pentium 4 would likely not see its full potential because of limitations in the CPU’s ability to send the requested data (a very old model cannot send it fast enough to keep such a GPU crunching at full capacity).

If you want to get a GTX 1080 or a Vega, make sure that, at minimum, you have an Intel i5 or a Ryzen 5 chip.

So this is an interesting problem.

We built 64 x core i7 860s back in ~2010. Now, since then CPUs have gotten way faster as has PCI-E 3 (vs PCI-E 2). The main thing that we have found, is not the requested data transfer being slow, but the BVH and Compositing steps of the process… Sending the data / receiving the data usually fluctuates around 1sec-2 secs diffence on an old 860 vs new ryzen 1700x. Overall though, we are looking at around a difference of 20 seconds, with the old machines taking around 147 seconds on our production benchmark scene to 127 on the new machines.

Whether or not this speed difference is a big deal for people is another question. But for machines which are 7 years old its pretty decent rendering speeds.

Yeah, this is something I’ve thought about a lot too. One thing I’ve been wondering, kind of related is, what is the actual speed difference between having a high speed GPU like a GTX 1080ti in an 8X or even 4X slot compared to 16X. Would you even notice the difference between the data throughput. Because as you’ve pointed out, the sending and receiving of data seems maybe a bit negligible. It’s the BVH build time that really takes the most time as far as I can tell.

PCIE bandwidth should be much of a difference since scene is calculated from the memory that is onboard the GPU. So as you stated initial data transfer (which should be extremely quick even on low bandwidth connect should have to much negative impact.

For sure, 16x to 8x there shouldn’t be any difference, gaming is a good example of that. 4x… again just the initial data transfer, and then 2x/1x… that I have no clue. wonder if there are any tests when it comes to blender on this.

Looking at Wikipedia, table below shows very nicely.

So to fill in 12GB of Titan Xp (very rough calculations excluding any other data transfers with the device and guestimating 100% bandwidth utilization)
x16 - .75s
x8 - 1.51s
x4 - 3.04s
x1 - 12.18s

So that would be transfer from memory of the CPU to the GPU (peak).

[TH]PCI Express
version
[/TH]
[TH]Line
code
[/TH]
[TH]Transfer
rate
[/TH]
[TH=“colspan: 4”]Throughput
[/TH]

[TH]×1
[/TH]
[TH]×4
[/TH]
[TH]×8
[/TH]
[TH]×16
[/TH]

1.0

8b/10b

2.5 GT/s

250 MB/s

1 GB/s

2 GB/s

4 GB/s

2.0

8b/10b

5 GT/s

500 MB/s

2 GB/s

4 GB/s

8 GB/s

3.0

128b/130b

8 GT/s

984.6 MB/s

3.94 GB/s

7.9 GB/s

15.8 GB/s

4.0

128b/130b

16 GT/s

1969 MB/s

7.9 GB/s

15.8 GB/s

31.5 GB/s

5.0[SUP][[/SUP](expected in 2019)

128b/130b

32 or
25 GT/s

3938 or
3077 MB/s

15.8 or
12.3 GB/s

31.5 or
24.6 GB/s

63.0 or
49.2 GB/s

PCIE bandwidth may not matter now, but if Blender starts supporting out-of-core data (e.g. textures) any time soon, it will start to matter.

That result with RX 480 can’t be right.

Download 2.79 RC1 and use one tile per gpu. My time with R9 390x is 9m46s.

@ BeerBaron, fully agree that info I posted only applies to current situation. I so hope Blender implements that feature. that would mean even 4GB or 2GB cards would be useful again for larger scenes.

@ bigbad, yeah i’ll definitely test again with RC1. Test I did was on 2.78c as that was the most official before the RC release. m

Currently my system went bonkers so can’t do anything now until I fix that. Only thing I managed was to quickly test on CPU render, and it did show significant boost in rendering (dropped in to the 9m range), and expect improvement for the RX480s as well

I also noticed that in my setup (old xeon board) though both GPUS are in Physicial 16x slots, this is actually one GPU in PCIE 3.0 16x and second GPU in PCIE 2.0 4x slot. so i’ll do more testing between the two cards and test the differences between the two configs to validate my above statements of no difference :slight_smile:

PCI speeds doesn’t actually do anything I think. But prove me wrong because I’m not sure if I’m using 16x on my card right now.

I have ran a GTX 750 Ti in PCI-E 8x.

It was p a i n.

GTA V barely ran at lowest settings with 25fps. The performance hit is primarily real-time applications, so it does matter per situation.

Appologies Miss Tiacht, but I think GTA V on GTX 750 is the reason why it is a pain.

Most gaming benchmarks show that difference between 8x and 16x is less then 3% in most cases. Additionally it is not the same between Blender and Games. With Blender, scene is uploaded fully into the memory of GPU then frame is rendered. no PCIE transfer is done during the render. With games, each frame also goes from GPU memory, except when new object/material is loaded (when you turn around for example) so PCIE bandwidth is a critical thing.

and in general:

Blender - 0.016 FPS (one frame per 60 seconds - insanely fast and probably not complex scene)
Games - 60 FPS

which makes Games 3750 times more sensitive to PCIE bandwidth then Blender :slight_smile:

I just managed to barely rebuild the system and will test the two configs tonight if all goes well. So that will be a PCIE 3.0 16x and PCIE 2.0 4x setup