13
$\begingroup$

I've got a Macbook Pro Retina, Mid 2014, and I'm trying to get GPU rendering to work on it.

I've downloaded Cuda, the GPU shows up in user preferences, and I've selected GPU Compute under the render settings. I've ran the BMW benchmark on both my CPU and GPU.

It takes about 4 minutes 25 seconds using my CPU, and 7 minutes 39 seconds on my GPU. I've downlaoded iStat Menus, and check my CPU/GPU usage during the render. The GPU is being used, but the memory usage is a tiny fraction of it's total memory. I have a 750m graphics card, which should be substantially faster than the CPU.

Why isn't the GPU rendering faster than the CPU?

Screenshot of render:
screenshot

$\endgroup$
13
  • 2
    $\begingroup$ Sounds like your settings aren't optimalized. Under the "performance tab" in the rendering settings, set tiles to "center", X to 512 and Y to 512. Try benchmark on GPU again. (I'm assuming you're using cycles) $\endgroup$
    – Einar
    Feb 5, 2015 at 18:48
  • $\begingroup$ Also, try to render 1 frame, then take a screenshot of the renderscreen and post it here. $\endgroup$
    – Einar
    Feb 5, 2015 at 18:54
  • 4
    $\begingroup$ What CPU do you have? GPUs in Macs are garbage, so I am not surprised with your results. Can you render the old bmw scene and compare with this: blenderartists.org/forum/… ? $\endgroup$ Feb 6, 2015 at 13:11
  • 1
    $\begingroup$ @MarcusBuffett Yeah the i7 seems right to perform better than the mobile gpu card. But your GT750M should render the old bmw scene in about 3:30 mins. Are you sure those 7:47 mins are for the old scene with 1 car? If your performance is off then its probably a driver issue. $\endgroup$ Feb 6, 2015 at 18:12
  • 1
    $\begingroup$ My bad, I messed up, the one car render is actually just shy of 3:00. So I guess you're right, the i7 is just faster. $\endgroup$ Feb 7, 2015 at 0:21

2 Answers 2

16
$\begingroup$

I'm not sure if you really have any problem here.

Actually here is common mistake made by a lot user that are not into programming. GPU rendering is NOT faster than a CPU rendering, GPU rendering is SOMETIMES faster than CPU rendering, depending on the rendering algorithm it's used and your graphic card your OS the pipeline etc... Blender don't use the classic graphic pipeline that the graphic card are design for (they use raytracing instead of rasteriser) so from this point all is about how fast and efficient are every computation.

A little technical explanation:

GPU programming is one of my favourite topic in computer science so I will try to keep it simple. Actually CPU is A LOT faster than a GPU for one computation (it's like comparing a smartphone with a desktop CPU, really) and GPU love making all at same time (that why you can use Shift+Z in cycle). Basically if computations are not dependant between them GPU win. -> So usually the problem is more you have dependency between computations slower it will be on the GPU.

What I think for your benchmark:

You use some shader/material/effect that make dependency between computation or make the GPU wait for some synchronisation and make you GPU render less efficient...

So blender has some optimisation problem ? No, if GPUs were just more efficient than CPU what is the point of keeping CPU ? No it's just a trade, you just have to know what you want to do with your scene (render optimisation you know...). Btw that's why blender keep CPU rendring... The GPU is really better when you want real time using a lot a tricks that use parallelism a lot. that's also why a PS4 has 1.6 GHz but with 8 cores (for parallelism again) but that's an other story

-> You really have to keep in mind I just THINK this is the problem I don't have your scene to deeply test it or trying track which effect/shader/material take time.

Hope that help. =)

[EDIT]

Even if what I said is true I said also "I just THINK this is the problem" and in fact I've just tested your scene and checked this thread: http://blenderartists.org/forum/showthread.php?239480-2-7x-Cycles-benchmark-%28Updated-BMW%29

On my AMD AMD A8-5550M APU with Radeon(tm) HD Graphics Processors (AMD Radeon HD 8550G) with my gentoo kernel 3.17.8-r1 and proprietary driver fglrx 14.12-r3, I have:

  • GPU: 5:54:54
  • CPU: 17:09:73

which is a pretty huge gap... So now look at the thread, for OSX you have 2 type or person:

  1. GPU-> not supported
  2. GPU-> slower

So the scene is obviously GPU optimised and what I said before is not the real problem here. The thing you have to know is OSX has a lot of problem with his graphics drivers (for exemple if you try openGL you are stuck with openGL 3.3). From here what I think is your render time difference is due to Apple's drivers. I don't work for blender or Apple so I am not 100% sure but from I see here the problem seems obviously coming from Apple. To be really sure I will make some test on the Mac of my room-mate soon.

PS: I'm really surprised the graphics driver from Apple was that bad, I thought it was just "bad" not "really bad"

$\endgroup$
8
  • $\begingroup$ the benchmark file is here: blenderartists.org/forum/… $\endgroup$
    – user1853
    Feb 7, 2015 at 19:28
  • 1
    $\begingroup$ I've tested the benchmark and saw the thread on blenderartist.org and even it what I said is true that seems not the problem here because a lot of user reported a better render time on GPU than on CPU (so the scene is obviously optimised for GPU). But here an other thing we have to consider is the OSX driver, that are so much out of date (they only support open3.3 for exemple) and here I see every OSX GPU text are either unsupported either slow PS: on my AMD AMD A8-5550M APU -> GPU: 5:54:54, CPU: 17:09:73 $\endgroup$
    – newin
    Feb 8, 2015 at 13:48
  • $\begingroup$ @newin If the scene does render faster on gpu, that does mean the gpu has more computational power not that the scene is gpu optimized! If you test GT750M vs. i7 on windows or linux you will get similar times..this is not that much about drivers also! This particular gpu does not have that many cuda cores and has small core clock speeds, it is simply no match for the i7 - thats the bottom line and the reason.. $\endgroup$ Feb 8, 2015 at 15:04
  • $\begingroup$ I've posted this answer because in my last project I achieve to optimise GPU rendering without changing CPU rendertime. But I agree with your point and I am actually testing on a mac and checking with FLOPS on system I've tried. But comparing CPU ang GPU is like comparing hundreds motorcycle with one truck. $\endgroup$
    – newin
    Feb 9, 2015 at 10:42
  • $\begingroup$ My test result: OSX: gpu NVIDIA GeForce GT 750M 2048 Mo (aka 722.7 GFLOPS) -> 10:11 Linux: AMD Radeon HD 8550G (aka 263.7 GFLOPS) -> 5:54:54 So even if the Linux graphic card is obviously less efficient the Linux is faster so there is a problem with Apple's Graphic implementation. but like you said @Jerryno this not ONLY the problem $\endgroup$
    – newin
    Feb 9, 2015 at 11:51
1
$\begingroup$

He a little explanation about GPU vs CPU rendering in Blender:

GPUs are generally faster than CPUs, if you spend the same amount of money for them, so if you spend 500 dollars on a GPU and on a CPU, the GPU will be several times faster in rendering.

CPUs are made to run code, not to crunch numbers. They CAN, but they are more inefficient doing it. GPUs on the other hand (using OpenCL from AMD and such and CUDA / Optix (proprietary to Nvidia) can't run normal app code, but are perfectly suited for number crunching. That is for tasks that can be massively parallelized, as GPUs have thousands of tiny little cores (Nvidia calls them CUDA cores on their GPUs).

If you consult Blender Benchmark, you will notice in order to match the performance of a Nvida RTX 3090 GPU that will nominally cost you around 700 dollars, you will need to spend several THOUSAND dollars for a CPU that can best that. (these prices are not accounting for the insane inflation of cost that Covid 19 has wrought on electronic components)

enter image description here

Now notice that even a 64 Core AMD Threadripper (a insanely powerful) CPU can't keep up with a Nvidia RTX 3090 GPU, while still costing a multiple of the GPU. Also note that Blender Benchmark is unbiased, it is a real life benchmark that uses Blender to just render scenes, it is the same as if you rendered these scenes yourself.

So you could say that CPUs and GPUs are just different, they both have specializations and best work together, CPUs for running code and general computing and GPUs for either displaying graphics or raw super fast number crunching of calculation loads that can be massively parallelized.

In Blender, if you want to render scenes really fast, you will need to go with a GPU, right now as of this writing (July 2021), looking at Blender Benchmark https://opendata.blender.org/ the GPU to buy would be a Nvidia RTX 3080 or 3090 or even 2 or 3 of them, since they can be used together. There is no CPU currently that can best this kind of raw calculation performance by for example 2 RTX GPUs.

Power consumption is also interesting: Your typical powerful 12 core AMD CPU for example will draw up to 100 to 120 watts of power. A single Nvidia RTX 3090 will use up to 350 to 400 watts of power. As they say: there is no free lunch.

It is also noteworthy that it seems that CUDA (which allows calculations to be done on the shader cores of the GPU, instead of using it to display game graphics) is now being replaced by the much faster OPTIX. It seems that the huge success of Nvidia cards in the render field was due to Nvidia highly optimizing CUDA and now OPTIX for this. Nvidia had an obvious incentive to do this since CUDA is proprietary and can only be used with Nvidia GPUs.

When using OPTIX on RTX cards, the new tensor cores can be utilized and sometimes the speed can be double of what CUDA would deliver on the same card, see this article here:

Blender 2.81 Benchmarks On 19 NVIDIA Graphics Cards - RTX OptiX Rendering Performance Is Incredible https://www.phoronix.com/scan.php?page=article&item=blender-281-optix&num=1

This might sound biased towards Nvidia, but it is actually just stating facts and AMD has made great leaps in the last GPU they released, closing the gap to CUDA performance, but not OPTIX performance yet, it is expected that they will use a faster replacement for OpenCL in the future, so we can all be hopeful for more competition in the market.

$\endgroup$
5
  • $\begingroup$ I thought it is crypto mining, not Covid-19 pandemic, that caused the GPU price spike? In the light of this (and especially considering the power usage) it would be nice to see a per-dollar benchmark. Also, for some reason, I've seen plenty of CPUs on render farms, not just GPUs. $\endgroup$ Jul 9, 2021 at 10:00
  • $\begingroup$ The mining boom has not helped, but covid 19 is the main reason: You could not buy these GPUs AT ALL when they came out, for months (and you still can't really). The ones that could be bought became super expensive and crypto miners, making a lot of money with them, were the only ones buying and driving the price up even more. Remember that we had crypto mining before covid and never did we have a doubling or trippling of the price because of it. $\endgroup$ Jul 10, 2021 at 16:44
  • $\begingroup$ But other commodities didn't skyrocket in price 🤔 $\endgroup$ Jul 10, 2021 at 17:07
  • $\begingroup$ No, all electronics have gotten more expensive and PC components especially. There has been a huge shortage in electronic components, didn't you notice? You could not get PS 5s a while and CPUs were sold out, RAM was hard to get, GPUs were only available in very small numbers, right after the RTX 3080 was announced, a really amazing powerful GPU. $\endgroup$ Jul 10, 2021 at 22:08
  • $\begingroup$ There was a specially high price rise in GPUs because covid 19 predicetd less demand, then they release some very amazing GPUs and demand was already high, but much higher still because people stayed home. Steam for example listed more play hours than ever before in its history and many PCs were due for an upgrade. I personally think also that GPUs are much more fun money spent: Pretty much any game is GPU limited, you never get enough FPS, so a stronger CPU does not matter, but money spent in a GPU is pure eye candy and will make a game look much better. So for this, there is more demand. $\endgroup$ Jul 13, 2021 at 21:42

Not the answer you're looking for? Browse other questions tagged or ask your own question.