Building external GPU's on Mac (eGPU)

Discussion in 'Mac Accessories' started by Synchro3, Jun 20, 2015.

  1. Synchro3, Jun 20, 2015
    Last edited: Jun 9, 2017

    Synchro3 macrumors 65816

    Synchro3

    Joined:
    Jan 12, 2014
    #1
    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 -> http://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: http://forums.macrumors.com/threads...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: http://forums.macrumors.com/attachments/img_0386-jpg.537343/ and http://forums.macrumors.com/attachments/box-1-png.530866/ and http://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: http://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
     

    Attached Files:

  2. fhall1 macrumors 68040

    fhall1

    Joined:
    Dec 18, 2007
    Location:
    (Central) NY State of mind
    #2
    Could we get some pics of your setup and a ballpark cost estimate?
     
  3. Synchro3 thread starter macrumors 65816

    Synchro3

    Joined:
    Jan 12, 2014
    #3
    '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.
     
  4. fhall1 macrumors 68040

    fhall1

    Joined:
    Dec 18, 2007
    Location:
    (Central) NY State of mind
    #4
    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.
     
  5. MCAsan macrumors 601

    MCAsan

    Joined:
    Jul 9, 2012
    Location:
    Atlanta
    #5
    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?
     
  6. Synchro3, Jun 23, 2015
    Last edited: Aug 16, 2015

    Synchro3 thread starter macrumors 65816

    Synchro3

    Joined:
    Jan 12, 2014
    #6
    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.
     
  7. theSeb macrumors 604

    theSeb

    Joined:
    Aug 10, 2010
    Location:
    Poole, England
    #7
    Well, it solves the problem of relatively slow mobile GPUs in the Mini, Macbook Pro and iMac for one.
     
  8. MCAsan, Jun 24, 2015
    Last edited: Jun 24, 2015

    MCAsan macrumors 601

    MCAsan

    Joined:
    Jul 9, 2012
    Location:
    Atlanta
    #8
    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:
     
  9. ActionableMango macrumors 604

    ActionableMango

    Joined:
    Sep 21, 2010
    #9
    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.
     
  10. Synchro3, Jun 24, 2015
    Last edited: Jun 26, 2015

    Synchro3 thread starter macrumors 65816

    Synchro3

    Joined:
    Jan 12, 2014
    #10
    Yes, of course Maxwell is it, my mistake. :)

    Thanks.
     
  11. finalcut500 macrumors newbie

    Joined:
    Jun 26, 2015
    Location:
    CA
  12. Synchro3, Jul 4, 2015
    Last edited: Jul 5, 2015

    Synchro3 thread starter macrumors 65816

    Synchro3

    Joined:
    Jan 12, 2014
    #12
    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: http://forums.macrumors.com/threads...-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
     
  13. mac_05 macrumors newbie

    Joined:
    Aug 11, 2015
    #13
    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?
     
  14. steve23094 macrumors 68000

    steve23094

    Joined:
    Apr 23, 2013
    #14
    I hope you're not expecting it to work on the 5k monitor, because it won't. You need an external monitor.
     
  15. mac_05 macrumors newbie

    Joined:
    Aug 11, 2015
    #15
    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.
     
  16. Synchro3 thread starter macrumors 65816

    Synchro3

    Joined:
    Jan 12, 2014
    #16
  17. mac_05 macrumors newbie

    Joined:
    Aug 11, 2015
    #17
  18. mac_05 macrumors newbie

    Joined:
    Aug 11, 2015
    #18
    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?
     
  19. Synchro3 thread starter macrumors 65816

    Synchro3

    Joined:
    Jan 12, 2014
    #19
    I think you need the Netkas display out enabling tool.
     
  20. jerwin macrumors 65816

    Joined:
    Jun 13, 2015
    #20
    So just to be clear-- this will never work on a 2014 5k retina imac?
     
  21. mac_05 macrumors newbie

    Joined:
    Aug 11, 2015
    #21
    You can't use the imacs internal display, because the resolution is 5k. This is too much for Thunderbolt 2.
     
  22. steve23094 macrumors 68000

    steve23094

    Joined:
    Apr 23, 2013
    #22
    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.
     
  23. hkoster1 macrumors regular

    Joined:
    Jul 29, 2012
    Location:
    The Netherlands
    #23
    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!
     
  24. steve23094 macrumors 68000

    steve23094

    Joined:
    Apr 23, 2013
    #24
    You should have thrown some photos in there, particularly how you stripped out the Akitio and mounted everything into the one box.
     
  25. hkoster1, Aug 17, 2015
    Last edited: Aug 18, 2015

    hkoster1 macrumors regular

    Joined:
    Jul 29, 2012
    Location:
    The Netherlands
    #25
    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...
     

Share This Page