MetalBench: Benchmarking tool for raw GPU compute performance
MetalBench is a small tool designed to measure the raw compute performance of your GPU. It runs a realtime path tracer (a form of graphics rendering capable of photo realism) using GPU compute under Metal.
You can download it here:
- Download the app and unzip. It doesn't need installing, you can run it from wherever you want.
- Run it.
- Wait. It will adjust the number of 'rays' it uses to draw the scene until it's running at ~30fps. The "MRays / second average" value at the bottom right will slowly change - when it reaches a fairly stable value (my card seems to reach ~1100), this is your score.
That's it. If you try it, please post your (approximate) score and system details 🙂
Details for the curious:
Since this is basically a single program running entirely on the GPU, it needs nearly zero bandwidth unless you're using an eGPU to power an internal display instead of external (then it'll need bandwidth to show the image). As such, it'll be immune to thunderbolt limitations and will measure pure compute power.
While it's running, it'll render a simple test scene at 720p. It starts out using 20 rays per pixel, then adjusts that number up or down until it's running at 30fps. More rays per pixel = less noise, but since each ray takes a certain amount of processor time, the number of rays it can handle scales linearly with GPU performance.
On my iMac (Radeon 295X) I get about 1100 MRays/sec.
On a 13" Macbook (Intel 4000 I think), just 50 MRays.
Note that on very slow systems you might see odd colours (the scene sometimes turns purple on my MacBook). That's because the renderer is 'spectral' - each ray has a unique colour. If it can only handle 1 ray per pixel, that's only 1 colour (which happens to be purple). Any slower than that and you're down to zero rays, so it'll probably show a black screen.
(Updated the file - forgot to code sign it. If it warns about it being an "unidentified developer", please download it again 🙂
@flint-ironstag Not at present - having only 1 GPU I haven't seen any point 😉 I might do so when I've got an external card though.
Do you have an eGPU on that box by the way? (I'm not 100% sure the app will detect it correctly, so it'd be handy to know).
Not this one. Probably order Akitio Node Pro this week, and look for a good deal on the GPU. The 6c is tied up on a job.
MP 6,1 | 4c | d700
MP 6,1 | 6c | d500
Thanks for the tool! Just benchmarked my system:
Around 3215 MRays/sec average
Personally, I think Metal is shaping up to be something really powerful. Unfortunately it will take a few years for more widespread adoption or better implementation.
Around 3215 MRays/sec average
...I really need a new GPU!
And yes, Metal is a great API. I switched over to it a year or so back, OpenGL is painful when I need to go back to it. Metal is very powerful and efficient, but it's also very terse - you can get a lot done with surprisingly little code.
- ~200 MRays/sec average on the 650m internal card
- ~2530 MRays/sec average on the 1070 eGPU
If only it worked with metal games 🙂
Nice tool! I'm running a 15-inch 2017 MBP with Radeon Pro 560 + Intel HD Graphics 630, connected to a Sonnet eGFX 550 with NVidia GTX 1080 Ti driving a Dell P2415Q monitor. Running the tool on the GTX 1080 Ti I get on average about 5000 MRays/second on the P2415Q screen; and about 4700 when I drag the Metalbench window to the MBP screen (still powered by the GTX 1080 Ti).
I just wish that my Trainz game would use the GTX 1080 Ti, but it chooses the Intel HD Graphics 630 when the eGPU is running... So, I'm waiting for Apple to fully support eGPU.
Mostly for no reason other than “for the hell of it”, I tried this on iOS. An iPhone X gets around 27.5 MRays, not bad!
Video of it (running a mix of scenes) here: https://twitter.com/_psonice/status/950416699278446592
Correct! Just set mine up today - got 4,250MRays/s under 10.13.2, and 4,700 under 10.13.3. (This is with a 1080TI card, via thunderbolt 2). That's a good speed up!
Time to test 10.13.4 Beta
4450 Mrays average on Vega 64 inside Venus
PS: add an icon to your bench, maybe use Metal logo as base
Or better Metal 2
- ~185 MRays/sec average on the 750m iGPU
- ~2550 MRays/sec average on the 1070 eGPU
Intel Skull Canyon NUC (NUC6i7KYK) - 1TB Samsung 960 EVO NMVe SSD, 32GB memory
Apple Mac Pro 2013 - Deca-core 3GHz Xeon, 32GB memory, 1TB Apple SSD, D700 dGPU, eGPU shared with above NUC.
AKiTiO Node - EVGA GTX 1080Ti SC2 Gaming, Corsair SF600 PSU, Cougar Vortex HDB 120 case fan
2013 17" ASUS G750JS (TB2) + [email protected] (AKiTiO Node via Apple TB3->TB adapter) + Win10
5500+ seems to be killer! Now... how did you embed that image? 🙂
Edit: Never mind... I was impatient and my internet was being slow to load the photos I had linked to.
I'm now getting ~5400 on my 1080TI, 27% faster than when I first got it - it seems nvidia are improving the drivers fast. Hopefully AMD & Apple will improve that side too 🙂
@psonice, are you still around? I can't seem to get this app to run on either my eGPU or the Iris 650 in my 13" MBP (with eGPU disconnected). The app launches and recognizes the eGPU or GPU, but is stuck at a white screen.
Perhaps a macOS update broke it? I'm on 10.14.1.
Sorry about that, fixed it a while ago but forgot to update the archive! Try downloading again, it should be working now.
I plan to update it properly at some point, this is using an old version of my renderer and I made a lot of speed and quality improvements since then 🙂
i am very far behind for this discussion, but for a chance you'll read this. i just put my new external graphic card for a test, and it is working. (radeon rx vega 64 on sonnet breakaway box 650W - average of 4800). those of you who want to choose external GPUs. command i on the app (on mac) to get its info, and check 'prefer external GPU'.
Mac Pro (Early 2008)
EVGA GeForce GTX 680 Mac Edition
macOS Mojave 10.14.3
1070 MRays/sec average.
Not Metal-specific (maybe one day we'll get a MoltenVK Blender, no time soon though), but you guys may also want to check out Blender Benchmark for Mac and PC, which tests GPUs directly and with pretty rigorous scene cases.
Thunderbolt 3 Macs, Sonnet and OWC eGPUs, 4K Displays, etc