Rockin' the eGPU with macOS: 668% CUDA performance increase

We still love our late 2013 MacBook Pro; it's specs are not all that far off from the late 2015 model and even the new 2016 MacBook Pro with Touch Bar isn't a huge departure from that in terms of overall system performance.

Desktop systems are where the performance gains can be achieved - especially with the full, desktop GPU options available to them but they don't have the portability which is often needed and it's not always the best workflow to run a desktop system alongside a laptop when required.

Laptop performance

Laptops now have incredibly fast CPUs, SSDs and RAM - not as fast as desktops but still; incredibly powerful machines are available.

When editing and grading in NLE's - particularly DaVinci Resolve; even the best laptops out there break into a sweat due to the fact that they use mobile class, lower power GPUs.

Our late 2013 MacBook Pro has the integrated Intel Iris Pro 5100 and a NVIDIA GeForce GT 750M with 2GB of GDDR5; which back in 2013 was pretty good for a laptop.

Editing 1080p video is buttery smooth but once you start grading or doing anything more than a simple edit; you rapidly notice that the machine isn't all it really could be - 1080p is only just manageable, but gets annoying when you're pushing it and 4K is just not doable.

The new MacBook Pro with Touch Bar has an option for a Radeon Pro 460 with 4GB which is certainly better than our 750M and will, no doubt perform extremely well but it still can't match a desktop GPU.

A number of Thunderbolt eGPU options have been made available to Windows based machines in recent years but macOS users have no off the shelf, retail-friendly option available to them.

That's not to say that you can't run an eGPU with your Thunderbolt equipped Mac - you can!

Here's our "About This Mac" dialogue (serial removed):

Yes; you do see that right - gone is the GeForce GT 750M and there's our GeForce GTX 980 Ti with 6GB DDR5!

The GeForce GT 750M is still working fine - iStat Menu shows both the 750M and the 980 Ti, it's just no longer in this dialogue which is kinda odd as we've disabled the Iris Pro via gfxCardStatus; though gfxCardStatus doesn't show the 980 Ti. Weird.

The GeForce 980 Ti is a powerhouse of a card - it's not the latest available GPU from NVIDIA but it is the latest that has a macOS Driver (no Windows here thanks) - the Titan X is also an option but the performance gains aren't enough and certainly don't justify the price tag compared to the 980 Ti.

Not only is the 980 Ti a massively better GPU with three times the amount of RAM as the 750M; whilst the 750M has 384 CUDA Cores; the 980 Ti has 2,816 CUDA Cores which is a massive performance increase for editing and grading.

Benchmark

The proof, as they say, is in the pudding. We ran the same Compute Benchmark with CUDA in Geekbench 4.

GeForce GT 750M

GeForce GTX 980 Ti

The 137,779 CUDA Score for the 980 Ti is incredible compared to the 17,947 that the 750M achieved. That gives us a 668% increase in CUDA performance!

Updates

30th October 2017 - We've finally got our eGPU running on macOS High Sierra 10.13 with the help of NVIDIAEGPUSupport.

29th March 2017 - Updated to macOS Sierra 10.12.4 and all is well with the eGPU setup.

How?

The late 2013 MacBook Pro has Thunderbolt 2 so we've used an AKiTiO Thunder2 PCIe Box which only supports half-length, full-height, double-width cards; the 980 Ti (we have the Gigabyte Windforce) is a full-length card so we've had to configure everything without the enclosure for now.

Now that this is working well; we'll remove the front-panel of the enclosure to allow the card to stick out which will make it much more stable than having the board propped up behind the monitor.

The other item that's necessary for a powerful GPU is a desktop PSU as the card requires two 8-pin PCIe power cables; we opted for a semi-modular Corsair in order to cut down on loose cables.

In order to get the GPU to work with our MacBook Pro; we used the Automate-eGPU script and you can't boot the machine with the Thunderbolt cable (to the eGPU) connected - you have to wait until the Apple logo appears and then connect it.

It would be nice to fit the PSU and GPU in its own enclosure so we may explore small desktop PC enclosures to see if we can find a nice and tidy solution. If not; the modified Thunder2 enclosure will do.

New MacBook Pro

There are users that have their eGPU working with the AKiTiO Thunder3 for the 2016 MacBook Pro with Touch Bar by using the tb3-enabler and the Thunder2 also works with the Apple Thunderbolt 3 to Thunderbolt 2 adapter apparently so we're all set for an upgrade in the future.

Right now; the performance of the late 2013 MacBook Pro is absolutely fine and with the eGPU running we have absolutely no need to upgrade to a new machine just yet (although they are nice).

If rumours around an updated CPU with 32GB RAM option later this year become reality; we may take the plunge at that time.