This article took a long time to put together. There were many forces conspiring against me: from the great “GPU Shortage of ’18” to OS-update-a-phobia. Even with these obstacles, I was still able to experience the future of high performance eGPU graphics on a MacBook Pro using the Akitio Node Pro.
The Short Version
Plugging an Akitio Node Pro and Radeon RX580, into the Thunderbolt 3 port on a mid-range 2016 MacBook Pro makes a moderately complex 4K DaVinci Resolve project jump from 3fps to 23.976fps.
The Longer Version
A MBP from last year running a 4K video project in Resolve is an anxiety inducing exercise in system overload. If you plug in the Akitio box with a GTX1080 or RX580 GPU, you’ll sail in realtime as you stack nodes and OFX filters. This is a simple, singular solution to the plague of underperforming graphics in portable Macs. You need the latest build of High Sierra and be plugged into one of the two Thunderbolt 3 ports. The ones on the left side of the machine.
Right now, you can pick up a used 13” MBP for about a thousand dollars (non-touch bar, base model). The Akitio Node Pro lists for 350 dollars. If you can find one, the RX580 lists for around 500 bucks. Put those pieces together and you’ll have a system that will deliver the kind of performance found on more expensive system. You’ll need a proper display and a control surface if you’re actually doing daily color work.
The big difference here is that next year, you’ll be able to pull out the RX580 and replace it with the RX680 or the nVidia GTX2080. Or whatever new hotness shows up. Unlike the impossible-to-upgrade path of the iMac. And if you have to work in HDR 8K you can just add a new display. Suddenly every part is replaceable again.
Some Background
An external GPU (eGPU) is nothing new. Solutions have been floating around for the last few years, but almost exclusively on Windows. Thus far, OSX solutions involved the pain of having to launch Terminal and type in commands (the Mac readers *shudder*), along with the existential dread of “unsupported hardware” dead ends when you ran into a problem. Until now, an official, Apple-blessed eGPU solution was a fantasy.
With the release of High Sierra, something has changed in Cupertino, a signal change in the direction of opening up to third party hardware. In the last round of OS beta builds, Apple offered eGPU enclosures with the RX580 installed for developers to work with. A recognition that the future of high-end computing is in the highly volatile world of GPUs that double in performance every year, rather than CPU’s which have hit the wall in terms of rapid performance increase.
Used MacBook Pro’s become sort of semi-disposable boxes for running OSX and whatever graphics app you happen to be using to make a living.
The Akitio Hardware
The Node Pro is an elegantly designed unit that makes hardware nerds happy. There’s a ton of attention to detail in what is essentially a metal box that holds a GPU socket, power supply and fan. Here’s what I really liked:
1) Pop up handle that sits flush when depressed so that nothing will snag on it when tossed in the back of your car. When deployed, it is high enough that you can carry it wearing gloves.
2) The spring loaded screws on the top panel so you’ll never lose the screws because they don’t come out, and you can always tell when they are locked in place.
3) The extra tall GPU slot screws. My friend Clint Torres who was helping with the test noted that he has permanent scars on his wrist and forearms from reaching into computer cases to remove the tiny screws that hold cards in place. Why didn’t anyone think of this sooner?
What Went Wrong
For my experiment, Akitio sent me a Thunderbolt Node Pro and an AMD RX 580 Compute Engine GPU. I took the unit into the wild by walking into the everyday work world of a busy post facility. I thought I could plug the box into a producer’s MBP or an iMac used for After Effects work.
As it turns out, few in the professional world of post production have machines newer than 2015, and no one, I mean NO ONE is running High Sierra. One studio I checked in with was running Yosemite still, paralyzed by the technical issues of what happens when the delicately balanced, finely tuned networks of Macs suddenly stop working.
How Stu Saved the Day
I am fortunate that for the last fifteen years, I’ve been friends and filmmaking comrades with Stu Maschwitz (@prolost). Every film I’ve ever made has relied on a piece of software or expertise from Stu. When I hit the wall on this, I pinged Stu and he came through, again. At his ultimate tech nerd BatCave, aka “Prolostlandia” in Emeryville, Stu set me up with a 2016 13” MBP running the latest High Sierra build, Resolve 14 and a clip of 4K footage from a Sony A7S II (3840 x 2160/ XAVC S /100M).
Resolve struggled to play this clip back at 12-13 fps without any color correction applied. The native decoding and playback of the codec was a chore for the Iris Graphics 550 in the MBP. After some fiddling with order of operations we landed on the following, kind of obvious ways to make this work, and for Resolve to run off the Radeon 580.
1: Power on Akitio Node Pro
2: Plug in Thunderbolt 3 cable into Thunderbolt 3 port on MPB and Node Pro
3: Reboot MBP
Reportedly, this will change in later builds of High Sierra, where switching GPUs will be possible without having to reboot the system.
Once the machine was up and running, we checked the System Info and we could see the card recognized alongside the native Iris Graphics GPU.
After launching Resolve, it took some fiddling and I am still not entirely sure the order of operations. But using the manual graphics card selection function in the apps preferences, I was able to make Resolve select the RX580. After relaunching the app, it all suddenly worked like it should.
The 4K clip played back smoothly at 23.976 fps. So then we started stacking nodes. First a levels pass, then a bunch of parallel nodes, some qualifiers and curves. And finally a node with a Gaussian blur dragged up to bleary levels. Every new node added and still, 23.976 fps.
When I unplugged the box and played the clip with all the nodes enabled, not surprisingly performance dropped to 3 fps.
I got realtime performance of a multi-node grade on 4K Sony footage on a computer that would grind to a halt. What makes all this possible?
Two things — an OS that natively supports eGPU configurations like High Sierra; and Thunderbolt 3, a protocol that pushes data around at 40Gbps, double Thunderbolt 2’s bandwidth of 20Gbps. Bottlenecks are removed, allowing this kind of set up to work in realtime speed.
Where I am Biased
I really wanted this to work because I love inexpensive modular solutions to building post production hardware. This is how I have built editing and color suites over the last twenty-five years. A series of complimentary, integrated components easily swapped out when newer, faster pieces became available.
The lack of customization options has left me, and many other longtime users, frustrated with our beloved platform. Apple’s direction of building all-in-one boxes (iMac Pro, the MacPro “trashcan”, MBP) thwarts our modding instincts. Thunderbolt 3’s speed and High Sierra’s native support of eGPU’s breathes new life into the modular computing paradigm.
Where’s it Headed?
I expect to see more and more eGPU boxes showing up in post houses connected to MacBook Pro’s and iMacs. As TB3 becomes a more established connection-protocol this will be less of an esoteric solution. High Sierra adoption will take longer, so many users have been burned by updating too soon. The Akitio Node Pro makes a great reward for those will to move to a bleeding edge OS.