
Macbook eGPU Redux: Sticking a GTX 1080 in an AKiTiO Thunder2 - archagon
http://archagon.net/blog/2018/07/25/egpu-redux/
======
fermienrico
If you must have a macOS + nVidia GPU, I am running 2x GTX 1080Ti's for ML/DL
on a Hackintosh. They work flawlessly and I also enabled the iGPU on i7-8086
coffee lake CPU. So, now my monitors are driven using iGPU and they keep the
GTXs free to do other heavy lifting (Octane Rendering, Tensorflow, C4D, etc.)

Hackintosh community is amazing and I have a blazing fast 5Ghz 6-core machine
that beats the pants off any Mac barring the ones that cost over $10k.

Let me know if anyone wants my EFI.zip & exact specs.

~~~
pyro2927
Link to full specs? It's been years since I've maintained a ?Hackintosh and
getting sleep/audio working has always been a nightmare.

~~~
fermienrico
Specifications (I am just listing critical components):

    
    
      OS: MacOS High Sierra 10.13.6
      Intel i7-8086k (or i7-8700k)
      64GB DDR4 3200 RAM - G.Skill Trident Z 
      Gigabyte Z370 Gaming 5 Motherboard
      2x GTX 1080Ti
      1TB Samsung 960 Pro NVME SSD
    

EFI.zip:
[https://www.dropbox.com/s/yazadrzjx3k5ghx/EFI.zip?dl=1](https://www.dropbox.com/s/yazadrzjx3k5ghx/EFI.zip?dl=1)

In order to install, follow this Youtube guide. I am using APFS file system,
not HFS+:
[https://www.youtube.com/watch?v=8jKtfMWinvo](https://www.youtube.com/watch?v=8jKtfMWinvo)

When you have a bootable USB drive, copy all files from my
EFI/CLOVER/kexts/Other/* to the bootable drive's EFI/CLOVER/kexts/Other/*

Do not copy the full EFI folder on your bootable install USB stick. Just
install the OS first (make sure you're using iGFX video output in BIOS). Once
the system is up, copy and replace the whole EFI folder. Initially, the system
is going to be using iGPU. Install nVidia drivers using this guide, but most
of the items are already done for you in my EFI.zip. Still follow this line by
line: [https://hackintosher.com/guides/properly-install-nvidia-
driv...](https://hackintosher.com/guides/properly-install-nvidia-drivers-high-
sierra-10-13/)

Use CloverConfigurator to setup a new Serial number in SMBIOS section for
iMessage, etc.

BIOS settings on the Gigabyte:
[https://hackintosher.com/builds/gigabyte-z370-aorus-
gaming-7...](https://hackintosher.com/builds/gigabyte-z370-aorus-
gaming-7-hackintosh-build-guide/)

You can OC after everything is working well. Sleep, USB3.2 ports, USB-C port,
wifi, audio, ethernet, all PCIE devices, both GPUs, etc! Everything is
working!

Dual Monitors: I have 2x 4k monitors, one hooked up to the motherboard Display
Port and the other hooked up to the 1080Ti in the 1st PCIe slot. If I only
want to use nVidia cards, then I hook both monitors to the 1080Ti in the first
slot. Splitting both monitors on each 1080Ti is glitchy. Either connect both
to the same DGPU or connect one to iGPU and the other to a DGPU.

I removed the Gigabyte wifi/bluetooth module on the motherboard and replaced
it with the Broadcom BCM94360CD chipset you can buy on eBay ($69) for handoff,
airdrop, etc. Stick it in an empty 4x PCIe slot.

Conclusion: It is a pain in the ass to get it working, but if you use my
EFI.zip, I have installed this thing on another PC just today. I have liquid
cooled all components including both GPUs - I can't believe this is a thing!.
I also run linux and Windows triple boot in Clover Bootloader. It is so
beautiful.

Once it works, buy a copy of CarbonCopyCloner (CCC) and clone your main OS on
another drive. This way, if a future update fucks up your installation, there
is always a bootable backup. When you make a CCC backup, make sure to manually
copy EFI folder into it. Test if your backup works as a bootable drive (it
should be verbatim copy, just need to sign into your iCloud again).

Enjoy!

------
rememberlenny
I got a eGPU too for machine learning work. I have a 1080ti which I put in the
Akitio Node Pro. Its nice because it has a handle on the top, is portable, and
sits on my desk at home.

I also have a desktop machine that I built with another 1080ti in it. I use
the desktop machine as a remote machine for longer running jobs, but like the
convenience of running files directly on my machine.

If anyone has questions, I'm happy to answer.

~~~
edhu2017
I heard the eGPU gets throttled memory wise because there are less pcie lanes.
does this have a big impact on ML performance?

~~~
loser777
I would hope not; any reasonable implementation would try to keep as much data
on-board or on-chip as possible.

~~~
edhu2017
Edit: This thread is helpful.
[https://www.reddit.com/r/MachineLearning/comments/6tyyyt/d_d...](https://www.reddit.com/r/MachineLearning/comments/6tyyyt/d_dual_gpu_pcie_lane_bottleneck_for_machine/)

~~~
loser777
Yes, but the bulk of bandwidth should be eaten up by intermediate results
rather than the input data e.g., for imagenet, 224x224x3 tensors are tiny
compared to the intermediate activations that have to be moved around (and
saved during training).

Hopefully you would also only copy your model over once.

~~~
edhu2017
I see, but I think for areas like Reinforcement Learning or sequence models
though eGPUs would be significantly slower since you have to constantly
shuttle new data into the GPU from your computer.

------
chrischen
The article mentions it at the bottom briefly, but Gigabyte's gaming box
basically does what the hacked together Thunder 2 setup does and at a lower
cost ($100 premium over the graphics card alone):
[https://amzn.to/2NPyXEM](https://amzn.to/2NPyXEM).

It also comes with Thunderbolt 3 instead of 2. I'm not sure why the author
simply buy that unit and be done with it since it's probably cheaper than the
combined costs of all his parts and doesn't have a giant desktop power supply
sticking out the back.

~~~
archagon
Author here. Unfortunately, according to numerous accounts[1], the TB3 to TB2
adapter does not work when you're trying to use an Nvidia eGPU with a Macbook
that has an Nvidia dGPU. (Mine has the 750M.) Additionally, the gaming box
uses a custom card (so less resale value) and seems to have limited support
for other GPUs (thus reducing its use as a general-purpose case).

But yes, for most people, it's almost certainly the better buy. (Though it's
still not officially supported, apparently.)

[1]: [https://egpu.io/forums/mac-setup/problem-setting-up-aorus-
gt...](https://egpu.io/forums/mac-setup/problem-setting-up-aorus-
gtx1070-gaming-box-with-macbook-pro-late-2013-15-with-gt-750m/)

------
nottorp
Every time i see an article like this I get my hopes up that it's about the
eGPU behaviour on Mac OS. Turns out it's yet another Bootcamp article :(

~~~
oneplane
Works fine on macOS. Running a Akitio Thunder 3 with RX570 on a MBP 2015 13"
using a TB2-TB3 adapter, and on a MBP 2017 (also 13") without the adapter. On
the TB3 model it's plug and play, on the TB2 model you have to patch
DisplayWrangler to make it accept the lower bandwidth TB2 as it was patched
out by Apple. After that, the older MBP is plug and play too.

~~~
abakker
I have problems still with hot disconnecting the eGPU if there are monitors
plugged in to the eGPU. I can hit plug in, but can’t get a stable hot
disconnect. Is that working for you?

~~~
oneplane
I can hot plug-in & plug-out as well as the normal plugged-in while booting.

I tend to have the MBP in clamshell mode and connect my display to the eGPU
(4K LG monitors).

When I not-so-nice hot-unplug without telling the OS, it goes to the login
screen on the internal display + internal GPU, and when you log back in the
session is restored with a stern warning that hot-unplugging without telling
the OS is bad.

Note: by default you get no boot screen from EFI on the eGPU on TB2 models,
never did a boot on a TB3 MBP with the eGPU attached in clamshell mode,
probably doesn't do it there either. I suspect something with GOP or some
other EFI graphics protocol not enjoying TB3-TB2 adapters. Not much of an
issue for me; I can either do a FileVaul2 unlock on the internal display (or
blind), or do an fdesetup authrestart to bypass FileVault2 login on the next
reboot.

~~~
abakker
hmm. definitely not my experience there. When I say "safe eject eGPU" it's as
if my machine tries, then quits all my applications, and then starts
disconnecting the displays, and then detects the eGPU and displays and
immediately reconnects to everything.

I am using a TB2-3 adaptor and a mid 2015 MacBook pro with the same script you
are. I have an Akitio Node with an RX580. Mostly, it's great, but I basically
need to shut down to efficiently disconnect.

FWIW, having an eGPU on a laptop makes you really appreciate how few things
are really GPU accelerated in day to day life. (cough, cough, Fusion360 and
Lightroom).

------
bhouston
I recent got the Intel nuc with the amd Vega chip. It is small and quite
powerful. Much cleaner setup than this setup and less than 1300 USD with 32gb
of ram and a 512gb ssd. Play beatsaber all the time on it with a vive and
other steam games at 4k on the tv.

------
mrmondo
It works great too, here's my GTX 1080 MSI 'Gamer OC Edition' running as an
eGPU from back in 2016:
[https://i.imgur.com/jZgugWO.jpg](https://i.imgur.com/jZgugWO.jpg)

------
jotm
eGPU, huh, that brings back memories. So much time spent on trying to get a
9800GTX to work via ExpressCard on a laptop, the community work on the whole
thing was amazing.

~~~
rozenmd
and here I am in 2018 using my Lenovo X220's ExpressCard slot to run a GTX
960, only requiring plug-and-play.

~~~
yannovitch
I would love to have more details about your setup !

Is it on Windows ? Linux ? OSX86 ? When you say plug & play, that means you're
not required to reboot or do anything special at all ?

~~~
rozenmd
So you have to change all your BIOS settings for PCIE ports to enable hotplug,
then you just plug in the EXP-GDC Beast into the ExpressCard slot. Works on
both MacOS 10.12 and Windows 10.

It's a Lenovo X220 ThinkPad with the BIOS modification described here:
[http://x220.mcdonnelltech.com/](http://x220.mcdonnelltech.com/) The BIOS mod
allows me to run 16GB RAM at 1866 MHz. Also has a 500GB SSD running where the
3G card used to be, and swapped out the stock hard drive for another 500GB
SSD.

------
chewxy
from time to time I wonder about the cost benefit of using an eGPU vs just
sshfs+EC2's G2xLarge and I don't think there's ever been a time in the past
year where it was more worth it to have an eGPU to do ML dev work.

~~~
alliecat
In isolation, it's probably not, but most of the compute-intensive researchers
I know also have a need for a reasonably powerful laptop _anyway_. From there,
it's not a particularly expensive hop to getting desktop-grade performance at
your desk without needing an entire different machine. That, for me, is where
the eGPU value proposition makes sense.

------
Baal
Meanwhile, no OpenGL, no DirectX, no Vulkan. Indeed, they are “Pro” machines.

~~~
oneplane
The hardware has nothing to do with those software libraries if that's what
you are getting at. And when using Windows or Linux, all three are available.
On macOS, you currently only have OpenGL and Metal, and OpenGL is deprecated.

This does however not mean that you can't use the other API's, it just means
that when you are using macOS, you'll have to bring the API's with you, and
that is totally possible.

In most cases, you're not using those libraries directly and using an engine
instead, and most popular engines have support for the bigger API's, including
Mantle, Metal, DirectX, OpenGL, Vulkan etc. You simply select the build
profile of choice (or make a build that has it all) and build it to taste.

~~~
Baal
Please, don’t spread misinformation. macOS has not supported latest OpenGL for
quite some years. Linux is not supported either, by the way.

On top of that, if I buy a “Pro” machine, I want everything available and as
much choices as possible; and I want them on OS X, not on Windows.

As for Metal, it is just Apple leveraging iOS marketshare. Nothing more,
nothing less. It is a nice API, but one that nobody asked for.

Finally, speaking of engines, most productivity software does not use them, so
your point is moot.

The reality is that the software aspect of the Mac ecosystem is a mess since
Jobs died; and also the hardware is a mess for the last couple of years. Even
XCode and related tools are nowadays not top-notch compared to Linux-based
ones and modern Visual Studio.

~~~
woolvalley
By linux based ones, do you mean things like bazel? What tools are
specifically linux based?

~~~
Baal
Most development software in general: debugging tools like Valgrind, niche
compilers, servers, libraries not-so-well-tested on macOS, etc. In general,
macOS is currently in a sad state of affairs; when it could have been the best
development platform for most use cases. I actually had to switch to a Linux
setup for my research because of this. Unbelievable if you’d asked me 5 years
ago.

~~~
pokemongoaway
If we could get Adobe and a few other companies to port their software to
Linux - even if it costs as much - then I think there would be a cascade
effect that decreases the cost desktops & laptops, while increasing the
quality. You wouldn't need much more than a great windows manager after a main
proaudio & provideo app is ported. I highly doubt they would be that difficult
to port. Maybe +2 engineers per program per year max. And that extra bread
would be more than enough to cover their salaries! It feels like were further
off from ideal workstations these days, but we're not really... It's just that
Apple & Microsoft have been pushing various types of "power users" away from
what they've been asking for all along. Finally let some group of us move to
Linux comfortably. Linux has browsers, productivity & office, music & video
players, communication, utilities, and even games to some degree - covered.
But we need pro-audio & pro-video areas covered!

~~~
woolvalley
At this point, I think you should be rooting for the 'year of the android
desktop' more than the 'year of the linux desktop' if you want low cost OSes.

