That one time I had a scuffed eGPU setup

I was about to have an actual picture of the setup I had back then but it seems all pictures I've had of it got lost to time, sorry, so just have an online photo of the adapter I used...

EXP GDC Beast with ExpressCard connection

You know, there was a time my main computer was a scuffed Lenovo Thinkpad W520. It was an older laptop than what I previously had (2015 release vs 2011 release) but it had better specs. It had a 2nd generation i7 but it was an i7 nonetheless.

At that time I had no desktop computer and I was essentially using this laptop as one, I even had a fancy docking station to go with it. But I still wanted something a bit closer to a desktop computer...

And guess what, I was also learning more about eGPUs and I was becoming more and more fascinated by them...

And now is probably a good time I explain -

What is an eGPU even?

so... That W520, it had a dedicated GPU, an nVidia Quadro 2000M. It was.. something but it was very not great. Dedicated GPUs integrated into laptops are... not great - and can even cause issues down the line because usually they like to overheat.

But what if I told you that you could plug a desktop graphics card into a laptop? Externally! as in a wire that goes from the graphics card to the laptop. That's what the "e" in eGPU stands for.

The most viable and sensible way to go about this endeavour at all is having a laptop with a Thunderbolt port which obviously would imply that the laptop is newer and also having to buy a pretty expensive eGPU enclosure over Thunderbolt.

But I was a poor student at that time...

eGPU over ExpressCard? Wait what even is ExpressCard??

Thing is, older laptops without Thunderbolt still had options. The most popular one at the time from what I noticed was tearing apart the laptop, pulling out the radio (WiFi and Bluetooth) card out and connecting a cable that was going to a PCIe adapter.

Each laptop has a Mini PCIe port that is typically used for a radio card and... modders were using that - but as you might imagine it was not convenient at all, that port is internal and requires tearing the laptop apart... each time... or just giving up on portability and keeping the laptop on the desk at all times. I saw people on Youtube also cut a hole in the laptop's chasis where the Mini PCIe plug is but that's... still ugly and iffy xD.

But there was one more less common option.

The W520 was a business-oriented laptop of the very early 2010s era. That meant it had a particular more convenient expansion slot that I could use for my plans.

And that is ExpressCard :3
It's a sort of deep and long expansion slot used on older laptops. But it hasn't seen a lot of practical use so it's not a very popular port, let's say that.

And, hey, compared to Mini PCIe it's right there on the side of the laptop easy to unplug.

Expresscard slot

Introducing - The EXP GDC Beast (with ExpressCard cable)

So here we are in the summer of 2020 when I have decided I will go for it and did a bit of a shopping list:

Now, as we'll soon learn that graphics card is a bit overkill for the bandwidth of an ExpressCard slot and that power supply is overkill for just one GPU, but I bought them with the idea that I will reuse these two parts in a future proper desktop PC build, which I actually eventually did so it did turn out a good idea in the end.

As for the GDC Beast, there are other cheaper or more expensive options, the cheaper one is quite DIY and finicky which seemed like a fun challange but in the end I decided to play safer anyway with this. Feel free to read more on the egpu.io page.

Now, before getting on to my experience with it let's talk about how it is not all fun and roses, if you already have some knowladge of these ports you may already notice the issue:

The bandwidth (spooky)

So the RX 580 and... all GPUs of that era are PCIe 3 x16 - that's what we aim to equivalate with our silly adapters and enclosures.

Now, there are 3 generations of ExpressCard. Realistically gen3 is very rare so gen2 is the realistic maximum - which equivalates to drumroll please

PCIe 2.0 x1

uh, yeah.

That is 4Gbps - 512 megabytes a second. Through which I have to cram the data of a GPU.

And I mentioned gigabits then gigabytes second because at first I actually didn't notice this difference back then and became aware of it only later. Which I am embarassed for but hey rookie mistake.

But yeah, now you can see there are going to be issues.

Fun experiences of running the eGPU

So here we are finally. It... wasn't as great as I have expected actually. The lack of bandwidth yielded pretty interesting issues.

Let's start with Linux

At that time I was still running X11, especially for the fact I was rocking a legacy nVidia card on that laptop too... and Wayland was still not really ..uhm ready for me at that time anyway.

Now, it wasn't fun but at the end I got it to work, after some particular Xorg configs, since I was also using optimus-manager - a tool to fully switch the desktop session between the integrated Intel GPU or the discrete nVidia GPU. At that time it was also only supporting X11, but either way. It was the best option for me for reasons out of the scope of this blog post, point is on thing it was doing was automating loading particular Xorg configs for each GPU mode, so I had to do my best to get it out of the way before even trying to launch an Xorg session with the eGPU, otherwise Xorg would fail to start. So that's one pain point.

So.. I finally got a desktop. Things looked as they should but there was one funny problem, an effect of this whole atrocity of a setup. Some animated 2D movemens were super super slow; for example when I was dragging a selection rectangle with Flameshot, the screen shotting tool I was using at the time, well, the movement of the rectangle was painfully slow. If I remember correctly the smooth scrolling of Firefox was also jarring (but honestly it was long enough that I don't remember. This is what I get for procrastinating writing on stories for so long).

Also if I recall corectly the screen would randomly fill itself with noise and the whole deal would crash.

So... yeah not a great experience.

And now on Windows

Things were a bit more ...stable. And I was able to try some games! yay.

The results were interesting. Some games were running mostly fine but with less FPS than if I was running it on a sane setup with no bottlenecks. And others would just still have their FPS drowned down the toilet, below 60, while on a normal setup (as I would later learn when building my desktop PC with the same graphics card). osu!, a 2D game, was running fine, a bit better than on the laptop's discrete GPU.

And, as a side note, yes we're talking about performance of a 2D game because we are talking about a pointer device driven rhythm game which means input latency is crucial; and the original game is single threaded and input is locked to the graphics frame times. This means I wanted uncapped FPS and an exorbitant amount of them to get good input latency. And yes this eGPU helped with it, I guess. (But now this is a non issue in osu!lazer)

That was about it I think.

In the end, as I said, I decided to later build a proper desktop PC reusing the components, which really came in handy because I did that in the middle of the 2021-ish GPU shortage.

And also just sold off the Exp GDC Beast for someone else to have "fun" with.


Moral of the story?

Honestly, try things out if you think you'll have fun. Just be a bit smart about it to not have things go to waste 🤭.