Cycles Apple Metal device feedback

This is a fantastic development! Big thanks to Brecht, Michael and Apple for all the work so far (and what’s to come!). This single change has already made my new MPB M1 Max feel more valuable.

3 Likes

Hello all,
on M1 Mac mini 16ram:
GPU only = works fine for render and works fine when cycles viewport enabled when rendering.
CPU only = works fine but slower of course
CPU + GPU = render works ok and is the fastest of all three, when viewport is on wireframe, etc., but always crashes when cycles is enabled in viewport when I try to render.

The issue with CPU + GPU viewport rendering should be fixed in the latest build.

8 Likes

Thank you Brecht! Ok, now it works fine all gpu and cpu enabled cases. Only thing I’ve noticed since 3.0 and up is it seems to use way more ram on my m1 mac mini. Currently rending a default cube with HDRI background and it’s using almost 11gb! Normally blender uses 500mb. I’m thinking maybe this is what happens during rendering and I just never payed attention? (


Since m1 uses unified memory as both ram and vram?)

11 GB for the default cube seems a bit high for me, but higher ram usage for 3.0 and above is normal behavior since it changed from tiled rendering to full frames. If you have a bigger scene / higher resolution it helps to set auto tiling on and setting it to a lower value. That will reduce ram usage but puts more strain on your SSD because it caches every tile in a separate file and combines it when rendering is finished.

Now Hybrid Rendering works like a dream on my MacMini 16 GB 8 Core GPU+8 Core CPU. Thank you really much for all your hard work :wink: So far the Ambient Occlusion together with Texture Input is causing Rendering Issues. I`ll take a look if someone reported it as a bug or report it on my own :slight_smile:

1 Like

I have noticed something weird when rendering a certain scene.
When rendering the 2.8 splash screen demo file. “Spring”
The render time on Metal is extremely longer than the CPU only render time.
CPU render time ± 10-12 mins
Metal GPU+CPU projected render time about ± 11-12 HOURS

There are a hair/particles bugs in Metal Cycles.
For example the Koro scene is crashing when trying to turn on hair on the animal.

first off thanks for this! its awesome to be able to finally gpu render on macOS again!

one thing I notice when viewport rendering is that using the cpu is more responsive rendering that fist blocky sample when making changes/moving around. the gpu of course speeds up on the later samples.

it made me wonder, when both cpu and gpu are enabled for metal in preferences, is it possible to assign that first sample to the cpu for fast feedback when navigating around, and then switch over to the gpu to complete the remaining samples?

3 Likes

This may be a stupid question, but will Cycles get backend Metal support for Intel macs?

11GB seems too much. You could narrow down the problem, like check what the memory usage is in a default scene without HDRI, check if using Metal is what makes a difference, check if the memory usage scales with image resolution or is independent of that, etc.

1 Like

This can be reported as a bug in the tracker.

This also.

Support for Intel and AMD GPUs as found on Intel macs is under development, though it’s not yet known which range of cards will be supported.

4 Likes

It’s possible, however it’s likely highly scene dependent which device is faster for type of thing so it can backfire. For example on my NVIDIA + Linux desktop the GPU seems more interactive in basically any scene.

Probably the first thing to investigate would be if there is some unexpected bottleneck in GPU viewport display that can be solved, since there is probably no good reason for the GPU to be less interactive. The implementation is also still missing “graphics interop” support, which may help improve performance.

2 Likes

Thank you!

I’ve got a late 2019 Intel 16" MacBook Pro and am willing to be a tester when the time comes. Until then, I’ll keep an eye out. :slight_smile:

2 Likes

Just rendering the Blender default scene takes 150M on CPU, 1454M on GPU and then 150M again on CPU + GPU. Is that expected or a bug?

HDRI doesn’t appear to make a substantial difference if removed.

Rendering cube with HDRI in
Blender 3.0 (cpu only) = 3.33gb ram usage
Same scene in 3.1 with cpu = 3.41
Same scene in 3.1 with gpu only = 5gb usage
Same scene in 3.1 with cpu + gpu = 5gb usage
I was unable to recreate the ‘ram leak’ that caused 11gb before… I guess these results are relatively normal…

Speaking of RAM/Memory leak… Apple was having an issue with this on the ARM machines and wasn’t resolved until OS version 12.1. If you’re not on the latest MacOS version, which was released yesterday, try upgrading and see if that was the issue. This may not be related to Blender but more a prior Apple bug.

3 Likes

How did you manage to have GPU and CPU Metal enabled? Having both crashes my Blender 3.1.

Make sure you use the latest build from Blender Builds - blender.org the crash with CPU and GPU should be fixed.

2 Likes