Cycles Apple Metal device feedback

I must be doing something wrong here.
Is GPU not supported for Intel macs?

My specs.
Macbook pro 2018
2.6 GHz 6-Core Intel Core i7
16 GB 2400 MHz DDR4
Radeon Pro 560X 4 G
eGPU Radeon RX5700XT

I downloaded the intel version for Blender 3.1. Metal tab in preferences say there is no compatible GPU. I also updated os to Monterey.

Anyone help?
Cheers

Check to make sure it’s not the latest release version but that it’s the latest BETA; it should be version 12.3 not 12.2.1
Monterey 12.3 is required to run the Metal compatible version of Blender with Intel chips.

Something really messed up happened.

System: 2016 MacBook Pro w/ i7-6920HQ & Radeon Pro 460 (4GB), macOS 12.3 RC, Blender 3.1.0 (2022-03-09)

I was rendering the new 3.1 splash art. My GPU render is slower than CPU render and uses 2 times the ram.

CPU takes approximately 25 minutes and about 800 MB ram.

GPU takes 34 minutes and about 1540 MB vram.

It wasn’t the case when I test bmw27, classroom weeks ago with the beta build.

UPDATE
Also tested 2.93 splash art Still Life, AMD GPU is also slower than CPU and uses more than 2 times of ram

Only time that GPU is faster is my very simple beginner donut :rofl:, but meanwhile GPU used almost 4 times the ram of CPU

It is quite normal,The performance of AMD Radeon pro 460 / 560 is very weak。

Hello, 3.1 came out today and I am getting really slow viewport and renders using the M1 GPU, CPU is a lot faster for some reason but still pretty slow. anyone know why?

That is curious. I tried bmw27.blend in the 3.1 build on M1 Mac Mini. Both viewport and render were between 2-3x faster on GPU.

2 Likes

Can you elaborate on the reason why GPU render is slower than CPU in my case?

Hello,
Tested Blender 3.1 with macOs 12.3 on my MBP ( i7 - 15’ - 2016 - Radeon pro 460 - 16go ) and Blender 2.93 with my PC (i7 - 16go - Radeon VII) with BMW gpu (Cycle default 1225 samples).
Mac: 4’40s
Pc : 1’05s
:point_right: But I notice that with 300 samples on Mac, il’s visually (almost) the same result for the same time…

I will test on Mac with a eGpu and my Radeon VII.

I can see the difference!
Put both renders as layers on top of each other and set the top one to difference blending mode, in any of your photo manipulation software.
This way you will see the difference between the two images.
If both images are the same you will see just black.
But if they are different then you will see the different parts in the images as brighter pixels on the black.

But for untrained eyes it looks the same…

2 Likes

Hi Jason, I have a few questions for you :slight_smile:

  1. For M1 Metal architecture in cycles, how does it handle GPU processing? Does it do a 1:1 imitation of how a desktop PC would work, and only dump the processing into the GPU cores, or does it tap into the M1 neural engine and the AMX (Apple Matrix coprocessor) for assisting the GPU cores? Would the neural engine or AMX even matter much for Blender work? I know you were working hard just to get this finally released in a stable build, but I am curious if some of the unique perks of the M1 architecture were skipped to easily mimic a Windows PC workflow in order to not complicate the first round of Metal implementation.

  2. The current Blender render times for a M1 Max with 32 cores is around the processing of a 1660 Ti, while in other applications and raw benchmarks the 32c M1 Max should be around a 2080 or 3070. What challenges are present for getting Metal optimized for Blender, and will some of M1 performance in Blender always lag due to differences in design, or could we reach parity with nVidia cards that have similar TFLOPS after enough dev time?

  3. What’s the bare minimum we see the next wave of M1 Metal optimizations and additions reach a stable build? I am guessing since this just got released you and the team will miss the 3.2 dev cycle, so 3.3 is the absolute minimum, and potentially 3.4?

  4. Lastly, for someone with absolutely no programming skill in video and CGI processing, but with intermediate web dev skills and a math degree, what likelihood is there for someone like me to assist in helping M1 Metal in Blender get better? I have the drive, but not the skills, and I am worried I would just get in the way rather than help progress Metal in Blender. But if there’s a chance for me to do any important work I will serve the cause and learn anything I can to help your team o7

1 Like

Thanks for all the hard work on this! I assume the bleeding-edge OS requirements are because some changes needed to be patched in on the MacOS side of things. Is there something inherent to Monterey 12.3 that makes those changes only possible there, or can we expect to see them eventually rolled into updates for previous versions of MacOS, so those of us who lag an OS or two behind for any number of reasons can reap the benefits too?

macOS 12.3 is required for Metal GPU rendering with AMD graphics cards as macOS 12.3 includes some changes that resolves with the Metal implementation in Blender.

In theory these changes could be back ported to an older release. But I can not confirm or deny if this will happen as I am not a Apple employee.

Well, yeah, that’s what I’m asking! There are Apple folks and developers in this thread, the hope is that somebody here can confirm

  1. The structure of the renderer is much aligned with the existing path taken for CPU and CUDA, with little leverage of Apple Silicon’s more unique architecture as of yet. We do leverage the unified memory architecture to avoid duplication of resources, but there’s much more to do on this front and we’re keen to see that leaned on in CPU+GPU rendering modes. There is certainly scope to use the Apple Neural Engine for denoise in the viewport too.

  2. Correctness has definitely been a focus for us, with ensuring we get solid results and a renderer users can use and rely on. This is intended to be a tech demo - it is aimed to be a tool that users can use all day every day. Some of the early R&D we’ve done has resulted in render performance being more than doubled over where it is now, but taking these prototypes and productising them is another matter, and takes significant time. The avenue to performance on Apple Silicon means driving the GPU in the way that is most efficient for its architecture. Each GPU architecture is different though, and we need to be able to cleanly drive our GPUs more efficiently but without compromising the existing performance on other GPUs.

  3. Optimisation is going to be an ongoing effort, rather than a task we tackle just the once, and I’m hoping the team can see some improvements land in every release. We have big ambitions.

  4. Math is a solid foundation to build upon, but the programming skills on top of that need to be gained! I certainly appreciate the sentiment. Outside of programming, we would always welcome testing and feedback to ensure we’re getting as much coverage as possible, and that nothing gets missed, along with efforts to help centralise and coordinate this feedback making it from the wider community back to us.

19 Likes

12.3 is first OS version that will enable Cycles to work on AMD GPUs, and I believe it was 12.2 that enabled Apple Silicon GPUs. The changes to make this happen were substantial. We’ll look to keep these OS versions as the minimum versions required by Cycles going forward.

6 Likes

That was such a wonderful answer, thank you! To expand a bit on my third question, since it didn’t get fully answered.

Here is the Blender notes for 3.2. “Render & Cycles” is red, meaning no changes in the notes.

https://wiki.blender.org/wiki/Reference/Release_Notes/3.2

When your team has completed more optimization for M1 Metal, will notes pop up in the Render & Cycles section detailing changes your team has made, or in another place in the release notes? Or will some work not get a write up in the notes, but still be felt by users? I just want to keep my eyes out for the good work your team is doing :slight_smile:

2 Likes

Hi,

I tested M1 Max on Blender 3.1 but it doesn’t perform well. The performance of M1 Max was quite similar to 1660TI. Do you think optimizing Metal on Blender is not yet complete since 3D softwares are heavily optimized with Nvidia’s CUDA?

This decision is made by the Blender/Cycles developers, not Apple employees. Although a Apple employee could ask for something to be included in the release notes.

If I was to take a guess a note will probably be added to the release notes saying something along the lines of “Metal for Cycles has received performance optimizations in this update, offering improved performance on X hardware (the improvements might be different depending on if it’s Apple Silicon, AMD GPUs, or something else)” and then maybe provide a graph showing the difference.

1 Like

Yeah, your scenario of how they mention improvements in the notes what I figured too. I was just looking at 3.2 notes and since there is no mention of any Metal improvements, I thought that meant there won’t be anything new come the stable release of 3.2 in June. I know that once Blender devs enter bcon 3 they cease new features and only focus on debug and prep for release, and that deadline will be approaching soon.

All of that is why I guessed 3.3 is the earliest we see further adjustments. Although I am not certain on how Blender handles dev cycles… since they’d be optimizing Metal would that fall under bcon 2 (ie. optimization)? Or does optimization in bcon 2 just mean optimization of the new elements introduced in bcon 1?

Things are typically added to the release notes once they are added to that version of Blender. So don’t expect any notes in that section until significant changes are actually made.

Cycles follows the same rules as Blender in terms of development. As such, it also experiences all the same limitations in each BCON.
However, some times exceptions can be made for certain features. Metal optimizations will probably be possible to incorporate in BCON 3.

1 Like