OK, a few folks have asked me what the best machine is for compiling things like the Linux kernel. Turns out the answer isn't super intuitive, but the new AMD Ryzen has just been a monster at doing this. They have more cores and more threads, ECC for big memory and overclocking. All things that Intel charges buckets for. So what if you want to build a machine like this, what do you have to know:
- Processors. The Ryzen 8 core is one of the fastest linux compiles known at $800. And the Rizen 5 1700x is a real value leader at $200 for six cores. All of these overclock by the way, so you can expect perhaps 20% more performance. The machines also support ECC, so just make sure you have this support in the motherboard. With even 32GB of memory, you will get soft failures.
- Motherboard. Since you do not need SLI, the B350 is a fine board. Moreover, they support ECC if you look closely such as the ASUS Prime B350-A/CSM (although this has reliability and firmware issues according to Newegg) and B350-PLUS both supported unbuffered ECC. The ASRock AB350M Pro also supports ECC and has good reviews. It also has a native USB C/USB 3.1 connector and a single M.2 NVMe socket. The only thing missing is onboard Wifi (there are no mATX or mITX boards with wifi yet for Rizen)
- Memory. The Ryzen boards like fast memory, DDR4-2666 typically works and you can overclock to DDR4-3200. Note that with Ryzen, memory works in multiples of 233MHz. ECC usually is a little slower but more robust. On the qualification list for the ASRock AB350M Pro QVL they have a DDR4-2400 but only 4GB RAM sticks. It only supports unbuffered (non-registered) ECC, so density will be lower. Most unregistered memory is 1x4GB so you get a maximum of 16GB. If you try to get the 8GB sticks then you are limited to DDR4-2166, so that's the tradeoff. Right now, if you only need 16GB, then you fully populate with 4x4GB and get to DDR4-2400. If you think you need more like 32GB then you use 4x8GB and are running slower at DDR4-2166. But there seem to ASRock support on Reddit but also problems with 16GB ECC. Rymem is a great resource too, but most people don't use ECC. There is some thoughts that you need to use single sided (single rank)ram to make it all work. In fact, single rank memory is faster so, the fastest 8GB dual rank is DDR4-240 vs DDR4-2666 for single rank. The system also slows again with four memory cars, where the maximums are 1866 for dual rank x 4 memory cards and 2133 for 4 single rank memory cards. In the end since 16GB is the most you can get with ECC memory, it's not clear it is worth it compared with 16GB of DDR4-2600 memory. It's simple with 32 or 64GB of RAM. For overclockers the suite spots use Samsung B-die like the G.Skill Trident RGB or the Corsair Vengance LPK 16GB C16 which overclock well to 2933 to 3200 or even 3500.
- Cases. This is a compile machine and it won't have lots of disk, a simple mATX desktop should be enough. A Rosewill $24 can is enough.
- Video. Since Ryzen doesn't have onboard video, you need a simple video card, There is a $28 dollar Radeon card that should suffice. But the case is big enough to support a big graphics card if you want to put one in. SLI isn't supported, but there is room for dual graphics cards with one used for machine learning if you want. If you want a decent card for display the GTX 1060 is a good value at $250 vs the premium priced $780 GTX 1080Ti
- Wifi. Since this is mATX, then you can put a card directly into the box.
- SSDs. For a compilation machine, just having some fast SSDs is the trick. Ideall two one for m.2 and then another for the SATA m.2 socket.