Introduction |
This thread serves as a roadmap for those who wish to attach an external Graphics Processing Unit (eGPU) to a notebook/laptop computer. Connection may be achieved through an ExpressCard, mPCIe slot, or Thunderbolt port.
Note: For those running Windows 7, you can install the eGPU without rebooting your system. Simply and the turn the system to standby system and attach the PE4L. Your system will return to its desktop presets once it detects the PE4L. You will immediately see a significant upgrade in the performance.
Pros and Cons |
Pros
|
Cons
|
Pre-purchase FAQ |
- eGPUs are a heck of a lot cheaper than the ViDock ¾: US$92-delivered PE4L versus US$215-delivered for the ViDock3. A GTX460-768MB eGPU setup this is a savings of some US$230.
- If you are unsatisfied with the performance of your eGPU, you can resell it with minimal losses. Villagetronic has a very strict return policy means higher ebay reselling losses.
- Has DIY eGPU Setup 1.x software to overcome error 12: cannot allocate resources issues.
- Developed the x1E tweak and custom NVIDIA Optimus drivers to deliver highest possible performance. DNA drivers for ATI cards are available too.
- mPCIe AND expresscard systems are supported. Villagetronic can only use expresscard systems.
- PCI reset delay circuit to boot past problematic bios with unit switched on (PE4L 1.5+/PE4H 2.4+).
- x2 capable on some systems: x2 1.0 provides ~60% better performance than x1 1.0.
- A PSU can be added to match the video card.
- Can be enclosed inexpensively.
- Since it does not come with a chassis, it can be configured with unrestricted video card sizes and cooling apparatus.
- PE4H allows desktop video card to be hosted externally and shared b/w notebook and desktop (@x4 1.0 speed via HP4A.
- Uses a very inexpensive mini HDMI interconnect.
Any notebook run with 2GB of RAM can be eGPU compatible. A very high percentage at 3GB will also allow such configuration. If your system runs at 4GB you’ll need to check your free PCIe configuration space to host it, as detailed below:
(Update 3-14-2012) A DSDT override extending the root bridge into 36-bit can allow ALL systems with a 64-bit CPU and chipset, if you are using Windows 7 and the latest drivers with up to 48GB of RAM installed can be made eGPU compatible. The solution for such a DSDT override solution is detailed below.
- if the system has a switchable iGPU+ATI/AMD dGPU or switchable iGPU+NVIDIA Optimus dGPU configuration then can use Setup 1.x you’ll need to connect the eGPU to use the PCIe space. This requires the disabling of the dGPU. While it is known that all Intel chipset systems with NVIDIA or ATI/AMD switchable graphics can function this way, the Series-6 AMD switchable graphics has not be tested fully.
If the system has only a dGPU or an iGPU, which is not switchable, then check the system's TOLUD+Large Memory for an issues related to running 4GB+. Check in Device Manager. Set View to "Resources by connection" & expand the Memory tree like shown.
If you have large memory memory entry, then the eGPU can be hosted in 36-bit PCIe space. If not, then you’ll need a TOLUD being 3.25GB or less to host the eGPU 3at 2-bit PCIe space. Yu can verify the situation by using a 8 digit memory address to analyze the first PCI bus and then cross reference with the table below:
First PCI bus with 8 digits memory address | TOLUD |
E0000000 | 3.5GB |
D0000000 | 3.25GB |
C0000000 | 3GB |
B0000000 | 2.75GB |
A0000000 | 2.50GB |
As long as TOLUD is equal or lower than 0xD0000000 (3.25GB) your notebook will have enough 32-bit PCI space for a eGPU to work with 4GB or more of system RAM. See details. Some examples:
To be absolutely sure an eGPU can be accommodated requires booting Setup 1.x and performing an 32-bit PCI "All" compaction. Once complete, you should see 256MB free shown in the Status window. If not, then you only have 128MB of contiguous free space. At this point, you’ll have to consider another method, such as a NVidia Fermi card use a fragmented 128MB+64MB+32MB PCI BAR so might still be able to be allocated where ATiAMD cards that require a straight 256MB contiguous block cannot.
This likely comes across as a confusing process. In essence, simply boot Setup 1.x, run Save Diags->compact_fails, then Save Diags->Windows_fails following the prompts. Boot back to Windows, mount the Setup 1.x image, archive the v:\diag folder with Winrar/WinZIP, upload to mediafire.com to review your diagnostic output.
3. I don't have an ExpressCard slot. Can I still do use a eGPU?
NOTE: WWAN mPCIe slots with only USB pins connected (pin 36+38) rather than PCIe pins (23, 25, 33, 35) cannot do a eGPU.
USB-to-ExpressCard adapters cannot be used since they uses just the 480Mbps USB pins on an ExpressCard slot.
mini PCI slots can't be used. Can see the difference between mini PCI and mini PCIe here.
4. Can I make this work using just my notebook's LCD display?
Another more elegant solution would use a HDMI input expresscard as described at Play PS3/X360 on laptop screen using new HDMI Input Express Card. . Though current costs of $170 for the item makes it unattractive AND you'd need to then do a mPCIe eGPU implementation.
There are however these less drastic ways of getting your accelerated graphics card to render to the internal LCD, all of which will have lower performance than when running using an external LCD:
- NVIDIA Optimus driver provides a transparent internal LCD cloning mode for systems with a 4500MHD/HD/HD3000/HD4000 iGPU primary video when using a NVIDIA GTS4xx/GTX4xx card.
- Use Lucidlogix virtu drivers to provide transparent output using the internal LCD if you have a Sandy Bridge cpu. (timohour)
- Ultramon/Chung Gun method can clone from the desktop eGPU's window to the internal LCD for windowed games/apps.
- USB 3.0 framegrabbers have sufficient bandwidth to capture the image from the desktop eGPU and pipe it back to your notebook's display.
It is not feasible to use USB 2.0 framegrabbers. The desktop video card outputs HDMI/S-Video. To try to clone the output from the desktop video card via a USB frame grabber can be done, but consider say 1280x800x32-bit = 4MB per image. If gaming at 30FPS that's 120MB/s bandwidth required. USB 2.0 is 480Mbps (60MB/s in *best case* scenario.. more like 30MB/s in real-life).
5. (Performance) What affects the performance of a eGPU?
The x1 1.0 PCIe link restricts performance from normal desktop levels. PCIe Scaling Analysis shows x16, x2 and x1 performance. Compared to x16 2.0 we can summarize that there is 50% performance loss at x1 1.0 and 20% performance loss at x2 1.0 link speeds. Or x2 1.0 is 60% faster than x1 1.0.ViDock and BPlus PE4L are using the same x1 ExpressCard/mPCIe pins so we will get exactly the same performance using either solution. Only ways either solution will see improved performance is by: |
|
||||||||||||
Performance Scaling with resolution |
- Purchase an expressCard 2.0-equipped Sandy Bridge notebook, with it's x1 2.0 providing ~60% faster performance than x1 1.0.
- Petition ATI/AMD to get full duplex performance on Intel chipsets without needing the x1E tweak.
- Petition NVIDIA to unlock the Optimus performance tweak with x2/x4 links and with systems that do not have an iGPU for their primary bootup video as requested.
- Try 3rd-party tweaked drivers. Realistically only giving < 10% better performance.
- Link two x1 ExpressCard and/or mPCIe ports to get a x2 link, like BPlus' PE4H does.
- If system supports it, overclock the PCIe bus using setfsb. Eg: 100->105 yields a 3.3% RE5 FPS increase.
- Minimize PCIe traffic by disabling hypermemory/turbomemory and video card's HDMI soundcard.
- Further minimize PCIe traffic by reducing color depth from 32-bit to 16-bit giving up to 72% performance improvement. See details.
- Reduce all possible PCI bus communications shown to improve performance.
- Get rid of NVidia x1.Opt microstuttering by setting a FPS limit with 300.x drivers here (Khenglish)
- Apply game-specific tweaks like the SCII one here from apac.
6. (Performance) Can my system do a PE4H x2 or x4 link as shown in PCIe Scaling Analysis?
*=switches [port1+2] into x2 mode. ^switches [port5+6] into x2 as well. An Intel limitation. NA=feature locked into BIOS flash descriptor
Other combinations to get x2/x4 ports such as p1+3, p2+4 do not work! In example above, the 2510P can't do a x2 link since it has only the 1 physical mPCIe slot. You'll notice on the 2510P port1 is enabled - it's a root port that must be enabled for *any* port to work. 2510P's port1 is not physically connected. The DV2000 has ExpressCard=port1, mPCIe=port3, mPCIe=port4. So the DV2000 can do a x2 link using the 2 mPCIe slots as port3+4.
The best way to identify your port layout is to insert a ExpressCard e-sata card and see what port it reports as being on, then checking too the wifi card. If have multiple mPCIe slots, worth swapping the wifi aiming for a [port1+2], [port3+4], [port5+6] or [port7+8] setup.
NOTE: port1 is the root port and must be enabled for any of the ports to work. On quite a few systems this is just a phantom port with no electrical connections to a mPCIe or expresscard slot.
Where can I find schematics of my systemboard to find port layout? Try laptopdesktopschematic, lqv77, GSM-extreme, and/or notebookschematic. Searching on the web may also yield more information.
Related: How do I enable port1-port6 if bios has disabled them? Use eGPU Setup's 'iport on'. Related: How do I setup a x2 1.0 link? Use eGPU Setup's 'iport x2 [port]'.
7. (Performance) What recommended candidate notebooks should I buy for best performance?
Performance will be determined by PCIe bandwidth available, which is ranked from highest->lowest below and and if the notebook has Intel 4500MHD, HD, HD3000, HD4000 iGPU primary graphics so is NVIDIA Optimus capable.
Intel 4500MHD, HD, HD3000 or HD4000 iGPU allows NVIDIA Optimus superior performance with latest Fermi NVIDIA cards.1. PCIe 2.0 series-6 chipsets providing equivalent to x2 1.0 bandwidth. Current ATI cards appears to be running crippled half-duplex links on Intel PCIe ports. Compare HD5750@x2 and HD5770@x2E and techpowerup's HD5870 x1 2.0 results. Series-6 chipsets might deliver x1 2.0 *full duplex* with ATI cards, or 4 times more bandwidth than what ATI cards appear to be getting on series-5 or older chipsets. 2. a Intel-chipset system that allows a x2 link by ganging [port1+2], [port3+4], [port5+6], [port7+8] using mPCIe+expresscard or mPCIe+mPCIe slots. Note: using a x2 port3 affects port1/port2 operation since it sets port1 into x2 mode. 3. series-4 or older Intel-chipset system that allows a x1E link off an odd numbered port for ATI cards OR an AMD/NVIDIA chipset that provides full x1 1.0 performance using an ATI card
8. (Performance) Can I do a SLI/Crossfire implementation combining mPCIe+mPCIe or EC+mPCIe ports?
9. (Performance) How could manufacturers make eGPU x2 2.0 notebooks?
As it appears there is no desire to make an external graphics port standard it can do be done effectively another way. All that is required are 12-18.4" notebooks with:
- 2x34mm Intel ExpressCard 2.0 ports electrically configured as either [port1+2] or [port5+6]. Doable with series-6 chipsets.
- switchable HDMI input back into the internal LCD to route the external GPU output to like the Clevo X8100 provides.
- can set [port1+2] or [port5+6] as x2 width.
- performs correct PCI allocation when attach a desktop eGPU to it.
Only dilemma for manufacturers being such notebooks would become a serious competitor to bulky expensive gaming notebooks that have poor battery life.
11. My Villagetronic ViDock product isn't working. Can you help?
12. Can I solder my own adapter to host an eGPU instead of buying one from HIT, BPlus, Redtrontech, Villagetronic?
13. What do I need to run the fastest x1.2Opt link shown in the implementations?
1. A Series-6 system (Sandy Bridge) or Series-7 (Ivy Bridge) notebook with an expresscard slot^.
2. A PCIe 2.0 compliant PE4L-EC060A 2.1b
3. A NVIDIA Fermi or Kepler class video card. A s/h GTX460-1GB OC edition with 336 cores being great bang-per-buck.
4. A power supply to drive your video card. A 203W Xbox 360 power supply a good to mod for
5. Latest NVIDIA desktop video drivers. They provide the ability to drive the internal LCD upon detecting a Intel 4500MHD, HD, HD3000 or HD4000 iGPU. When the iGPU and x1 link is found, PCIe compression engages gaining anywhere from 20-333% better performance over a x1 2.0 link without compression.
^ a PE4L-PM3N 2.1 will be released so could use a less convenient mPCIe slot instead of the ExpressCard slot. Useful for systems like a Sony Z2 which don't have an expresscard slot
First Steps |
See Techradar's How to make an external laptop graphics adaptor article for an overview.
1. What parts do I need and where can I buy them? 2. Which video card do you recommend for best performance on my system?
-LIME recommend NVIDIA Fermi (GT430 or better) solution for best performance
-RED recommend ATI HD5750 or better solution for best performance
-CYAN choose based on preferred performance bias: DX9 (ATI HD5750 or better) or DX10/DX11 (NVIDIA Fermi). Thunderbolt users may still elect NVIDIA Optimus solution (if have an iGPU) as then can then render the image to the internal LCD. Refer to Performance: ATI/AMD versus NVIDIA benchmark results to help you decide. If not sure then suggest a NVIDIA Fermi solution which on balance gives better overall performance and has the option of x1.Opt with the right notebook. Note: if the NVIDIA x1.Opt driver was unlocked to allow primary video cards other than Intel 4500MHD/HD/HD3000/HD4000 plus it engaged with x2 links then I would recommend only NVIDIA solutions.
Left-to-right: slowest-to-fastest with NVIDIA x1.Opt and x2 delivering similiar performance
1 provides full duplex performance equivalent to x1E on Intel chipsets.
2Optimus tweak engages only when Intel 4500MHD/HD/HD3000/HD4000 primary graphics AND x1 link is detected, improving performance by 20-333%. Provides ability for the internal LCD to render games running on the external GPU.
3x1E tweak uses a x2 link on port1, 3 or 5 with a single lane for 15-30% more perf (ATI/non-Fermi NVIDIA only). 4x2E tweak use two lanes of a x4 link, [port1+2] as EC+mPCIe or mPCIe+mPCIe for 30-60% more perf (ATI/non-Fermi NVIDIA only). 5 x2=combining expresscard+mPCIe or mPCIe+mPCIe slots [p1+2], [p3+4], [p5+6] or [p7+8]; x4=[p1+2+3+4] or [p5+6+7+8]. 6 Series-6/7: Only for Thunderbolt-equipped notebooks. Trying to combine mPCIe+ExpressCard slots no longer possible as Intel now locking the link width in the flash descriptor. Requires advanced bios hacking to configure x2 link, cannot be done using Setup 1.x. 7 This would only be possible if the ExpressCard slot was wired to the north bridge which runs PCIe 3.0. All ExpressCard slots so far have been using the south bridge which is currently limited to PCIe 2.0. So we can say this is not possible. ? Don't know if non-Intel chipsets can do x2 links.
If going ATI/AMD, recommend a HD5xxx/HD6xxx series card over a HD4xxx series due to their more efficient usage of PCIe bandwidth. Benchmarks would predict a HD5670 to outperform a HD4870.
Avoid twin-GPU cards like a HD6970/GTX590 since they require 2x256MB PCIe space windows which might be difficult to accomodate.
Examples based on power consumption requirements
- 12V/75W adapter: HD5670, unplugged HD5750, NVIDIA GT430.
- 12v/80w: specific HD5750 units. See comment here, implemented here.
- 12V/120W: GTS450 described here using DC adapter that is shared between notebook and eGPU
- 12V/203W Xbox 360 PSU: GTX460
- ATX PSU: AMD HD68xx, NVIDIA GTX4xx/GTX5xx
Elmopol's XB360, Joss27's 5.25" SCSI box, Wolf Tohsaka's Livebox Mini, timohour's floppy holder, fr0z3n's carry-it, Fujian stand/enclosure, airzone (1U), Kallogan (192W AC), hlgr, aodioxp, SimoxTav, #1, sprtnbsblplya, Agent9, Lurifax (mini ITX), kizwan (Aero QX2000, mITX), the endless +XB360 PSU, max_headroom and Oddious (1U), lightnica (JuiceBox), pengy_666's 5.25" drive enclosure, 12V/120W "portable", pimped-up (xb360) which is similar to Building an eGPU (CUDA).
Or custom NVIDIA Optimus, DNA drivers for ATI/AMD cards are available too.
DIY eGPU Setup 1.x may also be required if encounter error 12: cannot allocate resources in Device Manager or have specific port requirements such as x1E, x2, x2E link widths or mPCIe antiwhitelisting. Click link for more details.
5. I'm using an ATX power supply to power my graphics card. How do I switch it on?
6. What cable connects PE4L/PE4H to EC2C/PM3N and is it replaceable?
7. [mPCIe] What can I do to make it easier to connect the mini hdmi cable to the PM3N?
8. Why does my video card fail with an error 12: cannot allocate resources in Device Manager? See Troubleshooting FAQ - Q3.
Performance |
GTX670@x1.2Opt vs GTX560Ti (i7-2820QM 2.3, carage)
HD5850@x1.2 vs GTX460@x1.2Opt (i7-2630QM 2.0, timohour)
NVS4200M vs GTX560Ti@x1.2Opt (i7-2670QM, Tom_ger)
GTX680@x1.2Opt vs x1.1Opt and
GTX580 versus GTX680@x1.1Opt (i5-2520M 2.5, arsenal243)
GTX480 versus GTX560Ti@x1Opt (i7-620M 2.66, Mikjoa)
GTX460-1GB versus GTX560Ti @x1.1Opt (i5-2520M 2.5, Warwickeo)
GTS450 versus GTX460 @x1.Opt (i7-640M 2.80, docusyn)
HD5750 versus GTX470 on x1, x1.Opt and x2 links (i5-430M 2.26, nando4)
HD5750 versus GTX460 on x1 and x1E links (T9300-2.5, ithildin)
HD5750 versus GTX470 on x1, x1E, x1.Opt and x2 links (T6600-2.2/T2050-1.6/U7600-1.2, nando4)
HD5870@x2 1.0 vs x16 2.0 (i7-720QM/i7-3820, kizwan)
HD7970 versus GTX680: PCIe scaling x4, x8, x16 @PCIe 1.0, 2.0 and 3.0
HD7970: PCIe 3.0 x2, x4, x8, x16 scaling
GTX580: x1.2Opt vs x1.1Opt +30% overclock
& (i7-2920XM 2.4, Khenglish)
GTX560Ti: x1.2Opt vs x1.1Opt [internal LCD vs external LCD] (i5-2540M 2.6, nando4)
HD5850: x16, x4, x2, x1 (~i7-2820QM, timohour)
HD5870: x2 versus x1 (i7-720QM 1.6, kizwan)
GTX580+GTX460: x2 vs x1 vs GTX260M (P8700-2.53, mangos47)
GTX460@x1.Opt scaling analysis internal vs external LCD, +25% PCIe, +40% GPU core O/C (L9600@2.90, nando4)
GTX460@x2 scaling analysis +20% cpu, +20% PCIe, ~20% GPU (T9400-2.53, khenglish)
HD5750: x1 versus x1E (T9300-2.5, ithildin)
Implementations |
Game screenshots taken by hitting ALT+TAB to go into the windowed mode, then ALT+PRTSC to capture screen. NVIDIA users: please set PhysX in the NVIDIA Control Panel to use the CPU rather than the GPU. Disable the external video card's HDMI audio for best performance.
DX9-centric Performance: RE5 1280x800-variable, 3dmark06 1280x1024, +optional any other current games.
DX10-centric Performance: ensure PhysX is set to CPU in the NVIDIA control panel.
DX11-centric Performance: set 1280x800 resolution and ensure PhysX is set to CPU in the NVIDIA control panel.
KeyRED - a x2 1.0 link using a PE4H linking expresscard+mPCIe or mPCIe+mPCIe. All others are x1 1.0.
ORANGE - appears to have port layout to do a high-performance x2 1.0 setup using either [port1+2], [port3+4], [port5+6], [port7+8]
GREEN - video card that requires only a compact 12v/80w AC adapter for power. No external ATX PSU needed.
All tested at 1280x800 except 3dmark06 which used the default 1280x1024 and those marked *
x1.1: x1 2.0 (5GT/s) capable system running at x1 1.0 (2.5GT/s) if PCIe 2.0 DIY eGPU hardware is used.
x1.Opt: system with Intel 4500MHD, HD, HD3000 or HD4000 iGPU primary graphics using NVIDIA Optimus for higher performance + internal LCD mode.
x2
x1E/x2E: apply x1E tweak to ATI cards and older NVIDIA cards on series-4 or older Intel chipsets to get ~full duplex performance
1 Requires DIY eGPU Setup 1.x to overcome 12: cannot allocate resources and/or to set specific port requirements.
2 EC/mPCIe: ExpressCard/mPCIe slot used by a EC2C/PM3N product. Port layout required for x1E/x2/x2E/x4 mode. Intel chipsets' require port1 enabled for other ports to work so port1 may not be a physical mPCIe/EC slot.
Systems incapable of running 4GB+ setups for reasons as explained. These will require a DSDT override to work.
Systems capable of a higher performance x4 or x2 PCIe links
The Orange and Red systems shown in the above table. Also:
- x4 1.0 (four x1 ports): Dell Inspiron 1520, Vostro 1500, XPS 1640/1645, Lenovo X200.
- x1 2.0 (single port): ExpressCard 2.0 with Series-6 chipsets. Not Series-5 PCIe 2.0 chipsets
- x2 1.0 (two x1 ports): Acer 5920G, 6920G, 6930G, 8930G. BenQ S41. Dell M1530, E4300, E6400?, Studio 1558 (WWAN=port1, wifi=port2), D630, D830, E6410, E5500, Vostro 1310, Fujitsu Amilo xi2555, HP DV9690en, HDX9000, Lenovo T400s?, T510, Y450/Y550, W510, MSI GT627 &, Toshiba A665-3D.
Acer 4741G(mPCIe), 5820TG(mPCIe), 8935G, Asus F3JC, G60, N61JQ, Dell Vostro_3400, Inspiron_1545*, HP DV3-2232tx, DV6-2119TX, DV7-3110TX, Lenovo G560, x201s, MSI A620x/Cx620, U200 (mPCIe), Samsung R580, Sony VGNNW29GF, Toshiba A300*, A500-026, A500-031, M305, P500-01g, R700, U500-00k.
* = can do a x1E tweak, relevant to only ATI cards and older NVIDIA cards, since the ExpressCard slot is an odd numbered port with nothing occupying the next port and is a series-4 or older Intel chipset.
Implementations: Macbook |
- MacBook 17 T7600-2.33 with X1600 + HD6850 implemented with Win7/32
- Mac Mini T7200-2.0 + HD5450 implemented with Win7.
- MBP 17" T2600-2.16 with X1600 + GT240M result with Win7.
- MBP 15" Unibody T7500-2.2, 6GB RAM with 8600M GT+HD4650/HD5770-7LCDs impl. & & & with Win7.
- MBP 15" Unibody T7500-2.2 with 8600M GT + HD4870 implemented with Win7 and MacOS 10.6
For MacOS DIY eGPU implementations see DIY eGPU MacOS Experiences.
Implementations: CUDA/OpenCL Applications |
Implementations: Non-video |
Non-English eGPU Forums |
Acknowledgements: Many thanks to all of the NBR members who have shared their experiences for others to benefit from.
DIY eGPU experiences
Aucun commentaire:
Enregistrer un commentaire