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$
  • 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 '15 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 '15 at 18:54
  • 3
    $\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$ – Jaroslav Jerryno Novotny Feb 6 '15 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$ – Jaroslav Jerryno Novotny Feb 6 '15 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$ – Marcus Buffett Feb 7 '15 at 0:21
15
$\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$
  • $\begingroup$ the benchmark file is here: blenderartists.org/forum/… $\endgroup$ – cegaton Feb 7 '15 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 '15 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$ – Jaroslav Jerryno Novotny Feb 8 '15 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 '15 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 '15 at 11:51

protected by David Dec 23 '16 at 22:33

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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