As a follow-up to my post on Thunderbolt eGPU for Macs back in September, this post details the next generation of Thunderbolt connectivity for most laptops including the Late 2016 MacBook Pro with Thunderbolt 3. It is now integrated to the same physical port as USB Type C. The whole industry and Intel itself touted USB-C as the connector that does it all. So much so that Apple decided to drop all existing I/O in favor of USB-C and Thunderbolt 3 in its newest MacBook and MacBook Pro laptops.
Apple announced the redesigned MacBook Pro at its October event. With the further slimming down of both the 13″ and 15″ MacBook Pro models, there are plenty of performance compromises. The weak selection of discrete graphics cards is at the top of the list. The most powerful option for a 15″ MacBook Pro is a Radeon Pro 460. This “Pro” GPU is a mobile variant of AMD’s desktop Radeon RX 460. It’s another overpriced, undervolted and underclocked graphics card offering from Apple.
An external graphics card (eGPU) is an ever-developing solution for Mac users who need more power. Many had hoped the new MacBook Pro with Thunderbolt 3 would finally bring official eGPU support to the Mac platform. Unfortunately this didn’t happen. So what’s a pro to do? One option is to get your soldering gun ready and build your own eGPU. Alternately you can buy one of the few available options (Razer Core or AKiTiO Node) with unclear support for the Mac environment. Either option you choose, you’ll need help in terms of software solutions to make use of an eGPU in macOS. eGPU.io is a community of external graphics card pioneers and experts who provide help and knowledge on this process.
As seen above the Thunderbolt 3 eGPU has largely the same components as the Thunderbolt 2 eGPU; AKiTiO Thunder3 is the only change. The few differences I could initially determine between the Thunder2 and Thunder3 are the Thunderbolt 3/USB-C board and silver paint on the enclosure. I removed the reference cooler from my RX 470 graphics card so that the board can fit inside the Thunder3 inner enclosure.
Once you have all the hardware assembled and powered on, the next challenge is to assist macOS in communicating and making use of the eGPU. MacOS Sierra actually has built-in Thunderbolt 3 checks to prevent the eGPU from fully functioning. My Thunderbolt 2 eGPU build functions normally and does not have this issue when connected to the 2016 MacBook Pro via a Thunderbolt 2 to 3 adapter.
In order to have a fully functional eGPU, these three steps must be completed in macOS:
- Step 1 – Communication between the Thunderbolt enclosure to the computer.
- Step 2 – Recognition in macOS that the enclosure contains a graphics card.
- Step 3 – Appropriate extensions/drivers for the GPU are loaded in macOS.
Kid2010 on Netkas forum discovered the Thunderbolt 3 handshake in IOThunderboltFamily.kext which regulates and prevents most Thunderbolt 3 enclosures from working with the Late 2016 MacBook Pro. Once this kext is modified (through a hex editor), step 1 is accomplished for macOS to successfully communicate with the AKiTiO Thunder3. This mod is also confirmed to work on the Razer Core.
Goalque has developed the automate-eGPU script and EFI app to take care of step 2 and step 3. Using this script enables my Late 2016 MacBook Pro to recognize the Radeon RX 470 GPU through the AKiTiO Thunder3 enclosure. It’s running at Thunderbolt 3 speed – 40 GB/s x1. I can get video output to an external monitor but there’s no graphics acceleration or Metal support. So far, the first two out of the three steps are complete. Due to hex editing of system files and other complications with Apple’s implementation of Thunderbolt 3 connectivity, it’s best to wait for further eGPU development on macOS. The external graphics card experts at eGPU.io are working on a solution to make macOS load the drivers for eGPU through Thunderbolt 3 connection.
2016 MacBook Pro Thunderbolt 3 eGPU – AKiTiO Node GTX 980 Ti Hybrid
I managed to get my hands on an AKiTiO Node to do some testing on the 2016 MacBook Pro. It is working very well in Windows 10 through Boot Camp. I could enable Nvidia Optimus to let the eGPU power the laptop’s internal screen. macOS on the other hand is a huge challenge. Apple made several changes in its latest macOS Sierra 10.12.2 update to make eGPU implementation a harder process.
1/10/17 Update: I was searching for additional documentation and firmware information on Texas Instrument TPS65983 controller and found a firmware update for the Node. The AKiTiO Node with its v22.214.171.124 version is now working in macOS. I’ve tried it with the Late 2016 13″ and 15″ MacBook Pro and they both work. The only modification is automate-eGPU script from Goalque.
- Unboxing of AKiTiO Node and first impression – https://egpu.io/unboxing-akitio-node-thunderbolt-3-enclosure/
- AKiTiO Node Review and The State of Thunderbolt 3 eGPU – https://egpu.io/thunderbolt-egpu-for-mac-2017-update-macos-sierra/
- automate-eGPU script v1.0.0, macOS eGPU Installation Tool – https://egpu.io/automate-egpu-v1-0-0-macos-egpu-installation-tool/
- Here’s 3DMark Time Spy benchmark score – https://www.3dmark.com/3dm/16739069
If you’d like to build an eGPU for your Mac, read my eGPU Beginner’s Setup Guide. For latest eGPU development, visit eGPU.io.
Share this Post