I have a 2021 16" MacBook Pro with a 10-core M1 Pro, 16-core GPU, 16 GB RAM and 1 TB SSD, currently running macOS 12.1.
I was testing the Blender 3.1 Apple Silicon build from 16. December. I’ve also tested the build from 17. December, but that one immediately crashes on any scene when rendering with the GPU.
I have noticed some strange behavior about the refreshing of the blender render window, specifically the status text line (Frame/Last/Time/Remaining/…) and the rendered image:
- When rendering only on the CPU, the status text line and rendered image is updated for each sample.
- When rendering only on the GPU, both the rendered image and the status text line are rarely updated. It shows sample 1, a minute later the view updates and shows sample 7, another minute later sample 18, for example. For a different scene, if would show sample 1, then minutes later sample 78.
- When rendering on both CPU and GPU, the status text line is updated on every sample, but the rendered image is only updated on every odd sample.
My expectation was that the status text line is updated at least once per second and the rendered image each time a new sample has been computed.
Here are some performance numbers for some scenes. Unless specified otherwise, I’ve left the settings at default for comparability.
Some things I’ve noticed:
- The GPU utilization as shown by the macOS activity monitor is only around 20% to 40%, while the CPU utilization gets close to 100%
- CPU+GPU is usually fastest, except for the Blender 3.0 Splash Screen where it is 1.5% slower than GPU only
- The indicated Mem/Peak values are significantly higher for GPU compared to CPU
- CPU+GPU requires more memory initially, thus the Peak value is higher than the Mem value. This is not the case for CPU or GPU only.
- The indicated Mem/Peak values for CPU+GPU are most likely wrong, because the memory utilization as shown by activity monitor is significantly more, similar to the GPU only case
Click to expand benchmark results
Blender Splash Screen 3.0 - Sprite Fright
- CPU: Time: 02:01:17, Mem/Peak: 2550 MB
- GPU: Time: 01:00:03, Mem/Peak: 4900 MB
- CPU+GPU: Time: 01:01:34, Mem: 1640 MB, Peak: 1950 MB
Blender Splash Screen 2.93 LTS - Still Life (tiling disabled, OpenImageDenoise enabled)
- CPU: Time: 00:09:03, Mem/Peak: 630 MB
- GPU: Time: 00:07:34, Mem/Peak: 2010 MB
- CPU+GPU: Time: 00:04:59, Mem: 115 MB, Peak: 595 MB
Blender Splash Screen 2.83 - PartyTug 6:00AM (switched to Cycles)
- CPU: Time: 00:06:25, Mem/Peak: 773 MB
- GPU: Time: 00:03:45, Mem/Peak: 2420 MB
- CPU+GPU: Time: 00:02:51, Mem: 568 MB, Peak: 671 MB
Monster Under The Bed
- CPU: Time: 00:10:36, Mem/Peak: 668 MB
- GPU: Time: 00:06:01, Mem/Peak: 2090 MB
- CPU+GPU: Time: 00:04:33, Mem: 543 MB, Peak: 563 MB
Lone Monk
- CPU: Time: 01:09:08, Mem/Peak: 659 MB
- GPU: Time: 00:29:09, Mem/Peak: 1990 MB
- CPU+GPU: Time: 00:21:19, Mem: 424 MB, Peak: 548 MB
Car Demo
- CPU: Time: 00:03:16, Mem/Peak: 140 MB
- GPU: Time: 00:01:19, Mem/Peak: 1390 MB
- CPU+GPU: Time: 00:01:06, Mem: 105 MB, Peak: 117 MB
Classroom
- CPU: Time: 00:07:20, Mem/Peak: 630 MB
- GPU: Time: 00:03:24, Mem/Peak: 2100 MB
- CPU+GPU: Time: 00:02:44, Mem: 273 MB, Peak: 605 MB