External graphics card (eGPU)
For the past year I have blogged about NVIDIA based external graphics card (eGPU) setups. This post will sum up my work, findings and recommendations. First I will briefly describe the concept, then the individual parts with my recommendation and lastly links to various guides on hardware and software setup, mostly my own posts.
Why an external graphics card at all?
I like the idea of having a single modular computer. When I am on the road I have a small light laptop. When I get back home I plug the laptop into my eGPU setup and suddenly I have transformed the laptop into a desktop, with upgraded graphics, USB ports, hard disks and so on. I only have to maintain a single device, the laptop. And the beauty of it all is that you can upgrade the graphics card on devices that would otherwise not be easily upgradable, like
- Mac Minis
- Laptops with Thunderbolt 1 / 2, mini PCIe and Express cards slots
A warning to the reader: Not all combination of hardware and software will work, always use google to see if anybody else has similar hardware and gotten it to work. There is no shame in letting other people do the hard work for you! The safest thing is to buy parts you know other people have gotten to work, like I have in my blog posts.
You can also buy a finished eGPU enclosure like the Dell Computer Alienware Graphics Amplifier, but I have no experience with this and it only works on certain Alienware laptops.
Lets assume that a laptop is a device that communicates to various components through a PCIe bus. And lets assume that the laptop is Optimus1 enabled and has two graphics cards.
What is important to notice here is that we can have an integrated graphics card (iGPU) and / or a dedicated graphics card (dGPU). If both cards are present, then the iGPU will be used during normal usage and the dGPU when more graphic intensive tasks are executed. Notice that only the iGPU is connected to the LCD display, we will get back to this later and how it can be used in external graphics card setups.
Devices can be connected directly to the PCIe bus through external connections on the laptop. For external graphic card (eGPU) usages these are typically Thunderbolt, ExpressCard and Mini PCIe. An external graphics card setup merely takes advantage of this fact and attaches a graphics card outside the laptop through these connections.
In the above example the laptop now sees three graphics cards, where the eGPU is connected to an external monitor. The laptop communicates through the PCIe bus which is extended through a Thunderbolt connection and sends data to the eGPU which in turn displays data on the external monitor. This is an example of a eGPU setup using and external monitor.
What if we could eliminate the external monitor and use the internal LCD display? How is this even possible when the LCD display is only connected to the iGPU? NVIDIA and Intel solves this by using a technology known as Optimus. When a laptop is using its dedicated GPU (NVIDIA), it actually sends the data to display to the iGPU (Intel) which in turn sends to the LCD display. Therefore the iGPU is always responsible for displaying the output no matter which graphics card is used.
Attach another NVIDIA GPU externally to the PCIe bus and we can take advantage of this technology by letting the eGPU send data to the iGPU!
Now the eGPU is sending the data to be displayed through the Thunderbolt connection to the iGPU which in turn sends it to the LCD display. This is known as an internal / Optimus eGPU setup.
Using an external monitor is the easiest to configure and setup. It has less requirements than using the internal laptop monitor. Accelerating the internal laptop screen using an eGPU setup requires integrated graphics from Intel that is Optimus1 compatible, NVIDIA graphics card and Windows. If running OS X then only the external monitor solution is supported. There are workarounds and hacks on the internet if you don’t meet the above requirements to get the internal LCD working with an eGPU setup, but that is outside the scope of this post.
To be able to plugin a graphics card externally you need
- A computer that has a Thunderbolt / ExpressCard / Mini PCIe port or slot
- A PCIe enclosure that converts a Thunderbolt / ExpressCard / Mini PCIe connection into a standard PCIe slot2
- A graphics card
- A power supply
- Computer case (optional)
- External monitor (optional)
If you are reading this post you most likely have everything already except a PCIe enclosure.
First you need a device that can use an external graphics card. I would strongly recommend a device that has a Thunderbolt 2 port, but Thunderbolt 1, mini PCIe and Express card can also work at lower speeds / performance. It can be more difficult and / or impossible for an external eGPU setup to work you have a lot of memory in your laptop and / or a discrete GPU so be sure to check on google if that combination works.
I use a 13 inch Retina MacBook Pro (late 2013 model) with 16 GB memory and would recommend the newest Retina MacBook Pro without a discrete GPU (only Intel Iris Pro) or MacBook Air. I also have had very good experience with my old Lenovo T430s, but this has only a Thunderbolt 1 port. Be very sure you get the correct model, not all models have the Thunderbolt port.
If you want to be able to use an NVIDIA graphics card to run an eGPU setup without an external monitor, then make sure the device supports Optimus. This requires an internal GPU (iGPU) from Intel.
The heart of it all, a PCIe enclosure enables us to connect regular PCIe cards like graphics cards through Thunderbolt, mini PCIe or Express card. I highly recommend the AKiTiO Thunder2 PCIe box if you have a Thunderbolt port, it works and is very cheap compared to other PCIe enclosures I have used. You can spend twice to four times as much getting other enclosures, but it is not worth it in my opinion. I have previously used the Sonnet Echo Express SE II with two PCIe ports, but I had a lot of trouble getting graphics card to work, most likely because of the two PCIe ports instead of one. The price is also 2-3 times higher than the AKiTiO Thunder2. If you don’t have a Thunderbolt port, then I recommend the Bplus PE4L-EC060A if you have an Express card or the Bplus PE4L-PM060A if you have a mini PCIe slot, it is only a third of the cost of a AKiTiO Thunderbolt solution! The bandwidth is only a quarter of the AKiTiO Thunder2, but it will still give you a nice boost in graphical power.
My recommendations here are based on experience, both my own and from the eGPU community. Any recent NVIDIA card should work fine, both with an external monitor and the internal laptop screen through Optimus. EVGA branded NVIDIA cards are powered different internally and work better for eGPU setups. Before I used EVGA graphics cards I needed to hot plug and time when I powered on the different parts of my eGPU setup. I even needed to create my own PCIe riser cable with 12v power spliced into it from the ATX power supply, see more here. To be fair, once I switched to using Windows 8 UEFI, most of the above problems went away, but I would still recommend EVGA to iron out the last few quirks.
Any modular ATX power supply with enough power to drive the graphics card(s) and enough PCIe power connectors for the chosen card(s). Optionally you might need a powered PCIe riser if the PCIe port cannot supply 75 watts of power and the graphics card cannot get enough power from the PCIe power connectors alone. If unsure, just get one!
An example from one of my comments on the subject:
The power supply should be fine, it has a single PCIe connector which you need to power the GTX 960. However, since the GTX 960 only has a single 6pin PCIe connector (according to the tech specs here) and the AKiTiO Thunder2 is limited to 25 watt from the PCIe port, you only have 75 + 25 = 100 watts total to power your card. Most posts on the internet agree that you need at least 125 watts of power as described here.
Therefore you need to buy a powered molex PCIe riser to be able to supply up to 75 watts on the PCIe port on the AKiTiO Thunder2 which would bring the total up to a safe 150 watts. The ones I use and recommend can be bought here.
You can also find similar items on Amazon (search for “pcie riser powered capacitor”, but the quality might vary. If you don’t follow my recommendation then at least make sure that the riser:
- Is x8 or x16 to x16
- Is powered (molex)
- Has a capacitor
- Has good reviews
The easiest way is to find a small PC case where you can fit the eGPU setup with enough ventilation. If you have chosen the Bplus PE4L-EC060A or Bplus PE4L-PM060A as a PCIe enclosure you can get the Bplus DIY box as I have used before here. I have chosen to build my own exoskeleton cases using OpenBeam and MakerBeam construction kits as described here and here.
External monitor (optional)
Use the one you already have. If you want to purchase one specifically for the eGPU setup I recommend the following
- Should have more than one connection input. The reasoning behind this is that I like to have my eGPU always connected to my external monitor, but when I am just working I like to connect the laptop directly to the monitor. Hence at least two inputs.
- If used for gaming purposes, the resolution of the monitor should be something the eGPU setup can handle.
- Windows 10 Optimus setup. Recommended setup.
- AKiTiO Thunder2 using Windows 8 UEFI. Recommended, UEFI just makes everything easier! Check this post to see if you are running BIOS or (U)EFI.
- PE4L using Windows 7 BIOS and DIY eGPU setup 1.30. DIY eGPU setup is recommended when a workaround is needed to get the setup to work. Can disable the discrete GPU and rearrange devices in PCI space to free some much-needed memory and avoid the dreaded “error 12”
- PE4L using OS X 10.9 (Maverick)
- OS X10.10 (Yosemite) using NVIDIA Maxwell cards
Help and support
There is a large eGPU community out there. For the best help and support please visit these sites:
- eGPU.io: New site dedicated to eGPU, start looking for answers and help here
- TechInferno: Perhaps the biggest source of info on DIY eGPU setups. This has been replaced by eGPU.io
- DIY eGPU setup: Software created by Nando4 which make can make otherwise impossible eGPU combinations work!
- Journaldulapin.com: A few good posts on getting OS X (Maverick, Yosemite) working with eGPU setups
Please leave a comment if you feel I have missed something or just want to ask a question.
Good news, it seems Thunderbolt 3 will officially support graphics cards, including hot plugging the card, read more here.
Added link to Windows 10 Optimus setup
Nvidia Optimus is a computer GPU switching technology created by Nvidia which will seamlessly switch between two graphics adapters within a computer system in order to provide either maximum performance or minimum power draw from the system’s graphics rendering hardware. ↩ ↩2