Core Developer PC™ v20.09.dGPU - AMD 3700X vs Intel i7-10700 8c/16t with NVidia 2060 Super
TLDR: Wait… until the NVidia 30 series is available. If you can’t I detail an 8 core/16t, 32 GB DDR4 RAM, 1 TB NVMe PCIe 3.0 SSD, PC with the NVidia 2060 Super at about ~$1300/~10000 DKK* (* incl. VAT).
Assembling your own developer PC is seen as a rite of passage for many self respecting developers. Personally I have assembled perhaps more than fifty PCs both for personal use and for work. That is quite a lot and is because, at one point, I assembled industrial PCs for work due to quality issues with previous PCs. Those issues were mainly resolved by selecting quality components for industrial use, not so much due to my PC assembly skills, I think 😅
Last year I assembled 3 new deep learning model servers used for all our training needs at work in our fully versioned and reproducible machine learning pipeline written in C# (incl. neural network definitions and training). We use Azure DevOps with agents running on these servers for scheduling and keeping track of all work. Git and nuget packages for code, libraries and versioned ground truth data. If you clone a training git repository and run it on the same GPU you will always get the exact same results. However, this is not the post for that 😉
I have always enjoyed selecting components for and assembling a PC. There is something very satisfactory in the PC posting the first boot screen without issue after assembly. This doesn’t happen every time though 😅 Good news is it has newer been easier to assemble a PC. And there are lots of videos online showing you how to.
So Inspired by Scott Hanselman’s Ultimate Developer PC and Jeff Atwood’s Building a PC series this post explores selecting components for a core developer PC at this point in time. Tomorrow or soon after everything will be different and choices will have to be revisited.
It isn’t time for me to update my work-from-home PC just yet, though, I am definitely waiting for AMDs Zen 3 and NVidias consumer Ampere cards that have just been announced. Especially, the latter looks promising with its new TF32 floating point format and fixed sparsity support for machine learning.
This means this blog post won’t be going into detail on actually assembling the PC. However, I had a request for a possible configuration of a decent work-from-home desktop PC that can be used both for software development but also deep learning software engineering. So I thought I would do a write-up of a PC that is:
- Efficient
- Quiet (almost silent)
- Affordable
- Build to last
- Supports deep learning software engineering
- Unobtrusive with no frills, no RGB LEDs, no annoyances
- Wired - no wifi (always prefer a cable when you can)
This PC won’t break any world records when it comes to performance. It will knock the socks off most laptops without the sound of a jet turbine in your ears, though. 🛦 It also won’t make you pay attention to it with colorful LEDs. It’s a monolithic black silent box like aliens intended personal compute to be. 😁 It will probably run Age of Ascent and definitely Age of Empires II without issue, but might take a little while on the final turns in long games of Master of Orion II 😉
The premise is pitting AMD vs Intel CPUs against each other at about the same price point. Peripherals are not considered. For GPU there is, in my view, not a lot of choice if you are doing deep learning. This is mostly a software question.
Prices
Prices below are either from www.newegg.com (US) or www.edbpriser.dk/www.pricerunner.dk (DK) for both my American and Danish friends. Prices are approximate and from the time of writing. Danish prices incl. 25% VAT. 1 USD = 6.25 DKK.
Composition
For this blog post I am dividing the components into three parts.
- Base - components that form the basis of the PC and usually have a long longevity and can be the base of many revisions of the PC. This is the cornerstone of assembling your own PC since it allows you to amortize cost of some componenents over a long time e.g. ~10 years in this case.
- Common - these are the common system components that are the same no matter if an AMD or Intel CPU is used. Included in this is the GPU here.
- System - the CPU and the CPU specific motherboard. Both an AMD and Intel version will be compared.
Base Components
Base components are often overlooked. If you buy a pre-built desktop PC these often have lesser quality base components, even though these are the most likely components to be reused. I encourage picking high quality components here since they will form the base or foundation for the developer PC for years to come.
Component | Selection | USD | DKK |
---|---|---|---|
Case | Fractal Design Define Mini C | 85 | 600 |
PSU | Corsair RM650x 650W | 115 | 900 |
CPU Cooler | Noctua NH-12S | 65 | 440 |
Total | - | 265 | 1940 |
Case
For the case I went for a micro-ATX Fractal Design Define Mini C case that is an updated version of the case next to me right now. It’s designed for silent computing with built-in sound dampening material. How efficient this is I cannot quantify, but overall I think this is a great case with a good internal design.
The case comes with two decent 120mm fans Fractal Design Dynamic X2 GP12. However, if you want better fans and fans that will last a long time I would recommend Noctua fans instead. I had to replace the fans that came with my case after about 4 years, I think, since they started being noisy.
The one thing that I really don’t like on this case is the front panel connectors are facing up. Since I have the PC sitting in a mount underneath my desk, this is a bit annoying, since I can’t plug in an USB pen here due to lack of height. 🤦
PSU
A high quality PSU is essential to a stable and silent PC. Luckily there is a lot of choice here now a days. A big question here is always how many watts the PSU should support. I think there is a tendency to go too high here for many, unless you are seriously considering getting an expensive high-end GPU (like the NVidia 3090) with a similar very high-end server CPU 650W should be more than enough for most. It may last you 10 years though, so keep that in mind and perhaps opt for getting a PSU with some headroom for the years to come.
Here I picked the Corsair RM650x 650W because it is completely silent with the fan off when power consumption is low, and still nearly silent at full load. Additionally reviews of this are great and it has very low voltage ripple.
As can be seen below this is a modular PSU. Hence you can keep the case neat using just the cables needed for powering the components. On the downside this isn’t exactly a cheap PSU, but given it has a 10 year warranty and will likely last that long it’s worth it.
CPU Cooler
For CPU coolers I have one rule: it must be screw mounted. Or at least mounted with a robust mechanism, not push-pin. I have seen my share of push-pin coolers getting loose during transportation or similar. Crappy stock coolers should be avoided as much as possible. Additionally, prefer coolers with PWM fans so the fan speed can be controlled. However, some motherboards support controlling the speed by regulating voltage. Stock coolers are often also very loud or poor at keeping modern CPUs cool.
I picked the Noctua NH-12S here since it’s a very quiet high quality cooler with PWM support and a robust mounting system. This cooler has 6 year warranty and Noctua is known for supporting future sockets via new mounting kits and hence it very likely will be able to be used for a possible future update and last +6 years. Replacing the fan is easy too.
Common Components incl. GPU
Component | Selection | USD | DKK |
---|---|---|---|
RAM | G.SKILL Ripjaws V 2 x 16GB DDR4 3200 (PC4-25600) F4-3200C16D-32GVK | 110 | 850 |
SSD NVMe | ADATA XPG SX8200 Pro 1 TB | 140 | 1030 |
GPU | Gigabyte GeForce RTX 2060 SUPER WINDFORCE OC 8G | (a) 400 | 3200 |
Total | - | 650 | 5080 |
(a) Get Tom Clancy’s Rainbow Six Siege Gold Edition w/ purchase, limited offer
RAM
Cheap, fast enough and plenty RAM. Not much to say here. As an absolute minimum you should have 16GB, and always be sure you have as many modules as there are channels on the CPU. Dual channel in this case. If you only have one module when the CPU supports dual channel, you only get half the bandwidth. I have seen this mistake happen too many times. And there rarely is a price difference these days. In general consumer CPUs/motherboards are dual channel, and high end server CPUs have more. 8 for example.
Be aware of RAM height and CPU cooler clearance here. If the RAM module is very high and the CPU cooler does not have a lot of clearance they may clash.
NVMe SSD
A key component for total system performance, especially for developers, is the NVMe SSD. For OS and git repos this is a no brainer. Need more space for other things, add a SATA HDD or cheap SSD.
I picked the ADATA XPG SX8200 Pro 1 TB NVMe SSD based on multiple reviews of NVMe SSDs. Anandtech has a recent review that includes this in the The Best NVMe SSD for Laptops and Notebooks: SK hynix Gold P31 1TB SSD Reviewed article.
Below I include a few key benchmarks that I base my choice on for a developer PC. Mixed 4kB and 128 kB Random Read/Write. Note the highlighted SSD is the SK hynix Gold P31 1TB SSD which isn’t available yet. Overall the SX8200 Pro is great and most importantly it is way cheaper than the otherwise great Samsung 970 EVO Plus by 30-40% while being just as fast or close to.
Again this SSD has a 5 year warranty and should be usable for at least that long.
512 GB should suffice for many here but performance often scales with size.
I have not picked a PCIe 4.0 SSD since there aren’t that many yet, and price difference is still a bit high. More SSDs will come soon. Not the least the Samsung 980 series which looks very promising. It will probably be expensive, though, but 5,000 MB/s sequential write would be nice in some of the industrial systems I work on. That’s fast 🚀 Only the AMD system supports PCIe 4.0, another reason to chose AMD.
GPU
For deep learning software engineering there isn’t a lot of choice for GPU when it comes to manufacturer, in my view. NVidia is the defacto choice and this is due to it’s broad set of software libraries like cuDNN and TensorRT.
Now a lot of deep learning articles claim you can only be serious about deep learning if you buy at least a 2080 Ti (now RTX 3090) or even the ridiculously priced Titan RTX. As everything else, it depends on what you are doing. Sure if you are building state-of-the-art models for ImageNet then you need a lot of compute and not the least a lot of GPU RAM, but for those that are doing real-world industrial vision you can go a long way with less if you ignore the “bigger is better” mantra of GPU manufacturers, cloud providers and people working only on big tech data. There is a lot of hyperbole here. Real world data for industrial vision is very different from these extreme scenarios.
Anyway, the main point here was that we need a GPU for software engineering. To be able to run, test, debug code related to GPU compute. For this I would pick the cheapest, best value latest GPU supporting all features of the most recent NVidia architecture. That was Turing, but is now Ampere.
At the time of writing this, the Ampere based Geforce RTX 30 Series is not yet available, though. And it wasn’t when I got a request for my pick of components. So I picked the Gigabyte GeForce RTX 2060 SUPER WINDFORCE OC 8G, as a good not too expensive GPU with all the features of Turing. Compared to the a bit cheaper 2060 this has 2GB more RAM which is worth the price difference. The model in question is a no frills version with no RGB LEDs and two decent fans, that are fully off if the GPU is not loaded. Hence, the GPU should be completely silent when not loaded, and not too load at load (hoping for no coil whine).
To be clear, I would not recommend buying this GPU now that the RTX 30 Series has been announced. However, if you, as my friend, cannot wait until say October for the 3070 which is more than twice as fast as the 2060 Super at ~$499, then you have to live with paying more for less. ;)
Personally, I am waiting for and hoping a 3060/3050 will be coming soon too, but it might not be before December or next year :( If that’s the case I’d get the 3070 if one can’t wait.
From Anandtechs The NVIDIA GeForce RTX 2070 Super & RTX 2060 Super Review: Smaller Numbers, Bigger Performance the specifications for the 20 series are:
From NVIDIA Announces the GeForce RTX 30 Series: Ampere For Gaming, Starting With RTX 3080 & RTX 3090 the specifications for the 30 series currently are:
Hence, comparing the 3070 to 2060 Super for F32 performance you get 20.4 TFLOPs vs 7.2 TFLOPS or 20.4 / 7.2 = 2.83x more at $100 higher price. I am guessing that a possible 3060 might have around 14-15 TFLOPS at $399. However, more importantly I hope the 30 series will support TF32 since they share the 3rd generation Tensor Core with the A100, which should give a big performance improvement for reduced precision 32-bit floating point training/inference. I haven’t seen confirmation of this yet, though.
System Components: AMD
Component | Selection | USD | DKK |
---|---|---|---|
CPU | AMD Ryzen™ 7 3700X | (a) 290 | 2300 |
Motherboard | Gigabyte B550M DS3H | 95 | 730 |
Total | - | 385 | 3030 |
(a) Includes Assassin’s Creed Valhalla for PC with purchase as a limited offer from AMD in Denmark too.
CPU (AMD)
The AMD Zen 2 consumer CPUs are covered in The AMD 3rd Gen Ryzen Deep Dive Review: 3700X and 3900X Raising The Bar
in great detail. The newer XT
variants are described in AMD To Launch New Ryzen 3000 XT CPUs: Zen 2 with More MHz.
In my view the sweet spot for a CPU for core developer PC
right now is an 8 core/16 thread CPU. I picked the 3700X, because it has a great price
and is only slightly slower than the 3800X. I will compare this
to the Intel CPU later.
Motherboard (AMD)
There are lots of motherboards to pick from. Since, we are selecting components for an affordable PC we are looking at motherboards with the B550 chipset. Since the introduction of this in June there were finally inexpensive motherboards available supporting PCIe 4.0, which is the main differentiation for AMDs CPUs compared to Intels current CPUs.
I have great experience with the Gigabyte DS3H series and found it to be stable and robust. If you need more features than this basic model provides, like wifi, you should find another motherboard. The main features needed here are a x16 PCIe slot and at least one NVMe M.2 slot. Most boards have that now. Apparently, you are hard pressed to find a motherboard without RGB FUSION support now a days. One feature that I like in the Gigabyte boards is the “Smart Fan 5” feature, that allows you to define fan speed curves in the BIOS, so you can tune the system to the cooling and noise profile you want at different temperatures. This includes fan stop if temperatures are low. Fans will last longer if they don’t spin when not needed.
Note you cannot buy AMD Zen 2 APUs (that is CPU with integrated GPU), like the 4700G for do-it-yourself PCs yet. These are only OEM, so if you don’t really need a high-end GPU you still have to buy some form of GPU to connect displays. As you can see below the motherboard does have DVI and HDMI connectors, but those only work if the CPU has an integrated GPU.
AMD B550 Ultra Durable Motherboard with Pure Digital VRM Solution, PCIe 4.0 x16 Slot, Dual PCIe 4.0/3.0 M.2 Connectors, GIGABYTE 8118 Gaming LAN, Smart Fan 5 with FAN STOP, RGB FUSION 2.0, Q-Flash Plus
- Supports 3rd Gen AMD Ryzen™ Processors
- Dual Channel ECC/ Non-ECC Unbuffered DDR4, 4 DIMMs
- 5+3 Phases Pure Digital VRM Solution with Low RDS(on) MOSFETs
- Ultra Durable™ PCIe 4.0 Ready x16 Slot
- Dual Ultra-Fast NVMe PCIe 4.0/3.0 M.2 Connectors
- High Quality Audio Capacitors and Audio Noise Guard for Ultimate Audio Quality
- GIGABYTE Exclusive 8118 Gaming GbE LAN with Bandwidth Management
- Rear HDMI & DVI Support
- RGB FUSION 2.0 Supports Addressable LED & RGB LED Strips
- Smart Fan 5 Features Multiple Temperature Sensors , Hybrid Fan Headers with FAN STOP
- Q-Flash Plus Update BIOS without Installing the CPU, Memory and Graphics Card
- Anti-Sulfur Resistors Design
System Components: Intel
Component | Selection | USD | DKK |
---|---|---|---|
CPU | Intel i7-10700 | 305 | 2500 |
Motherboard | Gigabyte B460M DS3H | 80 | 640 |
Total | - | 385 | 3140 |
To be fair we should be using the i7-10700F without iGPU when comparing to the AMD 3700X but this I could not find on newegg and the price difference isn’t that big, it would reduce the price difference between AMD and Intel by about $15/DKK 100,-
CPU (Intel)
The Intel Comet Lake also called 10th generation Core are covered in The Intel Comet Lake Core i9-10900K, i7-10700K, i5-10600K CPU Review: Skylake We Go Again. Since we are trying to compare systems at about the same price point, I picked the i7-10700 (not the K version). Note below the big difference in base frequencies between the non-K and K versions. As mentioned elsewhere the i7-10700 has the integrated 630 GPU, which is good enough for simple code editing, watching videos etc. on a few full HD monitors, so you can cut the expensive GPU if you don’t need it.
Motherboard (Intel)
There isn’t a lot of differences between the AMD and Intel DS3H motherboards from Gigabyte, so nothing new to add here, except that since the i7-10700 has integrated GPU the DVI, VGA, HDMI ports will all work and you can run without a GPU if you don’t need it. Due to the CPU differences the Intel motherboard only supports PCIe 3.0, which probably also explains the price difference between the two. Additionally, the Intel version only has a single NVMe M.2 slot compared to two in the AMD version.
Intel® B460 Ultra Durable Motherboard with GIGABYTE 8118 Gaming LAN, PCIe Gen3 x4 M.2, Anti-Sulfur Resistor, Smart Fan 5, DualBIOS™
- Supports 10th Gen Intel® Core™ Processors
- Dual Channel Non-ECC Unbuffered DDR4 , 4 DIMMs
- High Quality Audio Capacitors and Audio Noise Guard with LED Trace Path Lighting
- Ultra-Fast M.2 with PCIe Gen3 X4 & SATA Interface
- GIGABYTE Exclusive 8118 Gaming LAN with Bandwidth Management
- Smart Fan 5 features Multiple Temperature Sensors and Hybrid Fan Headers with FAN STOP
- Anti-Sulfur Resistors Design
- Ultra Durable™ 15KV Surge LAN Protection
- GIGABYTE UEFI DualBIOS™
- Intel® Optane™ Memory Ready
AMD vs Intel
For comparing the AMD Ryzen 7 3700X with the Intel i7-10700 (which isn’t covered in a lot of reviews) I am using the Intel Core i7-10700 Review - Way to Overclock without the K from Techpowerup. Anandtech, my preferred review site, hasn’t covered the i7-10700 yet.
Benchmarks
Below is a recap of benchmark results from the above mentioned review. Where the default/normal circumstances (green bar) is used for the Intel CPU. Overall, the two CPUs are close to equal except for some specific cases. I mostly pay attention to the software compilation and web browsing benchmarks with browsing having a slight edge for the i7-10700, but nothing significant.
Benchmark | 3700X | i7-10700 | Relative ↑ |
---|---|---|---|
Software Compilation - VS2019 C++ [s]↓ | 63.7 | 65.0 | 1.02 |
Web Browsing — Google Octane [points]↑ | 54774 | 58335 | 1.07 |
Web Browsing — Mozilla Kraken [ms]↓ | 723.7 | 773.2 | 1.07 |
Web Browsing — WebXPRT [points]↑ | 280 | 291 | 1.04 |
Compression — 7-Zip - Compress [MIPS]↑ | 62860 | 59709 | 0.95 |
Compression — 7-Zip - Decompress [MIPS]↑ | 60039 | 44412 | 0.74 |
Encryption — VeraCrypt - AES - 1GB [MB/s]↑ | 11100 | 14600 | 1.32 |
Relative Performance - CPU Tests [%]↑ | 103.0 | 100.0 | 1.03 |
Relative Performance - Games 1920x1080 [%]↑ | 91.2 | 100.0 | 0.91 |
Power Consumption
Importantly is also power consumption, also summarized below from the review. The i7-10700 has a slight edge here, but again nothing significant. Be aware these are whole system figures and the system includes a 2080 Ti GPU which consumes most power by far if busy.
Power Consumption, Whole System [w]↓ | 3700X | i7-10700 | Relative ↓ |
---|---|---|---|
Idle | 53 | 49 | 1.08 |
Single-Threaded, SuperPI | 76 | 75 | 1.01 |
Multi-Threaded, CineBench | 146 | 137 | 1.07 |
Stress Test, Prime95 | 140 | 142 | 0.99 |
Choice
Given that there are no significant differences in either benchmarks nor power consumption the choice comes down to AMD supports PCIe 4.0 and two M.2 NVMe SSD drives with PCIe 4.0 x4 directly to the CPU. Additionally, the motherboard is supposed to support the upcoming Zen 3 CPUs, with AMDs long term AM4 socket support.
One thing to keep in mind, though, especially as software developers, is that a lot of software depends upon libraries developed by Intel. A long standing issue is that Intel has been and still appears to be doing unfair CPU dispatching as detailed in Agner Fog’s Intel’s “cripple AMD” function. What this means is that software that uses Intel libraries or compilers may run less optimal on AMD CPUs, since different code paths are chosen regardless of instruction set support e.g. AVX2 etc. This also can mean that there may be result differences for floating point computations. Now this is expected and normal, but I have seen some “issues” for extensive numerical end-to-end tests that then will fail on an AMD CPU due to this. This is in some ways mainly due to the tests being too “brittle” to floating point differences, but the least thing you want is to have to spent time on fixing this issue if that is not a priority. So just keep that in mind.
Conclusion
The two systems with selected components are reiterated below in full. I very much welcome AMD coming back to the game with the Zen 2 CPUs and giving some real competition to Intel and the fact that we can now buy 8 core CPUs at a much lower cost than just a few years back.
I recommend the AMD Ryzen 7 3700X based system due to it being more future proof 👍
Component | Selection | USD | DKK |
---|---|---|---|
Case | Fractal Design Define Mini C | 85 | 600 |
PSU | Corsair RM650x 650W | 115 | 900 |
CPU Cooler | Noctua NH-12S | 65 | 440 |
Base | - | 265 | 1940 |
RAM | G.SKILL Ripjaws V 2 x 16GB DDR4 3200 (PC4-25600) F4-3200C16D-32GVK | 110 | 850 |
SSD NVMe | ADATA XPG SX8200 Pro 1 TB | 140 | 1030 |
GPU | Gigabyte GeForce RTX 2060 SUPER WINDFORCE OC 8G | 400 | 3200 |
Common | - | 650 | 5080 |
CPU | AMD Ryzen™ 7 3700X | 290 | 2300 |
Motherboard | Gigabyte B550M DS3H | 95 | 730 |
AMD | - | 385 | 3030 |
AMD Full | - | 1300 | 10050 |
CPU | Intel i7-10700 | 305 | 2500 |
Motherboard | Gigabyte B460M DS3H | 80 | 640 |
Intel | - | 385 | 3140 |
Intel Full | - | 1300 | 10160 |
If you are penny pinching the most expensive component is the GPU so if you don’t need it, take that out and perhaps get a cheap GPU for the AMD system. Then you can reduce RAM from 32 GB to 16 GB, which is enough for most (I have yet to upgrade to that), and reduce the SSD to 512 GB. Even more cash strapped… go with the Ryzen 5 3600 which is a great value buy at $210/1400 DKK. Don’t forget to include the cost of a Microsoft Windows license if you need it, though 😉
This got longer than I expected and I still haven’t scratched of the many considerations that go into selecting components for a PC, but I can keep going forever. 😅