Blog

Hardware upgrade: from 9900K + dual 980 Ti to 9950X3D + RTX 5090

Why I retired my old workstation, what I built to replace it, and what an RTX 5090 unlocks for local AI research.

Hardware upgrade: from 9900K and dual 980 Ti to 9950X3D and RTX 5090

For several years my daily driver has been a Coffee Lake Intel build with a pair of GTX 980 Tis. I started with one card and later added a second-hand twin—mostly for the extra VRAM and horsepower. It served me well, and running two GPUs taught me how to deal with the complexities of multi-GPU training and compute workflows. This rig was an absolute beast but has fallen behind what I want for modern AI & 3D work. I’m not just talking about slower experimentation turnaround times and limited VRAM, but a Maxwell architecture that fewer open-source projects (including newer versions of PyTorch) even bother to support. The hardware was starting to dictate my software choices.

A full rebuild has been on my mind for a while. As an essential tool for my career, this is less a splurge than a well-founded investment. To clarify, I’m not expecting to train frontier models on a single-node local rig, but that isn’t the goal. This machine enables high-end local inference and is my sandbox for prototyping with smaller scale models and mastering paradigms that directly translate to massive infrastructure. My plan is to iterate fast locally, lock down the architecture, and then seamlessly deploy to large-scale clusters via RunPod when it’s time for heavy-duty training. This post is partly a build log and partly a note to my future self about why this upgrade matters for what I’m trying to do next.

I want to include a special thank you to my employer, webAI, for the Meta glasses used to film this PC build. I won these glasses for placing first in our internal webAI team hackathon along with my teammate, Rohit Jayakrishnan.

The old rig

The machine that has been carrying me for years:

  • Intel Core i9-9900K (8 cores / 16 threads) (AIO liquid cooled)
  • ASUS ROG STRIX Z390-F
  • 2× GTX 980 Ti (with SLI, PCIe 3.0 ×8 each)
  • 32 GB DDR4 @ 1600 MHz
  • NZXT S340 case

The new rig

The new build is a local AI powerhouse with:

  • AMD Ryzen 9 9950X3D (16 cores / 32 threads) (AIO liquid cooled)
  • ASUS ROG STRIX X870E-E
  • MSI SUPRIM RTX 5090 (AIO liquid cooled, PCIe 5.0 ×16)
  • 64 GB G.Skill DDR5 @ 6000 MHz (overclocked)
  • Lian Li O11 Vision Compact

Side by side comparison

Component Old New
CPU Intel i9-9900K — 8 cores / 16 threads (Coffee Lake) Ryzen 9 9950X3D — 16 cores / 32 threads (Zen 5 + 3D V-Cache)
Motherboard ASUS ROG STRIX Z390-F (Z390, PCIe 3.0) ASUS ROG STRIX X870E-E (X870E, PCIe 5.0)
GPU 2× GTX 980 Ti (Maxwell, 6 GB GDDR5 each) RTX 5090 SUPRIM Liquid (Blackwell, 32 GB GDDR7)
GPU ↔ CPU link PCIe 3.0 ×8 per card (~7.9 GB/s each, SLI) PCIe 5.0 ×16 (~63 GB/s)
RAM 32 GB DDR4 @ 1600 MHz 64 GB G.Skill DDR5 @ 6000 MHz (OC)

The single biggest change is the GPU. A 5090 is not just a faster 980 Ti—it is a different category of machine. Tensor Cores, FP8, sparsity, 32 GB of GDDR7, and the kind of bandwidth that turns “wait overnight” into “let me try a few variants over lunch.”

Thermals

I’m quite proud of this part: with a 5090 and a 9950X3D in the same chassis, I expected temperatures around 90 °C under heavy workloads. However, under sustained load, at an ambient room temperature of ~20 °C, I see:

  • CPU peak: ~68 °C
  • GPU peak: ~36 °C

At system idle:

  • CPU: ~37 °C
  • GPU: ~27 °C

I attribute this to the whopping 14-fan layout I’ve set up in the Lian Li O11 Vision Compact. The GPU is able to stay exceptionally cool thanks to the MSI Suprim liquid cooler; I added an additional 3 fans to the default configuration, totaling 6 fans on the radiator in a push-pull configuration.

Ryzen 9 9950X3D peaking at 68 °C under sustained load

RTX 5090 peaking at 36 °C under sustained load

The cool numbers matter for more than bragging rights: lower temperatures mean the boost clocks hold for longer, which means more sustained throughput per watt, resulting in longer training runs without thermal throttling eating into wall-clock time.

A couple of notes on the build video

After booting up and experimenting with BIOS settings, I noticed that I wasn’t getting the full PCIe 5.0 bandwidth. I then realized that I had installed my additional NVMe drives in the M.2_2 and M.2_3 slots, which caused the motherboard to split the PCIe lanes between the GPU and the NVMe SSDs. After moving my drives to slots M.2_4 and M.2_5, leaving slots M.2_2 and M.2_3 open, I was able to realize the maximum data transfer speeds of my RTX 5090.

What’s next

More posts will track what I actually do with the rig—training experiments, infrastructure work, and lessons from cluster deploys. Consider this the prologue: the tool is on the bench, sharpened. Now the interesting part begins.