2020 14" Lenovo ThinkPad E14 Gen 2 [R4K,6C,U] + RTX 3070 @ 32Gbps-M.2 (ADT-Link R43SG-TU) + Win10 & Linux
2020 14" Lenovo Thinkpad E14 Gen 2 , Ryzen 4500U, Windows 10 / Linux Mint dual boot (eGPU active on both).
ADT-Link R43SG (non-TU version, modded to TU version)
ION SFX 650G PSU (650W overkill - you only need ~250W for this GPU)
- Setup v2 - save as v1, but with display mount and Thinkpad E14 display removed due to mount being lower and internal display blocking the view (internal display does not work in Linux either way [works in Windows]). DIY raiser to allow airflow (made from a pants hanger )
- Setup v2, another angle. eGPU is tucked behind the display.
Disclaimer: During this setup make sure you can see your GPU temperature with HWInfo64 (Windows) or GWE (Linux). Dual booting with Linux may leave your eGPU without cooling - e.g. in user login screen before GWE starts. It's not an immediate threat, just make sure you don't leave your eGPU without fans for a long time or you will overheat.
- Modded the ADT-Link R43SG cable into ADT-Link R43SG-TU version. I bought the wrong one and the M.2 port made it so the eGPU setup is in front of the laptop. But no worries - you can remove the heat shrink tape and bend the cable 180 degrees. The connections are delicate - you can only do it once! I applied a new heat shrink tape on the connection (cost me 2eu in shrink tube and the lighter)
- Set the ADT-Link R43SG switch 1 to position 2 ("always on", refer to the adapter manual)
- Every time you first boot the laptop the GPU will not be shown and also any M.2 drives will not work. I assume it's due to a timing issue, but I could not solve it with the switches on the ADT-Link R43SG. You will boot into boot device choice menu. Press CTRL+SHIFT+ALT+DELETE to reboot the computer without loosing power.
- Now your internal drive will be seen, as well as the eGPU. Boot into Windows, apply nvidia-error43-fixer . Make sure your graphics card is detected. You only have to do this once.
- Reboot (again, without turning power off).
- Install latest Nvidia drivers. Now your GPU is going to work once Windows start.
- Install MSI Afterburner, set it to autostart, make sure fans are spinning. I had to set fan profile to manual, because dual-booting with Linux sometimes leaves the GPU without cooling.
For Linux Mint 20 setup:
- Start the laptop with eGPU connected to M.2 port. All M.2 port will not work initially. Reboot with CTRL+SHIFT+ALT+DELETE.
- Make sure that you select function keys as primary over media keys in BIOS. Thinkpad E14 has issues with media key row on first boot and you won't be able to access function keys with Fn if media keys are set as primary.
- The eGPU will now be seen by the system (It's likely that you have NVidia Noveau driver ( https://nouveau.freedesktop.org/) - it had poor acceleration with screen tearing in my setup, but worked on both internal and external display).
- Thinkpad E14 needs Linux kernel 5.8 for iGPU to work with acceleration (probably not necessary for this setup, but this was the starting state for eGPU setup).
- Install Linux Nvidia driver 455.38 ( https://www.nvidia.com/Download/index.aspx?lang=en-us). You have to do it outside of your desktop environment:
- CTRL+ALT+F1 to go to another console.
- run Nvidia installer:
- In the installer, select register with DKMS + update X configuration
- You can also install CUDA, if you are going to do some computation.
- Restart your display manager:
- Install GWE (Green with Envy) from your Software Manager.
- Once you start GWE, it should detect your graphics card. GWE will complain that coolbits are not set for manual fan control. DANGER: your GPU is now working without cooling! It won't explode immediately, but make sure you do this in 10mins or so. See how to set coolbits here: http://www.upubuntu.com/2015/05/how-to-controladjust-gpu-fan-speed-for.html. You might need to reboot.
- Set a user defined FAN profile in GWE.
All benchmarks are done in Windows on external display.
n.b. I ran the benchmarks with the default resolution the Basic / Extreme presets select.
Lenovo Thinkpad E14 Gen 2 is a laptop that ticked all the boxes for this project: good price (550eu), expandable RAM, 2x M.2 slots, Ryzen 5 4500U CPU and a great keyboard. Since this setup uses M.2 connector, you have to remove the bottom case to install the cable. The bottom case will not close without modding it and I did not want to do permanent modifications, so this is a stationary setup. The main disadvantage of using no bottom case is that ethernet connection can't be used as bottom case is part of the connector. You also need to raise the laptop from the table, since airflow is getting restricted otherwise.
eGPU M.2 setup starts saturating at GPUs similar to 2080Ti, which RTX 3070 is similar to (according to reports online). Thus this was maximum GPU I felt reasonable to go, before I build a full PC. Cooling is ok in this setup, temperatures never go higher than 72C in Furmark after 30mins of stress testing.
Setup v1 keeps the internal display attached. If your external display is high enough you can use your laptop in front of the display.
Setup v2 detaches the internal display it to convert the setup to full stationary mode and save some space on the table. The disadvantage to that is loosing the webcam and WIFI (since antenna is in the display). Since ethernet port also can't be use without bottom case, you need to use USB-Ethernet adapter. Or buy a wireless keyboard!
I am going to use this setup before I build a PC to house the GPU (that's also why the overkill PSU). Linux is for working with neural networks (PyTorch) and in Windows is for gaming.
Performance wise I am pretty happy with the results. M.2 port is the fastest way to use the GPU on a laptop without discrete GPU (soldered on or with MXM connector). Even though the M.2 only allows for PCIe x4 (4 lanes out of 16), Timespy shows light reduction in performance (~10%, dependent on task). Compare my Graphics score with this random user result https://www.3dmark.com/spy/15025788. Graphics score shows 13224 / 14 756 * 100 = 89.6 % performance and this is with a slower laptop CPU and PCIe x4. There are no stutters that I can detect by eye. Red Dead Redemption runs at 59fps on Ultra in chapter 1.
- I noticed that having an internal display attached, even if mirroring is on, drops my fps in games dramatically (30%). This happens also if I am simply mirroring contents of main display to secondary display. Disconnecting the internal display solves this. E.g. I gain ~20fps (40+20fps) in Red Dead Redemption on Ultra. This may have affected my benchmarks, but I don't have time to rerun them.
@ivan_gojak, Yes, I am happy about that as well. I followed this article on how much PCIe x4 vs x16 affects performance on 2080Ti https://www.techpowerup.com/review/nvidia-geforce-rtx-2080-ti-pci-express-scaling/7.html
The performance takes an even bigger hit as you lower bandwidth to PCIe gen 3.0 x4 (comparable to gen 2.0 x8), though still not by the double-digit percentages we were expecting to see. You lose 9% performance compared to gen 3.0 x16 at 1080p, 8% at 1440p, and, surprisingly, just 6% at 4K.
@mr_zomka, you will have to cut the adapter to the right length, but there are already prepared holes for 2242 length. Otherwise it will overhang a battery screw and a speaker. I tested it function-wise and it works. If you get the non-TU version, the cable will come out on the right side due to 2242 port direction. If you get the TU version, it will come out on the left, but it will have to go across the whole laptop, so 50cm option is a must and even then its not very comfortable.
Also, In both TU and non-TU versions the cable will come out at the location of the speaker on either side, so I dont think you can mod bottom case if you want to have it on during use.