PC Building
This is a consolidation of what I've learnt about building a new computer in July 2022. Nothing fancy, just a helpful reminder of what steps to consider. Some resources are linked to explore.
There are two parts to building a new computer: selecting what to buy, and eventually assembling them. Assembly is the easy part - selecting what to buy may not.
Selecting components
There are many guides out there talking about choosing components, offering pre-build solutions, dispelling myths about building your own PC, etc. Some of these resources I found helpful are linked below.
Resources
- Provides recommendations for general usage PCs catering to different budgets
- Parts they recommend are compatible, so is a good reference for parts selection
- CPUs chosen tend towards the latest generation of CPUs
- As of July 2022, their recommended cost distribution (based on 'Outstanding' category) seems to be the following. Note the currently inflated GPU prices. In comparison, my current build has the following distribution. Remember: configure based on your needs!
GPU | CPU | MOBO | RAM | HDD | SSD | PSU | Fan | Case | |
---|---|---|---|---|---|---|---|---|---|
Logical Increments | 41% | 18% | 12% | 3% | 3% | 6% | 5% | 3% | 9% |
Current build | 24% | 21% | 14% | 16% | 0% | 8% | 8% | 5% | 4% |
- Generally helpful recommendations on what components to avoid, and other technical stuff
- Typically reachable when searching for information via Google
- Note that many comments are anecdotes, so there will be occasional conflicting advice - take them with a pinch of salt
- Generally more experienced community, with more emphasis on server hardware / networking / Cisco certification, etc.
- Consider reading their fantastic wiki, especially these two articles:
- Server hardware: https://www.reddit.com/r/homelab/wiki/hardware/
- Choose what to buy: https://www.reddit.com/r/homelab/wiki/buyingguide/
- If you live in Singapore, Bizgram is a pretty great wholesaler for computer components and miscellaneous stuff
- Check the regularly updated pricelist to compile costs and availability of components
Decision chart
A plausible decision flow might follow the lines of this.
First consider if you need any of the following:
- High availability / production systems: Strongly consider investing in memory with error-correction capabilities. This limits the type of CPU you can get, e.g. for Intel CPUs, this is only supported by Xeon processors or 12th gen Core processors coupled with W680 chipset.
- Portability: Small cases like mini-ITX are limited mainly by the available PCIe slots and is dependent on whether the case has sufficient clearance. If portability is a priority, either buy a laptop (these are very much custom-built components that would be hard/costly to source and assembly) or do some serious planning for it, e.g. sufficient airflow, low profile GPUs, etc.
- Overclocking: Overclocking is typically done to boost system performance by increasing CPU clock rates. Not only heat dissipation will be a bigger concern, only certain CPU + chipset combinations can perform overclocking.
On form factors - here is a rough comparison between common case sizes by CG Director:
An entire listing of different form factors on Wikipedia.
- ATX: Most popular form for desktops, typically 12x9.6" (width x depth)
- microATX: Popular in desktops and SFF as of 2017, 9.6x9.6"
- Mini-ATX: Designs for mobile on desktop technology, 5.9x5.9"
- Mini-ITX: For thin clients, 6.7x6.7"
- Nano-ITX: For set top boxes, 4.7x4.7"
- Mini PC: e.g. NUC
A short note on mini-ITX, and why it might not be worth the time:
- Problems with mini-ITX builds: https://www.techspot.com/article/2119-everything-about-small-form-factor-pc/
- How to plan a mini-ITX build: https://global.aorus.com/blog-detail.php?i=862
Two key options guiding the form factor to use:
- Availability of parts for form factor
- Potential for extension? e.g. to fit a GPU
- Compatibility between motherboard and components
- Heat management more critical
- Portability
- How easy is it to lug it around / maintain it?
- Placement in storage / server shed?
Back to the main topic...
The CPU and motherboard tends to go hand-in-hand because the CPU socket tends to change, e.g. for any of the Intel Alder Lake series (12th gen) CPUs, the available chipsets for it are:
- Z690: For enthusiast builds (read: overclocking)
- W680: For performance builds with overclocking and ECC support, see article
- H670: For performance builds without overclocking and ECC support
- Q670: For performance builds without overclocking/ECC support, but retains peripherals, see article
- B660: For general builds, generally starts to have performance cuts
- H610: For budget builds
Motherboards are built around these chipsets, with varying levels of feature support and available footprints.
Tip
Choose CPU based on the following requirements:
- Number of cores (for parallel computing)
- Core clock (for performance, and by extension, power consumption)
- Presence of integrated GPU (useful when no discrete GPU available)
- Budget (lower generations tend to be cheaper, but also less efficient)
Available choices for Intel CPUs include the range from Pentium, i3, i5, i7, i9, -U/-M series, -Xe series, etc. Then shop for motherboard, perhaps using PC Part Picker (note that the CPU should be selected first to check for compatibility):
- Form factor (ATX, micro-ATX, mini-ITX, etc.)
- Peripheral support:
- Ethernet port speeds
- PCIe slots
- etc.
The rest is really a mix-and-match. See the following description of each component in the subsequent sections. Then finally decide miscellaneous stuff like airflow management / fan placement (note this is more critical when working with smaller builds with limited airflow):
- Power supply:
- A good resource can be found here: https://forums.tomshardware.com/threads/psu-recommendations-and-power-supply-discussion-thread-toms-hardware.3212332/
- Airflow management:
- LinusTechTips video on the possible effects of intake.
- Intake fans on the side and exhaust fans on the bottom. Do not put intakes on top/bottom where dust likely to settle.
- Dust filters on intake very important.
- More fans = more dust.
- Noise management:
- Noise can go for silent components. All or nothing.
- Avoid water-cooled systems, typically not cost-effective cooling, mainly for aesthetics.
- Remote GUI access:
- Commercial centralized server connection: Teamviewer, RealVNC
- Free software client-server connection: TigerVNC, Remote Desktop (RDP), Guacamole
CPU
Background
Clock rate:
- The rate at which operations are processed - higher means faster
- The specified clock rate is typically achieved using a lower front-side bus (base) frequency and multiplying using a PLL
Nothing much here - main part described above.
RAM
Diagram shows CPU retrieving data via a single memory channel, where data is internally stored in bank group 0, rank 1, of RAM card 2.
controller"] C --- |"Channel 1"| D1["DRAM Memory
controller"] D0 --- |"Card 1"| A0["..."] D0 === |"Card 2"| A1{" "} D1 --- |"Card 1"| A2["..."] D1 --- |"Card 2"| A3["..."] subgraph "RAM card 4" A3 end subgraph "RAM card 1" A0 end subgraph "RAM card 2 (dual-rank, DDR4 x16)" A1 -.- B10["Rank 0"] A1 === B11["Rank 1"] B11 === M{" "} M === G0["Bank group 0"] M -.- G1["Bank group 1"] end subgraph "RAM card 3" A2 end subgraph "Motherboard chipset
(2 DIMMs/Ch)" D0; D1; end subgraph "CPU (max 2 memory channels)" C00["Processor"] === C["Memory management
unit (MMU)"]; C9["Cache"] -.- C end
Background
This Reddit post is a nice overview of the topics below, consider reading.
DIMM:
- Stands for dual-inline memory module, the physical interface for common memory cards
Channel:
- A single memory channel is typically a 64-bit physical link between CPU and RAM
- Number of memory channels supported is typically limited by CPU, chipset and motherboard
- The number of slots on motherboard does not necessarily correspond to number of memory channels
- Consumer motherboards tend to allow duplexing of RAM cards per channel
Rank:
- Each memory card can support multiple ranks of 64-bit width each
- A dual-rank memory card has 128-bit width (quad with 256-bit width)
- The memory controller for *each* memory channel can only address a single rank at a time
- The order in which memory cards are placed in a four-slot, two-channel motherboard is thus critical with only two memory cards - either achieve dual-channel (good) or single-channel (bad)
- A dual-channel dual-rank setup (2 dual-rank cards or 4 single-rank cards) can boost performance by roughly 5-10% compared to dual-channel single-rank setup (2 single-rank cards)
- The number of ranks per memory channel is determined by the motherboard chipset
Bank groups:
- Introduced in DDR4 to multiplex two 8N prefetches in separate memory groups to achieve interleaving
- Typically in memory geometries of x8 (4 bank groups of 4 memory banks) or x16 (2 bank groups of 8 memory banks)
- There is a performance hit if same bank group accessed consecutively
- Inferring from NotebookCheck, a total of 4 memory banks per DIMM is ideal - for single-ranked memory, 1Rx8 performs better than 1Rx16 geometry
CAS latency (CL):
- The fixed number of clock cycles mandated by RAM to return data after a CPU data request instruction
Clock rate:
- The clock frequency at which RAM runs operations - higher means faster operations
- Must be compatible with CPU max memory speed, otherwise RAM will be downclocked
- Typically not overclocked (unless via Intel XMP in motherboard chipset to support non-industry-standard speeds - the CPU specified max memory speed usually only quotes in industry-standard speeds), can be undervolted for longevity/lower power
- See interpretation in table below
- Modern architecture typically does not directly synchronize to CPU processor clock, but to front-side bus frequency (FSB) / memory controller speeds instead
- Frequency ratio to FSB can be further tuned using memory dividers when overclocking CPU via increased FSB rate, to avoid a corresponding overclock to RAM for stability
- Access to memory is arbitrated by the memory controller, which internally handles differences in clock speeds using clock domain crossing
CPU memory types | Chipset max memory clock | RAM clock | Intel XMP enabled | Effective clock |
---|---|---|---|---|
2400 MHz | 3200 MHz | 2400 MHz | No | 2400 MHz |
Yes | 3200 MHz | |||
2400 MHz | 2000 MHz | 3200 MHz | - | 2000 MHz |
2000 MHz | 2400 MHz | 3200 MHz | No | 2000 MHz |
Yes | 2400 MHz |
First-word latency:
- The real latency of response is determined by the clock rate to CL ratio, typically on order of 10ns
- Typically the shorter, the better. Standard values are generally already in DDR specification
Error-correcting codes (ECC):
- Increases data width by encoding data with parity bits, protects against bit flips in RAM
- Unbuffered vs registered ECC: Registered = more memory at expense of additional middleman register buffer
- Incidence of errors is rare
- Necessary only for production servers where long uptime is required - optional for consumer systems which can tolerate occasional restarts / OS reinstallation, e.g. when kernel issues start occurring due to RAM errors
- May result in higher costs, although prices have generally converged
Market conditions (July 2022)
- For ECC memory, only up to DDR4 available, up to 64 GB sticks for both registered and unbuffered ECC. Average FWL (first word latency) is 14 ns.
- For non-ECC memory, both DDR4 and DDR5 available, up to 32 GB sticks for unbuffered. No market for registered non-ECC memory. Average FWL is 11 ns.
- Note that DDR5 typically has on-die ECC (separate from true ECC with extra data correction chip), so FWLs are also around 14 ns. Relatively new standard released in 2020.
- DDR4 memory sticks are most popular at the moment (2022).
- Ranks are typically dual-ranks, to take advantage of rank-interleaving.
Guiding recommendations
- Choose CPU (and motherboard) based on:
- Supported memory types, speeds, and capacity
- Number of DIMM slots available
- If quad-channel needed
- If support for ECC memory needed
- Prefer RAM:
- Lowest first word latency
- Two sticks if at least dual-rank, otherwise four single-rank sticks
- Must be same type of RAM
GPU
Shamelessly copied from TomsHardware.
Nvidia GPUs | AMD GPUs | Class | Recommended use |
---|---|---|---|
GT 1030 | RX 550 | Cheap | No gaming, w/o integrated graphics |
GTX 1050 (Ti) GTX 1060 GTX 1650 (Super) | RX 560-590 RX 5500 XT RX 6400-6500 | Budget | 1080p, low/med settings |
GTX 1070 (Ti) GTX 1660 (Super/Ti) RTX 2060 RTX 3050 | RX Vega 56 RX 5600 XT RX 5700 RX 6600 (XT) | Mid-range | 1080p, VR-compatible |
GTX 1080 (Ti) RTX 2060 Super RTX 2070 (Super) RTX 2080 (Super/Ti) RTX 3060 (Ti) RTX 3070 (Ti) | RX Vega 64 Radeon VII RX 5700 XT RX 6800 | High-end | 1440p, high-refresh 1080p, VR |
Titan Xp Titan V Titan RTX RTX 3080 (Ti) RTX 3090 (Ti) | RX 6800 XT RX 6900 XT | Extreme | 4K, great ray-tracing, AI |
Another great table on bandwidth requirements for displays, as defined by VESA: Resolution vs refresh rate + color-depth -> Required data bandwidth
1080p | 1440p | 2160p | |
---|---|---|---|
60 Hz, 8-bit | 3.20 Gbps | 5.63 Gbps | 12.54 Gbps |
60 Hz, 10-bit | 4.00 Gbps | 7.04 Gbps | 15.68 Gbps |
144 Hz, 8-bit | 8.00 Gbps | 14.08 Gbps | 31.35 Gbps |
144 Hz, 10-bit | 10.00 Gbps | 17.60 Gbps | 39.19 Gbps |
Notably, DisplayPort 1.4 and HDMI 2.1 support Display Stream Compression 1.2a (DSC), which provides up to 3:1 compression ratio. Note that 8-bit color depth means 24-bit color (8-bit each RGB). Pretty much just get whatever is convenient, e.g. HDMI.
Need to look out for form factors compatible with motherboard / case.
Supplementary power connectors are typically required to supply more power than available through PCIe x16 slot (75W). Extensions seem to be for PCIe and/or PSU.
Background
Graphics card memory (VRAM):
- Internal memory used by GPU
- Read the many GPU buying guides to get a sense of what capacity is recommended
Video ports:
- This article explains the difference between DisplayPort and HDMI
- Need to balance with bandwidth requirements on displays used, see table above
Clock speed:
- Same as that in RAM and CPU
CUDA Cores / Stream Processors:
- No idea at the moment, didn't read it up
FLOPS:
- Floating-point operations per second, maximum theoretical speed
- Useful only when comparing between same architecture
Memory speed/bandwidth:
- Also no idea at the moment
Guiding recommendations
None at the moment, but consider reading these articles:
- Good overview of what GPU matters: https://www.tomshardware.com/reviews/gpu-buying-guide,5844.html
- Nice comparison between different GPUs: https://www.notebookcheck.net/Mobile-Graphics-Cards-Benchmark-List.844.0.html
- General overview of product code designations: https://www.hp.com/us-en/shop/tech-takes/gpu-buying-guide
Storage
(6 Gbps; 2008)") -.- B1 end subgraph "PCIe interface (dual-simplex)" A5("PCIe 3.0
(8 Gbps/lane; 2010)") -.- B3 A6("PCIe 4.0
(16 Gbps/lane; 2017)") -.- B3 A7("PCIe 5.0
(32 Gbps/lane; 2017)") -.- B3 end subgraph "Serial Attached SCSI interface (full-duplex)" A2("SAS-2
(6 Gbps; 2009)") -.- B2 A3("SAS-3
(12 Gbps; 2013)") -.- B2 A4("SAS-4
(22.5 Gbps; 2017)") -.- B2 end subgraph "Ethernet interface" A8("Gigabit Ethernet
(1 Gbps)") -.- B4 A9("10GbE
(10 Gbps)") -.- B4 end B1 --> C1; B3 --> C2; B3 --> C1 B2 --> C3 subgraph "Physical layer" F1["M.2"] --> |"≤ 4 lanes"| A5 F1 --> A1 F2["U.2
(2011)"] --> |"≤ 4 lanes"| A5 F2 --> A1 F2 --> A2 F3["SFP"] --> A2 F3 --> A8 end subgraph "Host protocols" C2(["NVMe 2.0
(2020)"]) C1(["AHCI 1.3
(2011)"]) C3(["SCSI"]) end
Distinguish between transfer rate (raw transfer speed) and throughput (actual data rate after encoding, e.g. for 8b/10b encoding, overhead is 20%, so throughput is 80% of transfer rate).
This only a summary - in reality, PCIe/SATA/SAS are specifications for multiple layers, including the physical, link, transport, etc. Read this diagram with a pinch of salt and treat it more like a starting point
Serial buses are preferred over parallel buses due to inherent problems with the latter, most importantly the timing skew (different signal arrival times due to differences in paths/velocities) on order of nanoseconds requires a longer interface clock period, limiting it to sub-GHz performance. On the other hand, serial connections only has a single differential signal in each direction per data lane (reducing timing skew), and the point-to-point serial links between device host and other devices allows for full duplex communication without need for arbitration by the host (needed in parallel configuration since all devices share common set of data and address lines).
Note that you can compare the speed of a storage interface (order of ~1 Gbps) relative to the bus speeds (order of ~50 Gbps), so typically it won't be a huge constraint.
Guiding recommendations
None, but consider reading these articles:
- Nice overview of PCIe: https://www.tomshardware.com/reviews/pcie-definition,5754.html
- Comparison between different storage form factors: https://www.storagereview.com/best_drives
Specification list
Good as a rough overview of what specifications to consider, but this isn't actually updated. See the list of components purchased updated on PC Part Picker.
Component | Target | Remarks | ||
---|---|---|---|---|
Motherboard | ||||
Chipset | ||||
Product family | - | |||
Bus speed | - | Not sure what this affects | ||
Overclocking support | - | |||
DIMMs per channel | 1 / 2 | Depends on CPU memory channels | ||
PCIe support | 4.0/5.0 | Sync with CPU | ||
PCIe lanes | ≥ 16 | Sync with CPU | ||
USB ports | ≥ 3 USB 3.0 | |||
SATA ports | - | |||
Peripherals | ||||
Audio card/ports | - | Depends | ||
Form factor | Micro-ATX | Mini-ITX if possible, but chances are, more powerful specs cannot fit into small form factor. To see. | ||
DIMM channels | 2 / 4 | Whichever supported by motherboard and/or cheaper | ||
PCIe slots | ||||
SATA ports | ||||
M.2 ports | ||||
SLI/Crossfire | - | Support for multi-GPU setups, typically not necessary nor cost-effective | ||
Wireless card | - | Not necessary | ||
Ethernet | 10GbE | Maximize connection to NAS | ||
PCIe lanes | ||||
RAM | ||||
Type | DDR4 | Clock speed as high as supported by CPU/chipset | ||
Capacity | ≥ 64GB | Needs to support virtualization and heavy workloads | ||
Registers | No | |||
CPU | ||||
CPU | ||||
Product family | 12th gen Intel | For power efficiency. Later generations typically better | ||
Total cores | ≥ 8 cores | For parallel performance | ||
Base frequency | - | As high as possible | ||
Cache | - | As much as possible | ||
Instruction set | 64-bit | |||
TPM | 2.0 | Recommended | ||
Memory | ||||
Max size | ≥ 128GB | For extensibility | ||
Type | DDR4/5 support | For extensibility | ||
Max channels | 2 / 4 | |||
Max bandwidth | - | As much as possible | ||
ECC support | - | |||
Graphics | ||||
Integrated | - | Might be handy if GPU fails | ||
Expansion | ||||
PCIe support | 4.0/5.0 | |||
Max lanes | ≥ 16 | Discrete GPUs require 16 lanes. Not sure for others | ||
GPU | GPUs tend to have PCIe x16 interface. | |||
Storage | ||||
HDD | None | Outsource this to local NAS | ||
HDD speed | - | |||
SSD | ≥ 2TB | Preferably two separate cards if cheaper | ||
SSD speed | NVMe, - IOPS | Check if limited | ||
RAID | None | Minimize heavy-writes inherent in fault-tolerant RAID levels by eliminating redundancy. |