Cycles Apple Metal device feedback

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

Does anyone have experiences they can share for Cycles Metal performance related to:

Single Radeon Pro Vega II vs. Two Single Radeon Pro Vega II (or a single Duo card).

Much appreciated!

Hey everyone!
This is a little unrelated, but i’d love it if blender could integrate the Apple Object Capture API. It uses the LiFAR scanner on the newer iPhones and iPads to create a 3D photo-scan of any object!

1 Like

A couple of things don’t make sense.

  1. Blender isn’t available on iOS so how would the implementation work?
  2. There actually is already software that can do this, but it is paid. It works by taking a lot of photos of an object and creates a 3D model of it.
  3. If there is an app on iOS that do a photo scan of an object, you probably could just scan, export it to OBJ or something, and import that into blender. I don’t own an iPhone/iPad with a LiDAR, so I couldn’t test it.
2 Likes

Blender and Apple, thank you for the hard work. Been testing macOS 12.3 beta and Blender 3.1 release candidates on my iMac (Retina 5K, 27-inch 2019) with i9 and Vega 48 and cycles is very responsive in the viewport, and between metal support and denoise render times have dropped like a rock (sorry that this is qualitative and not quantitative.)

I am very intrigued how this will perform on a Mac Studio with an M1 Ultra - I’ve already seen a tiny hint of this with metal on my iMac, but I was wondering, will/does Blender’s implementation of OpenImageDenoise take advantage of the M1 neural engine, or the hush-hush AMX coprocessor? If so, I can imagine truly brutal performance coming out of these machines,

7 Likes

The Apple object capture API runs on a Mac. It’s a photogrammetry engine built into the OS that can make use of the extra depth information from photos taken on iOS devices.

Since it’s OS-specific, I imagine it would fit better as a Blender plugin than a built-in integration.

4 Likes

Hi,

I just upgraded my MacBook Pro to the latest OS (12.3) and it has a AMD 5500M. I saw the Blender 3.1.0 release note saying that the AMD chips can now be used in Cycles but I don’t find that to be the case. When I clicked the check box next to my graphic card in the system tab in the preference, the GPU option indeed lit up in the property’s menu. But when I press the render button in the viewport, no rendering shows up but a line of text showing that first time loading render kernel may take a few minutes. I waited for about 1 minute or so and still nothing shows up. The results is the same when I press the F12 key. I also tried restarting the computer and the problem still exist. Now I am not sure if the Blender 3.1.0 could use AMD chips with Cycles. Could any of the guys in the development team take a look into this problem, please?

Thanks

Please wait 4-10 minutes for Blender to finish kernel compilation. Every time you update Blender or macOS, you need to recompile the kernel. Be patient.

2 Likes

Technical question:

Has multi GPU via Infinity Fabric Link been implemented? If not, will it be?

And: is it even relevant for render compute performance? For simulations?