Cycles Apple Metal device feedback

Please keep feedback on this forum constructive. It is known that M1 series of GPUs aren’t as fast as the top of the line GPUs from the likes of Nvidia in Cycles. It is known that optimization in Cycles is less than ideal at the moment.

Work is being done to fix both of these issues. Apple will most likely continue to make new Apple Silicon devices with faster GPUs. Apple developers are also working on optimizing the Metal implementation for Cycles to improve performance.

9 Likes

Apple does have something known as “Metal RT”. From what I’ve read online, this is a collection of “tools” available for the developer to use to create a ray tracer, and Metal will “automatically” handle some of the optimization work related to getting better performance out of various GPUs that Metal supports (E.G. Intel, AMD, and Apple GPUs work quite differently internally and might need different values tuned in different directions to get better performance from each).

This is probably what you mean by a “library dedicated to optimizing ray-tracing calculations”. At the moment “Metal RT” is included with Cycles, but I believe it still needs some work done to meet feature parity with the alternatives in all areas Cycles supports. Some bugs also needed to be fixed the last time I checked. Further optimization may also be useful in making Metal RT run faster.

If what you mean by Apple making a “library dedicated to optimizing ray-tracing calculations” as in something like OptiX, which makes use of specialized hardware to speed up the task of tracing rays. Sadly, I don’t think that is happening at the moment. From what we know, none of the Apple Silicon GPUs have specialized hardware to speed up the task of tracing rays. As such, Apple can’t make a library to make use of them (because they don’t exist).

Apple is probably making a library like that for the future, assuming they’re adding specialized hardware for the tracing of rays to future Apple Silicon, or they might be working on that to add support for the specialized hardware for tracing rays on the RDNA2 AMD GPUs you can use with Metal when using the Mac Pro or Intel based Macs with e-GPUs. Or maybe this feature already exists and I haven’t seen any documentation for it in my searches?

Keep in mind that some of what I shared is just speculation or what I know based on what I could find online. And we probably won’t get a confirmation from a Apple developer on some of this stuff as they’re probably legally bound not to share some until a later date (E.G. If Apple is implementing hardware ray tracing accelerators in future Apple Silicon, a developer probably probably won’t be able to talk about it until Apple, as a company, makes an announcement about it’s existence).

5 Likes

So, I was watching some blender render testing on the new M1 Ultra, and it seems the GPU is not being utilised to its full potential.
In the party tug scene, only about 28w were being used, as compared to the 105-120w that are available to the GPU. Hence, the scores aren’t really “jaw dropping”.
Is this an issue that can be fixed by the team currently working on the Apple Silicon port?
Would appreciate it if someone could clarify what’s going on!

Link:

2 Likes

Yes, these results give me hope that more M1 power can be utilized with future Blender code / macOS updates.

1 Like

Don’t get this criticism of performance, Jason from Apple has already stated this first iteration of Metal for Blender was focused to have a working concept with quality, he went as far as saying that they discarded options with more than double the speed:

That this happening is quite amazing, and that it benefits all Metal devices , even platforms almost a decade old mind blowing and a refreshing change.

Not sure if it will ever be 3090 speeds but being able to leverage unified memory up to 128GB will surely make a difference.

Quoting a game developer:
“If you give a pile of gold to people some will always complain it’s too heavy”

11 Likes

Hi, I recently upgraded to macOS 12.3 with my 2020 Intel GPU MacBook Pro, so naturally I tried out the Blender 3.1 Metal backend.

I find that using an eGPU (Radeon Pro 580, via Apple approved Blackmagic eGPU), Blender 3.1 is able to render faster than CPU, but it beachballs a lot during viewport shading preview, it hangs for 5-10 seconds for every 1 out of 5 render attempts when we navigate in viewport, making it much less useable.

Using CPU device we don’t observe this problem, viewport navigation remain smooth. I wonder this is a known issue? Will eGPU be better supported?

1 Like

I’m not criticising at all! Please don’t misunderstand my motives. My objective was not to degrade blender + Apple’s accomplishment.
In fact, my comment sparks hope for the future that much better performance can, in fact, be achieved.

1 Like

Hi Devs! Can someone point me to a general support forum? I just got a 16" M1 Max MBP, and I suddenly can’t render in Blender 3.1 at all. :frowning: Even the CPU render fails, in that it does a complete render, but in the final step, the screen goes blank. (Perhaps this is a glitch in the denoising step?). Also, when I attempt GPU render, it physically works (albeit with the same final render black out as the CPU), but is significantly slower than the CPU render. Until I can get a render out at any speed, I can’t use blender on this computer, so any help at all is greatly appreciated, as I literally held off buying this laptop until 3.1 was released. (Until now, I’ve been using Blender on a Mojave Mac.)

Details:
MacOS Monterey 12.3
2021 16" MBP M1 Max (10 CPU cores / 32 GPU cores)
Blender version 3.1

Thanks so much for any advice. Please hook me up for the right forum. TSM.

  • Jeff

Just a quick update - I’ve tried rendering on simpler projects that don’t use a final denoise step, and I still have the issue that when the render completes, it blacks out the render window, leaving a blank image. Doesn’t matter if i’m using CPU or GPU.

Hi Jeff,

Submitting this as a bug report will bring the issue to the attention of the developers.

If you make use of the ‘Help’ menu ➔ ‘Report a bug’ option from Blender, the necessary system info and Blender version will be automatically entered for you. Alternatively, you can go to this page and manually enter your info.

Thanks.

I’m not a dev. but I would install blender 3.2 for testing and a fresh install. (to not interfere with 3.1 install )
Without anything, no addons, themes, just vanilla blender 3.2
Render the startup file with the cube.

If that works, then you can start switching on denoise etc. to see where it hangs.

Also take a look in preferences → System → Cycles render device
and use Metal .
Just try only cpu, then gpu and finally …both.

1 Like

Thanks, and just an update: I have now 100% confirmed the issue is with the denoiser. I took my projects that blacked out at the end, and removed denoising and - it works!

Does anyone know if Blender 3.0 significantly changed the denoiser?

What denoiser do you have available in the dropdown menu.
I only have Open Image denoise on my Intel mac.
You can use the denoising in the scene render tab, but need to have denoising data enabled in scene–>view layer.
Also you can use denoising node in compositing tab and need to have denoising data enabled in scene–>view layer, as well.

If you do the denoising manually with nodes (like superdenoise addon does) you need to use the latest version or look over your nodes for problems.

How do you even sure that Apple Silicon’s GPU isn’t as fast as Nvidia?

Woohoo! Now formally submitted as a bug report here:
⚓ T96656 Blender 3.1 CPU/GPU rendering denoise is broken on M1 Mac / Monterey

2 Likes

Of course! I didn’t think of that. Clearly the Intel denoiser I was using before likely wouldn’t exist on an M1 system, unless Rosetta can emulate the binary, which I see no sign of. Perhaps there is no denoiser supported for Apple Silicon?

The denoiser was just part of my blend file project as I brought it over from my Intel Mac. I can’t seem to find the information as to which denoiser it thinks it’s using, but I just switched to 3 so I’m learning some of the UI changes.

Well, if the GPU is slower than the CPU then that’s an implementation problem, since on Apple Silicon, clearly the GPU is far more powerful. However, I view this as a disappointment, but a secondary concern. It looks like my main issue now is finding a denoiser plug in that works on the M1 and enabling it in Blender 3

not a bug. you didn’t hook your image into your denoise node in the composite.

2 Likes

I would change your bug report asap, so the dev’s have more time…

I do all this bugtracking before I file a bugreport.

Anyways it’s solved.

2 Likes

Thanks to you guys for being so helpful. I just used the preferences to set to a metal device, and selected “GPU COMPUTE” in the render (vs GPU), and it worked (as long as I removed the denoise node). It was disconcerting, because that render mode gave almost no progressive feedback to see the render happening, but it ran a little over 3x faster than maxing out the 10 CPU cores - with a bonus that it left 7 CPU cores completely available for other tasks. So now it all comes down to finding a denoiser for M1.

1 Like