My Desktop: Knuth

My Desktop: Knuth

on by Cade Brown


Building a machine for programming, machine learning, gaming, content creation, and more.

It’s been ~4 years since I’ve built a computer, and the new generation of CPUs and GPUs had me missing out on the fun. So, I decided to build a new computer, and document the process. I ended up going with the following parts (check out the full list, too):

I wanted a machine that I could use for machine learning, as well as normal programming, and gaming for recreation. Also, I had some money still burning a hole in my pocket from my NVIDIA internship, so I decided to splurge a bit. The 4090 is a beast for both ML and gaming, and the 7950x is a beast for production and compiling:

Knuth, fully assembled
Knuth, fully assembled

Building the Computer

Building this PC was extraordinarily easy, I was a big fan of the HYTE Y40 case — it looks beautiful and fits the 4090 perfectly with the included vertical GPU mount. This is almost essential for newer generation cards, as mo

The slightly larger cousin, the HYTE Y60 was just too large for my liking. My desk space is sacred, and I just couldn’t justify such a large (and heavy) case. I also like to bring my desktop computer sometimes to hackathons and LAN parties and the Y40 just crosses the threshold of what I’d consider portable.

If I was really concerned with maximum portability, I’d get a Small-Form-Factor-PC (SFFPC) case, but then again, the 4090 really doesn’t fit most of those anyway. So, this was a good compromise. And I really like red, so…

Boxes of components for Knuth
Boxes of components for Knuth

Q: Why not the 7950x3D?

Some may be wondering why I didn’t go “all out” and buy the new 7950x3D that just came out. The 7950x3D is interesting because it uses 3D V-Cache, a feature that accelerates some games that are heavily dependent on cache. While I was excited for it, there were a number of reasons it doesn’t make sense for me, or for most people:

So, for all these reasons, I decided to stick with the 7950x, which maintains extremely fast core frequency and still has a sizable cache. If I was only using this machine to play games, I’d wait for the 7800x3D, which has 8c/16t and the same amount of 3D V-Cache, but since it isn’t split between 2 CCDs, all cores will have access to the extra V-Cache (thus, performance is more predictable and uniform). This is important, for example, when scheduling processes to physical threads; if a process is migrated to the other chiplet it will suddenly have drastically different performance characteristics. Some workloads will prefer higher core frequency, while others will prefer more cache, and miscalculating will give inconsistent performance. Supposedly, there are thread scheduling drivers, but I’m not sure how well they work.

If you’re interested, you can read more about it in this post: 7950X3D and 7900X3D Hybrid Architecture Clocks and Scheduling Ramifications.