ryzen build (for openbsd)
I like my computers fast and light, and thus the preference for Thinkpad X1 models and the like. But recently I’ve been playing more with my Samsung ultrabook and it’s definitely a step back in the performance department. But then I thought, what if we get a really fast desktop and remote into it? The classic solving a problem by turning it into two problems.
I am not, by any means, a particularly expert computer builder. On the other hand, I know this and took some steps to minimize the amount of self damage I could inflict, so maybe this is helpful.
The first thing to get is a CPU. I picked the AMD Ryzen 3700X. It’s 8 cores, 16 threads. It sits at an odd spot in the value curve. It’s 50% more expensive than the 3600 for only 33% more cores, but another 50% in cost moving to the 3900 nets an additional 50% more cores. The 3800X is approximately the same cost (actually between time of ordering and time of writing, the 3800X is now cheaper than I paid for the 3700X), and slightly faster, but also generates more heat.
My inexpert skills are better suited for a computer that doesn’t require perfect cooling to reach its potential. I figure I can get 65W worth of fans pointed in the right direction, but less confident about more than that.
For a case, I went with the Thermaltake V21 Cube. It’s micro ATX, but not particularly small. Shorter than typical tower, but wider. It sends up having lots of empty space inside. At some level, a case is a case, but this worked out really well for me.
All four sides come off, leaving large openings everywhere. It’s very easy to get in and adjust things later. The motherboard lays flat, which appeals to me since I have an irrational fear that the CPU cooler is going to jump off the motherboard at any moment. (Also, my current desktop is a tower on its side because one day about five years ago it wouldn’t turn on, and I turned it over to see what was wrong, and then it worked.)
For power supply, used the Corsair CX450. This is conveniently semi modular. If you don’t care about the color of your cables, you can just use the attached ATX power without any extras tangling things up. There are smaller and cheaper power supplies (I’m never going to approach 450W here), but not always as convenient.
For motherboard, MSI B450M PRO-VDH Max. There wasn’t much decision making here, just clicked one at random. It worked fine, but I’ll note that after the 16x graphics slot, there’s only 2 1x slots, which are mostly useless (and one would be blocked by a double width graphics card). It was fine for my purposes, but it’s not even possible to add a 10G networking card.
For graphics, low end options are kinda limited. The XFX Radeon 220 has no fan, is low power, and fits in a single slot, should that be a concern. It’s well supported by the radeon driver in OpenBSD, and at least capable of full screen 1080p glxgears. You can move up in the graphics world by switching to Nvidia, but that’s not a great fit for OpenBSD.
Add some RAM and SSD (Samsung 970) and it’s set. Putting it all together was pretty easy. There weren’t many cables involved, and plenty of space for the few that were.
At idle, this build draws about 50W from the wall, and about 150W compiling llvm.
It’s quiet, but not silent, at idle. The large 200cm fan in the front of the case makes a gentle air whirring sound at all times, but it’s hard to hear from more than a few feet away. The CPU fan was more annoying, but not aggravating. Whatever the cause (thermal paste, heat sink, bios fan ramp) it would rather quickly spin up to audible levels whenever the CPU was doing even modest work. It never got especially loud, but I could hear it just running rsync from across the room.
So that went well, but then I immediately think things could be better.
Let’s get a motherboard with some more expansion. ASRock B450M PRO4-F. This has a second usable PCI slot, and also moves the 1x slot above the graphics slot so it’s not blocking. There’s a second M.2 slot, but it’s SATA only. I’m not sure how useful this is, but since I had such a drive from an old laptop, I popped it in.
Switch to an XFX RX 560 for graphics. This is the lower end of the new Polaris models, and in OpenBSD requires the amdgpu driver. It worked well enough to run glxgears as well, but it may not be as stable? I wasn’t really planning on pushing it very hard. It has an always on fan, but at low speeds it’s completely inaudible.
I also switched to a classic Hyper 212 cooler, now in black.
Since I had everything out and open again, I added in a few SATA drives that were not being used. Here I discovered a minor issue with the case. The 2.5in bays are along the one side panel. It’s conveniently out of the way, but I think you’d have a very difficult time getting the normal ribbon style power cable to connect more than one. It’s not going to like bending that way. Otherwise, the case proved to be quite helpful in rewiring everything.
This build is generally quieter. Especially under load, it remains much quieter than the first build. If I were doing everything again from scratch, I’d probably stick with the Radeon 220 graphics. Keep the cables to a minimum. Switch motherboards for sure, and use the 212 cooler. Using both nvme and sata M.2 slots means no cables for storage either.
If you only go component shopping once every five years, you may hope for some do overs.