Since my old computer was getting very old, I decided that it was finally time to build a new computer and allocate a generous budget this time.
I use my computer for several different purposes. What I consider the most important is to use it for overall learning and for experimenting with software development, mathematics, and computer science in my spare time. To this end, I want it to both run all software development tools (at the same time!) with ease and be able to build big open source software projects in C++, C, or Rust quickly. I also want to experiment locally with data analysis, machine learning, AI, algorithms, distributed systems, databases, and multi-core optimizations.
To a much lesser extent, I also use it for gaming so it should be able to perform for that too. This mostly requires a fast GPU, so it’s a subset of the above use case. Since I wanted to get a 4k monitor, this did get a bit more challenging, however.
I usually run Linux for software development and almost everything else except gaming, but I still use Windows for gaming and occasional other uses.
When it comes to budget, I didn’t want to spend huge amounts of money without getting anything in return, but I was very flexible on the cost this time. I never spent a lot on a computer, so I decided to do so at least this one time.
Let’s go through what components I ended up with and some quick comments!
Central processing unit (CPU)
I quickly decided that it would be awesome to get a CPU with many cores, even if it would cost a lot and possibly give me worse gaming performance. After a lot of thinking and balancing, I ended up with an AMD Threadripper CPU. They are not cheap and they have higher memory latency due to their design, but they are perfect for my purposes.
For gaming, a cheaper AMD CPU is likely to give better performance at a lower price. Surprisingly, all modern game engines seem to be very narrowly optimized only for typical gaming CPUs with fewer cores and I haven’t seen any game use more than around 8 cores. Most games can therefore be expected to run better with a CPU that has 4-8 very fast cores with low memory latency. I think it’s time for performance-critical software to support much more parallelism.
Which Threadripper then? There are several in the latest generation with a varying number of cores: 24, 32, 64. The price goes up significantly between each and I’m very happy that I went with the 24 core AMD Ryzen™ Threadripper™ 3960X Processor. The memory bandwidth is the same as for those with more cores and it’s a challenge already to cool this CPU.
Along with this, I went with 64 GB (4x16 GB) of Kingston FURY Beast DDR4 Memory with relatively standard latency (CL18) at 3600MHz.
There were a few reasons for this. First, the Threadripper CPUs add quite a lot of memory latency regardless and the RAM latencies themselves are just not making enough relative difference to motivate the high prices. With a Threadripper, you will instead have to make up for this with the high core count and simultaneous multithreading (two hardware threads per core) so that you can have many threads waiting for RAM operations and still get a lot done. The Threadripper 3660x also has a big cache that helps with this to some extent.
The 3600MHz RAM speed seems to be a sweet spot for the Threadripper CPUs due to limitations in the CPU above that. Having four RAM modules is also important to make full use of the four memory channels, which is one of the advantages of Threadripper CPUs over Ryzen CPUs. Overall, this RAM configuration seems to give a lot of bang for the buck with this CPU. I can still add four more modules.
There are a quite limited number of motherboards to pick from for the TRX40 socket that the third-generation Threadrippers use. All of them appear to be good and some of them are extremely expensive. I’ve had good experiences with ASUS motherboards before, so I decided to buy a relatively cheap ASUS motherboard: ROG Strix TRX40-E Gaming.
This motherboard is already more than I need, but I like it a lot! It has a small display to show diagnostic information, which was helpful at times. It comes with pretty much everything I could imagine and then some. It provides convenient fan control similar to my previous ASUS motherboard, that I like. Everything works well in both Windows and Linux too (without special drivers).
Power supply unit (PSU)
I decided that 1000W should be sufficient and went with a modular Corsair based on good experiences with them in the past: Corsair RM1000x.
It’s done its part, but this component is actually the only one with some small problems. It appears to have significant coil whine when idle. It predictably goes away under load. Some research on this suggests that it has no impact on functionality or reliability apart from the sound. Either I got used to it or it decreased after a few days. Either way, I don’t consider it a big problem.
Apart from coil whine, the PSU offered the same solid experience as with my previous Corsair PSU and the cabling was easy to deal with.
Another goal I had was to finally get one or two fast NVMe SSDs, which is one really nice performance improvement since I built my previous computer. Originally, I was considering Samsung SSDs based on owning a SATA Samsung SSD before. That could have given me slightly higher performance than what I chose.
After some research and comparisons, I ended up buying slightly slower and much cheaper SSDs that should endure more writes before failing: PNY XLR8 CS3040 M.2 NVMe Gen4.
I recommend these SSDs! The practical difference in having slightly higher speeds are slim, so it’s better to prioritise other aspects. These are still consistently extremely fast, but don’t have the highest peak speeds you can get. Some disks are not as fast when writing large amounts, which is also worth looking at. There are more differences than I knew about before, so I would recommend reading comparisons and in-depth reviews.
It’s very hard to buy a graphics card at the moment. I was lucky and also decided to be flexible with the price since it will be useful for both gaming and machine learning and also me learning more about programming GPUs.
I managed to get my hands on a Gigabyte GeForce RTX 3080 Ti AORUS MASTER. This beast provides 12 GB of RAM and loads of computational performance, including ray-tracing acceleration and matrix multiplication acceleration (called tensor cores) for machine learning or similar. It’s definitely not good value for the money, but it is extremely good! The AOROS MASTER model from Gigabyte even comes with a fun (and mostly useless) display on the side of the card.
The card has worked great. It generates a lot of heat, which ends up inside the computer case, so it’s important to have good air flow. More on that topic below.
I like the Swedish Fractal Design cases from before, so I got myself a Fractal Design Define 7 Dark Tempered Glass. This is an excellent case as expected and makes it very easy to assemble the computer. Overall, I’m as satisfied as ever.
With a Threadripper 3660X and a Geforce RTX 3080 Ti in the computer, cooling is a big challenge and I underestimated the computer case’s impact on that. The Define 7 is not great at airflow and I think there are other Fractal Design cases that would have been a better choice because of that. Water cooling the CPU was not enough to make case cooling a non-issue under full CPU and GPU load.
At the same time, I got the cooling to work nicely after making a few adjustments. More on that later.
Since the Threadripper is such an extreme CPU and is tough to cool and since I wanted to try it, I gave water cooling a try. After reading up on it and considering that I’m both a beginner and also didn’t want to spend too much time and money on it, I opted for an all-in-one (AIO) cooler.
I picked an Alphacool Eisbaer Pro Aurora 360 CPU AIO which has a big CPU block that covers the entire Threadripper CPU.
The Eisbaer AIO cooler works really well. I did have a problem with this initially, however. I mounted the CPU block upside down, despite following the manual carefully. It turns out that other models have instructions in their manuals about orientation, but it has been left out in the manual for this model. That must be a mistake, since in retrospect it’s very clear that the reservoir should be up and that small air bubbles then collect towards the glass on the top side as intended.
A photo from after remounting it with the reservoir up:
In addition to the CPU cooler, I bought Thermal Grizzly Kryonaut too us as my cooling paste. I have no idea if this makes cooling better than what was bundled with the AIO kit, but I like the feeling of naively believing so. The built-in tool for applying it to the CPU was definitely convenient!
To improve the airflow and the fan control, I replaced the case fans and added one more in the front. The fans I use are Noctua NF-A14 iPPC-3000 140mm PWM for the front and the same with 2000 RPM for the back. These fans are simply fantastic and made a big difference. They sound a lot at maximum speed, but that’s not fully needed even at full load after some tweaking.
To be able to connect them all with full power, I got a Noctua NA-FC1 fan controller and some Noctua extension cords. This can be seen at the bottom right of the photo at the top of the post.
There were a few minor mishaps along the way, but it went smoothly overall. I used an anti-static mat and wristband and read all manuals carefully along the way, after reading up before too. There’s not too much to say about the steps needed other than: read the manuals.
For installing an AIO cooler in the best possible way, I recommend reading up online and watching various good YouTube videos that are available. I ran into an additional problem that was quite unique for the AIO that I chose and which was missing from its manual (see above) and I recommend everyone to orient that particular AIO with the reservoir up.
Another small mistake was to connect both the USB 3.0 and USB 2.0 cables from the Fractal Design case to the motherboard. This was me not reading the manual carefully enough, since they are for the same set of 4 ports on the case and you should connect one or the other and not both. The motherboard gave me a helpful error message about this and I quickly figured it out. No damage done in the end.
The rest of the challenges that I ran into were all related to cooling.
I started out by installing the AIO radiator at the top, while keeping the top dust filter of the case, and adding a single Noctua 2000 RPM fan in the front. After this, I tuned the fan controller of the motherboard and tried out enabling PBO for the CPU to get some small boost in performance.
After having all of this up and running, I load tested the computer by running the Heaven GPU benchmark tool and benchmarking in CPU-Z to fully load both CPU and GPU. This made all the fans turn up to 100% and temperatures continued to climb up high enough to throttle performance slightly. I still got good performance overall, but it sounded like a jet plane. The computer also tended to get warm and spin up the fans occasionally unless I had the case fans running quite fast always. This was close to working well and even under full load I mostly had temperatures under control, but not without extreme noise.
I made a series of changes to improve this:
- Install better case fans. See above.
- Slide the AIO radiator forward a bit so less air escapes in the gap in front of it.
- Remove the dust filter at the top of the case, since it’s not needed.
- Permanently remove the front door from the case.
- Turn off PBO for the CPU to reduce heat generation.
- Tweak the fan controls in the motherboard.
All this together got me great cooling at a low noise level even under full load! Everything made some difference, but removing the front door made the biggest difference. It still looks more than ok, but this is a sign that the Define 7 case isn’t focused enough on airflow without some modifications.
Disabling PBO for the CPU was an improvement to me. I didn’t get much better performance with it enabled and it seemed to increase heat generation significantly. It’s probably a great feature for someone with better cooling (and a bigger interest in overclocking), but I achieved the perfect balance between noise and performance with it disabled.
Overall, I seem to have good cooling without ever maxing the fans now and at least a slight positive air pressure to keep dust out.
I ended up installing Linux on one SSD and Windows on another and the computer works great in both. It’s not completely silent, but well within what’s reasonable to me and it has some extra cooling capacity for warm summer days.
So far, I didn’t find any demanding games that it can’t play perfectly, which is no big surprise. It still doesn’t reach 144 FPS in the latest Battlefield, which seems to be because the game is badly optimized in general for many cores (and a Threadripper isn’t making that any better). There’s still no game that I can’t play right now with better performance than I ever felt a need for.
Similarly, I get extremely good performance when compiling software in Linux, benchmarking multi-core performance in my hobby projects, or training machine learning models using TensorFlow.
Is it good value for money? Not really, but that was by design. It’s better than necessary in almost every possible way and that has been just as fun as I hoped!
Is it a great computer? It most definitely is! I’m having loads of fun and it’s inspiring me to get back to programming and learning about machine learning and GPU programming in my spare time, which was one of my goals. I’m very happy with everything, with the small exceptions of the idle coil whine in the PSU and the limited airflow of the case (without removing the front door). Still, I’m happy with even those two components in the end. Perhaps I’ll replace the PSU at some point, but the case is here to stay and I don’t mind using it without the front.
Nowadays, a great alternative to a powerful computer is to use the cloud, but for a workstation type of computer, this build is very good at almost everything. There are some advantages to having a powerful local machine too, since the cloud can get expensive to use a lot, whereas your home computer is mostly expensive once and can also play games.
As mentioned above, this is not a good computer build if gaming is the primary purpose. In that case, it would make more sense to go with a Ryzen CPU and consider staying with 32 GB RAM.