Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Synchro3

macrumors 68000
Original poster
Jan 12, 2014
1,987
850
This is an instruction for OS X 10.8 Mountain Lion and OS X 10.9 Mavericks

Additional instructions for OS X 10.10 - 10.12 in post -> https://forums.macrumors.com/threads/building-external-gpus-on-mac-egpu.1893792/page-2#post-22013272

Thanks @ hkoster1 !
---------------------------

Below a guidance for eGPU's on Mac, because I've already done the work.

Pics below in post #12

A) Software

From the software point of view, it's easy. It's the same procedure and working with all OS X versions since Mountain Lion. However, I recommend to make a backup of your OS X before, if you are not used to do things like this. In Yosemite you have to disable KEXT signing before. And of course in El Capitan disable 'Rootless' too.

1) Choose the right NVidia web driver: http://www.macvidcards.com/which-driver-should-i-install-for-my-new-gpu.html and edit Nvidia web driver installer to pass system checks: https://forums.macrumors.com/thread...k-nvidia-drivers.1853748/page-5#post-20878271

2a) Up to OS X 10.9: Edit three KEXT's for tunneling Nvidia drivers PCI Express functionality to Thunderbolt:
/System/Library/Extensions/NVDAStartup.kext
/System/Library/Extensions/IONDRVSupport.kext
/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext

2b) OS X 10.10 and newer: Disable SIP and edit six KEXT's for tunneling Nvidia drivers PCI Express functionality to Thunderbolt:
/System/Library/Extensions/NVDAStartup.kext
/System/Library/Extensions/NVDAStartupWeb.kext
/System/Library/Extensions/IONDRVSupport.kext
/System/Library/Extensions/NVDAResman.kext
/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext
/System/Library/Extensions/GeForce.kext


Look for sections beginning with <key>CFBundleIdentifier</key> and add just before </dict>, the two following lines :

<key>IOPCITunnelCompatible</key>
<true/>


Details for these three KEXT's attached below with this post.

Save the changes. I recommend TextWrangler for doing this the easiest way (the Internet-version, not the AppStore Version!).

After editing the three KEXT's you have to rebuild cache:

Terminal: sudo nvram boot-args="kext-dev-mode=1 nvda_drv=1"

than restart and if not working yet, see the system log and try

Terminal:
sudo touch /Extensions
sudo kextcache -system-caches

Install the Nvidia CUDA driver, then shut down the Mac. Attach now the eGPU case via Thunderbolt to the Mac and start the Mac.* You will see the screen once Nvidia drivers are loaded, no boot screen. You should now see the graphics card in the system profiler with correct name, e.g. 'Nvidia GeForce GTX 680', and all is fine. **

* As eGPU are not hot pluggable you have always to completely shut down the Mac for connecting or disconnecting the eGPU. Once disconnected the Mac behaves like you never changed anything, for example takes the old monitor preferences. Connect the eGPU again and main monitor will be the one connected to the eGPU. It's like connect and disconnect an external display to the Mac.

** The above procedures work instantly for all Thunderbolt 1 Mac's if done right, for some Thunderbolt 2 Mac's I refer to Netcas: http://forum.netkas.org/index.php/topic,11122.0.html


B) Hardware (needs more work)

Graphics card
All Nvidia GPU's supported from OS X or Nvidia web drivers. As you don't see the boot screen till Nvidia drivers are loaded you can use a vanilla PC Nvidia card, doesn't matter. AFAIK MVC has developed but not yet released a special eGPU EFI which can deliver boot screens.

Thunderbolt to PCI Express adapter

- When I began my first eGPU the only affordable adapter was the PE4L (PCIE-expresscard): http://www.hwtools.net/Adapter/PE4L V2.1.html together with Sonnet Echo ExpressCard Pro http://www.sonnettech.com/product/echoexpresscard34thunderbolt.html You get an i/o speed around 400 MiB/s because of the restraints of PCIE expresscard. Enough for Desktop/2D, playing HD-movies via iTunes @1440p, and games @1'080p, maybe also 1440p (never tried).

This is possible because Nvidia drivers enable PCI-e compression. At least with only PCI-E 2.0 x1 you can get 65% - 80% of the performance of PCI-E 2.0 x16: http://www.computerbase.de/2011-08/test-grafikkarten-mit-pcie/4/

PCI-Express Scaling: https://www.techpowerup.com/reviews/NVIDIA/GTX_980_PCI-Express_Scaling/

- My second adapter was the board of the ThunderTek/PX (Thunderbolt 1): http://www.firmtek.com/seritek/thundertek/chassis.php As it delivers only 25 Watt to the graphics card you have to connect a powered riser cable with capacitor between graphics card and Thundertek/PX:

aaaa.jpg

You get an i/o speed around 800 MiB/s. Enough for all applications, even at 4K displays.

- Best solution now is the board of the Akitio Thunder2 PCIe Box (Thunderbolt 2, compatible to Thunderbolt 1): http://www.akitio.com/accessories/thunder2-pcie-box You get around 1'400 MiB/s, and lose ~3% of the performance compared to same graphics card connected to internal PCIE x16 in cMP.

PSU
An ATX-PSU appropriate for the graphics card (with PCI E 6 and 8 pin connectors)

Powered riser
A powered riser with capacitor provides 75W to the GPU and also enough power to the Thundertek/PX or AKiTiO board, you don't need the Thundertek/PX or AKiTiO's power adapter at all. http://www.ebay.com/itm/24cm-PCI-E-...512?pt=LH_DefaultDomain_0&hash=item2a385e3908

SWEX
To put the ATX PSU into operation: http://www.hwtools.net/Accessory/SWEX.html

Case
I recommend an Elite 130 ATX case. You have all parts in one enclosure which is under the table and no one see's it. The Mac Mini on the table is connected to the eGPU via a 2m Thunderbolt cable.

If you use a PCI-E riser cable you eventually have to drill an opening into the ground of the case: http://lab501.net/egpu-connecting-external-video-card-notebook-diy-implementation/all/1/


Some pics: https://forums.macrumors.com/attachments/img_0386-jpg.537343/ and https://forums.macrumors.com/attachments/box-1-png.530866/ and https://forums.macrumors.com/attachments/gtx-770-mac-mini-png.530868/


This is not a complete and conclusive guidance. I am open to suggestions and ideas.


My opinion
Macs with iGPU HD 4000 or other weak GPU's benefit the most from eGPU. For example with my GTX 770 OpenGL (Unigine Heaven, setting extreme) performance is around 1250% faster than the internal Intel HD 4000 of the Mac Mini 2012. And this was with my first weaker PE4L adapter. Also having CUDA. Smooth like an internal graphics card: https://forums.macrumors.com/threads/diy-egpu-for-mac-mini-2012-osx.1772495/page-2#post-20735233

GTX 770 Mac Mini.png


An other benefit: You can connect a 4K monitor with a Kepler card or 5K monitor with a Maxwell card.

Further useful links:
https://www.techinferno.com/index.php?/forums/forum/83-diy-e-gpu-projects/

----------------------------------
Update December 2016:

In the meantime more eGPU enclosures are available or in prospect:

- Akitio Node: https://www.akitio.com/expansion/node
Note: only working with Thunderbolt 3 enabler: http://forum.netkas.org/index.php/topic,11654.msg34210.html#msg34210 and http://forum.netkas.org/index.php/topic,11654.msg36297.html#msg36297

January 2017: Afaik the Akitio Node is supported by OS X, but OS X won't detect any GPUs. No workaround yet.

- Razer Core http://www.razerzone.com/gaming-systems/razer-blade-stealth (only working with Thunderbolt 3 enabler)

- Aktion Thunder 3: https://www.akitio.com/expansion/thunder3-pcie-box (only working with Thunderbolt 3 enabler)

- Bison Box 2s: https://bizon-tech.com/us/bizonbox2s-egpu.html/

- Bizon Box 3: https://bizon-tech.com/us/bizonbox3-egpu.html/ (presumably only working with some sort of Thunderbolt 3 enabler)

PE4C v4.1: http://www.hwtools.net/Adapter/PE4C V4.1.html (will be released in February 2017, prices are excessive at the moment because of warehouse relocation)

Note: All Thunderbolt 3 solutions are not plug and play, they have to be enabled and there are issues with Maxwell cards. Native Thunderbolt 2 enclosures seem to be better so far.
---------------------------------------------------------------------------------------------------
Update June 2017: In macOS High Sierra eGPU natively supported. No kext editing, no hacks, just plug and play.

https://forums.macrumors.com/thread...cially-announced.2048480/page-3#post-24658446

https://forums.macrumors.com/thread...cially-announced.2048480/page-4#post-24660316


New case: http://www.sonnettech.com/product/egfx-breakaway-box.html

Update November 2017:

New eGPU's from Sonnet: http://sonnettech.com/product/egfx-breakaway-puck.html

- Sonnet Radeon RX 560 eGFX Breakaway Puck
- Sonnet Radeon RX 570 eGFX Breakaway Puck
 

Attachments

  • NVDAStartup.kext.pdf
    22 KB · Views: 1,726
  • IONDRVSupport.kext.pdf
    23.4 KB · Views: 1,226
  • AppleHDAController.kext.pdf
    26.5 KB · Views: 1,206
Last edited:

Synchro3

macrumors 68000
Original poster
Jan 12, 2014
1,987
850
Could we get some pics of your setup and a ballpark cost estimate?

'Some pics' are in my first post.

Costs:
PSU 500W $70
Elite 130 $50
SWEX $28 (incl. shipping from China)
Powered riser $7
Thunderbolt cable 2m $50

Thunderbolt Adapter
Akitio $220 or ThunderTek/PX $200

Graphics card depending on your needs: From $0 if you have already one lying around to $1000 for a GTX Titan X.

Let's say a with a new midrange card like GTX 970 for $350 the whole eGPU would cost you $750.
 

fhall1

macrumors 68040
Dec 18, 2007
3,832
1,268
(Central) NY State of mind
Thank you very much for posting all these details....it's certainly tempting.

PS the Akitio case says it comes with the TB cable (a $30 value!) - so that drops the price a little bit.
 

MCAsan

macrumors 601
Jul 9, 2012
4,587
442
Atlanta
What problem does this solve for which Mac? What is the benefit of an eGPU vs the ones in the iMacs, Mac Pros, or Retina MacBooks?
 

Synchro3

macrumors 68000
Original poster
Jan 12, 2014
1,987
850
Some ideas…

Mac Pro doesn't need an eGPU, except you are not satisfied with the internal GPU's, or you need CUDA.
iMac does not need an eGPU, except you are not satisfied with the mobile GPU, need 4K or 5K Display, or you need CUDA.
Retina MacBook Pro doesn't need an eGPU, as long your are satisfied with the internal mobile GPU and internal Display, or you need CUDA, or a 4K or 5K Display.
Mac Mini 2012, MacBook Pro 13' 2012, and others with weak Intel iGPU have a great improvement if you are not satisfied with the internal GPU's, or you need CUDA, or a 4K or 5K Display.

In the moment an eGPU is connected, it's like a full Desktop Mac.
 
Last edited:

MCAsan

macrumors 601
Jul 9, 2012
4,587
442
Atlanta
What apps need CUDA to run or are greatly improved? Is this really just for high end gaming? For example, Adobe has just moved Lightroom to 64 bit use of the GPU for handling graphics. Just using the default GPU made a huge difference photo editing time compared to only using the CPU.

This topic reminds me of my time running a Hackentosh. :eek:
 
Last edited:

Synchro3

macrumors 68000
Original poster
Jan 12, 2014
1,987
850
I think you mean Maxwell card? Haswell is an Intel CPU architecture.

Fantastic post by the way. I think it will be very useful to people.

Yes, of course Maxwell is it, my mistake. :)

Thanks.
 
Last edited:

Synchro3

macrumors 68000
Original poster
Jan 12, 2014
1,987
850
Update: I can confirm that latest EFI security updates have no impact for eGPU functionality for Thunderbolt 1 Macs: https://support.apple.com/kb/DL1823?locale=en_US

Mac Mini 2012 has new a black option boot menu, but eGPU works fine:
Option Boot Menu.png


An other topic is latest OS X Security Update 2015-005: https://forums.macrumors.com/thread...-graphics-cards.1440150/page-90#post-21547621 eGPU now working with OS X default driver for a few days...
--------------

Did some comparisons between Thunderbolt 1 eGPU (800 MiB/s i/o speed) and Mac Pro PCI-E 2.0 x16 (5100 MiB/s i/o speed).
Unigine Heaven (preset extreme) indicates eGPU reaching 88% of the same card installed in Mac Pro.
Unigine Valley (preset extreme) indicates eGPU reaching 68% of the same card installed in Mac Pro. I guess Valley is more i/o intensive than Heaven.

However, eGPU's run circles around iPGU's. Could not even bench Intel HD 4000 with Valley. It crashed after a few seconds.

Attached some pics of the benchmarks and some explanatory pics of one eGPU.
Unigine Heavencomp.png Unigine Valley comp.png

eGPU 0.JPG eGPU 1.JPG

eGPU 2.JPG eGPU 3.JPG

eGPU 4.JPG
 
Last edited:
  • Like
Reactions: yurc

mac_05

macrumors newbie
Aug 11, 2015
5
0
Hey!
I'm trying to run a Quadro 4000 with an iMac 5k. The iMac recognizes the card, but only as NVIDIA Chip Model.
I've installed the NVIDIA Web Driver and the Cuda Driver.

Expansion Box is a Echo Express III

Any ideas?
 

steve62388

macrumors 68040
Apr 23, 2013
3,090
1,944
Hey!
I'm trying to run a Quadro 4000 with an iMac 5k. The iMac recognizes the card, but only as NVIDIA Chip Model.
I've installed the NVIDIA Web Driver and the Cuda Driver.

Expansion Box is a Echo Express III

Any ideas?

I hope you're not expecting it to work on the 5k monitor, because it won't. You need an external monitor.
 

mac_05

macrumors newbie
Aug 11, 2015
5
0
I hope you're not expecting it to work on the 5k monitor, because it won't. You need an external monitor.
Yeah. I know that the 5k screen won't work, depending on the bandwith of TB2.
The external screen gets a signal, but only black.
 

mac_05

macrumors newbie
Aug 11, 2015
5
0
First step is to check Cuda. In my case Cuda isn't working. The Cuda Driver says "No GPU Driver found", but I installed the NVIDIA Web Driver.
Update:
No I'm using a GTX 680 for Mac and it works. CUDA recognizes the card and I can use it with Premiere.
Is it possible to use an external Screen with the GTX 680 directly?
 

Synchro3

macrumors 68000
Original poster
Jan 12, 2014
1,987
850
Update:
Now I'm using a GTX 680 for Mac and it works. CUDA recognizes the card and I can use it with Premiere.
Is it possible to use an external Screen with the GTX 680 directly?

I think you need the Netkas display out enabling tool.
 

steve62388

macrumors 68040
Apr 23, 2013
3,090
1,944
You can't use the imacs internal display, because the resolution is 5k. This is too much for Thunderbolt 2.

Whilst you are right that you cannot use the internal display, your reasoning is incorrect. You cannot use the internal display of any Mac that has a discrete GPU.
 

hkoster1

macrumors regular
Jul 29, 2012
155
55
The Netherlands
There are many instruction blogs/posts on how to build an eGPU, and taken all together (including the OP of this thread) there's a lot of good information there. Also, still, some vague or misleading information, like is the CUDA driver needed?
Mmm, not likely, unless you wish to do parallel computing on your eGPU, and in that case there's also OpenCL (part of XCode) on the Mac.

I finally built an eGPU for my late 2014 base model Mac Mini, and people may be interested in my complete hardware/software report, https://dl.dropboxusercontent.com/u/5115339/egpu.pdf.

Enjoy!
 
  • Like
Reactions: Synchro3

steve62388

macrumors 68040
Apr 23, 2013
3,090
1,944
There are many instruction blogs/posts on how to build an eGPU, and taken all together (including the OP of this thread) there's a lot of good information there. Also, still, some vague or misleading information, like is the CUDA driver needed?
Mmm, not likely, unless you wish to do parallel computing on your eGPU, and in that case there's also OpenCL (part of XCode) on the Mac.

I finally built an eGPU for my late 2014 base model Mac Mini, and people may be interested in my complete hardware/software report, https://dl.dropboxusercontent.com/u/5115339/egpu.pdf.

Enjoy!

You should have thrown some photos in there, particularly how you stripped out the Akitio and mounted everything into the one box.
 

hkoster1

macrumors regular
Jul 29, 2012
155
55
The Netherlands
You should have thrown some photos in there, particularly how you stripped out the Akitio and mounted everything into the one box.
I may still do that, but stripping the AKiTiO box is actually very straightforward - just strip the whole thing until there's nothing left to strip... Then you're left with a U-shaped sled, partly closed at the Thunderbolt-connection end (painted black). After shortening that sled, it just glues in the same place where an ITX motherboard would otherwise be placed. The Thunderbolt ports are accessible through the same opening in the case that would otherwise be used for mobo ports. Couldn't be simpler, once you get over the reluctance of putting a hacksaw to that €250 AKiTiO box...
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.