1474 posts in this topic
I have a Lenovo G40-70 that I'm trying to add an eGPU to, it has an Intel Core i7-4510U CPU, 8GB of RAM, and onboard Intel HD Graphics 4400. I bought a Bplus PE4C v4.1 with the M.2 A/E key, and a Sapphire Radeon R7 240. The power supply is an Antec ATX 430W.
I started trying to get it running on Win 10 64bit, but as that was installed with UEFI I couldn't run DIY eGPU. I've since installed Win 8.1 Pro 64bit using "Legacy" mode. For testing I'm using HWiNFO64 to check the status of the system's PCI Express bus.. the tree for which looks like this:
- PCI Bus #0
- Intel Lynx Point-LP - PCI Express Root Port #3
- PCI Express x1 Bus #1
- RealTek Semiconductor etc. etc.
- Intel Lynx Point-LP - PCI Express Root Port #4
- PCI Express x1 Bus #2
Bus #2 is where my laptop's Wifi was plugged in, and has been swapped out for the eGPU.
At first I had no luck at all with getting the eGPU to show up. So I tried going through every combination of Delay and Settings configuration of the switches on the PE4C. I tried booting with the wifi installed, sleeping, swapping in the powered up eGPU and nothing. Tried booting with the eGPU powered up, booting with it powered off. Still nothing. Tried taping over line 22 on the PE4C's key. No change.
I purchased the DIY eGPU app and have been trying to figure it out, but initially I wasn't able to get the eGPU to appear in DIY either.
I'm not 100% certain what happened but during yet another boot into DIY, with the PE4C switches set to stock.. first position on each switch.. no special power up on the PE4C.. suddenly my eGPU was there! It had found it!! I have no idea what had changed, but it was working.
I ran a few of the commands in DIY eGPU which only work on a found eGPU. Didn't really understand any of the output though.
So I crossed my fingers and rebooted into Windows and found that it was still working! The video card showed up in HWiNFO, so I installed video drivers, rebooted, still working. I had video out put to both the external monitor and my laptop's screen.. dual monitors, not mirrors. Thinking the worst was over I began setting up Steam. A short time later my external monitor suddenly cut out, and then my laptop locked up.
Reboot. The eGPU was still working.. but my internet connection was messed up for about 10 min, before finally coming back. The LAN hardware is in PCIe Bus #1 so maybe there was some kind of 'crosstalk' with the video card on PCIe Bus #2? About 15 min later, the output to the external monitor died and the laptop locked up again.
I shut down, removed the PE4C's key from the PCIe slot and rebooted. The onboard GPU worked normally and no crashes. A while later I re-installed the PE4C's key and found that my system could no longer find the eGPU.
I've been poking around this forum looking for possible solutions, and booting into DIY eGPU to try and make sense of it all. But I think it's time to reach out and see if anyone can suggest a course of action...
I've tried to run "Compact All except..." in DIY with the default range, and it appears to run, but then I'm unable to return to the GUI due to "C: DOS area: sector not found" error. So I ran the command which logs the compact attempt and I'm attaching the C:\diag folder to this post.
Please let me know if you have any suggestions or if there's any more info you'd like me to provide. I have photos of the handful of tests I ran in DIY when the video card was detected, and I can provide them if you think they might help.
NOTE: This post has been updated to reflect the latest state of this implementation...
I am delighted to share a bit of my new successful implementation...
After fighting my way thru previous EGPU implementations using several Linux distributions. From Ubuntu Mate 14 & 15 to Linux Mate and Centos 5 and 6. I only documented one of them.
I had to share this experience, mostly because I am amazed by what the community behind Ubuntu Mate 16.04 has achieved. So bear with me.
Intel Core i5-3320m at 2.6 Ghz
8 GB DDR3L 12800
16 GB DDR3L 12800
Intel HD 4000
Zotac GeForce GTX 750 1GB
EVGA GeForce GTX 950 SC+ 2GB
KFA2 GeForce GTX 970 OC Silent "Infin8 Black Edition" 4GB
EXP GDC v8.3 Beast Express Card
Seasonic 350 watts 80+ bronze
Internal LCD 1600x900
Dell UltraSharp 2007FP - 20.1" LCD Monitor
I prepared the hardware as usual. Feeding power to the Beast adapter using the PSU. Plugging these into the laptop's ExpressCard slot.
The installation of Ubuntu Mate 16.04 used is only a couple of weeks old and is loaded only with a full stack of Python and web tools I need.
For the integrated graphic card, stock open source drivers are used. For the EGPU... I was ready to perform the usual steps, disable nouveau drivers, reboot switch to run level 3, install the cuda drivers, etc. But..
Following the advice read on a Ubuntu/Nvidia forum, and very sceptical, I installed the most recent proprietary drivers for my card. Reboot. Boom! I am done. Even functionality previously not available in Linux is now available...
As you can see from the last screenshot the drivers now report what processes are being executed on the GPU, that was something reserved previously to high-end GPUs like Teslas.
That screenshot also shows the evidence of the computation being performed in the GPU while the display is rendered in my laptop's LCD.
This screenshot also shows how the proprietary driver can now display the GPU temperature as well as other useful data.
For those of you into CUDA computing, I can report CUDA toolkit 7.5 is now available in the Ubuntu repository and also installs and performs without any issue. I went from zero to training TensorFlow models using the GPU in 30 minutes or so. Amazing!
I could expand this post if anyone needs more info, but it was very easy.
After upgrading the GPU two times, my system is now capable of handling Doom fairly easy. Now some benchmark results.
RAM eGPU PCIe gen 3d Mark 11 3dm11 Graphics 8 GB GTX 750 2 P3 996 4 095 16 GB GTX 750 2 P3 994 4 094 16 GB GTX 950 1 P5 214 7 076 16 GB GTX 950 2 P5 249 7 709 16 GB GTX 970 1 P7 575 11 202 16 GB GTA 970 2 P8 176 12 946
Now, the difference between Gen 1 and Gen 2 might not seem relevant from the results in the table. But playing Doom there is a difference of around 15 fps on average between both modes. This brief difference is even more noticeable during intense fights.
I finally got my eGPU setup working after many endless hours, and decided to write and implementation guide for users struggling with similar setups.
13" Lenovo Thinkpad Edge E330
8 GB RAM
EXP GDC Beast v8.0 eGPU adapter with mPCIe cable lead
450W Corsair CX450M PSU
Gainward GTX 670 Phantom edition 2GB GDDR5 225W TDP
will include later
Now for the build itself...
As Lenovo Thinkpad Edge's TOLUD is 3,5GB leading to Windows error 12, and Lenovo is well known for using whitelisting, the build might seem like a lost cause. However when there is a will, there will eventually be a way.
!!! DO A BACKUP FIRST !!!
To overcome the error 12 I followed the guide on this thread:
Windows 8.1 and 10 users please note that you have to run the following command as and Admin user in command prompt
bcdedit -set TESTSIGNING ON
Now we only have to overcome the whitelisting. The only way to overcome it elegantly is with a bios mod. However you are only able to install bios mod if you have bios version 1.09 or older as Lenovo Thinkpad Edge E330's bioses 1.12-> have EEPROM write protection thus installing a bios mod requires certain flashing device and an skilled user.
As bios modding is a dangerous thing to do, and can lead into a seriously overpriced paperweight (your laptop!!), I myself didn't feel the urge to do it.
I settled for hotswapping: Boot the laptop with whitelisted WIFI card attached > Boot into setup 1.30 menu > hit F5 > carefully remove the WIFI card and attach the eGPU and voila! Setup 1.30 should now detect your eGpu
3.Booting to windows
After succesfully completing a DSDT override, and overcoming the whitelisting, now what is left to do is to boot into Setup 1.30 (using above hotswapping method or not if you have a bios mod) and run a pci compaction 36-bit on eGPU and then chainload to windows and start gaming (YEAHH!!!! THAT'S RIGHT BITHCES)
As Lenovo Thinkpad Edge E330 has an half-miniPCIe slot I removed a tiny piece of plastic to make the EXP GDC mPCIe adapter fit better
I myself got a huge gaming boost out of this and enjoyed doing it, however your mileage may vary...
@nando4 for setup 1.30 and eGPU threads
@angerthosenear for DSDT override guide
Good evening, so I got a Toshiba P50-A-12Z to use as a work horse, mounted a 480GB SSD, 16GB of RAM, and I already knew that there is something that limits the cpu clock to 2.7Ghz when all cores are used, it is already repasted with Grizzly Kryonaut and it wount go over 70ºC under load, but its BIOS is very limited and I have some hope that I might be able to remove this clock limitation.
So, I updated the BIOS/EC to the latest version(1.9 and 1.3EC) and it is an AMI Aptio BIOS, no information about the Aptio version but it as UEFI boot, but no acess to UEFI shell from the BIOS.
If i use the lateste 5.05 AFUWIN in Windows the system hangs and must be shutdown in the power button because the keyboard/mouse dont respond anymore.
Using a pen with FreeDos(via Rufus) with AFU for Aptio 2.28, AFUDOS 5.05, AFU4.25, AFU4.28, AFU4.33 and anything else that I might be forgetting, I get either BIOS is write protected or cant get flash information.
Is there anyway to dump this BIOS?