Table of Contents

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

Logical increments

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%

Reddit - r/buildapc

Reddit - r/homelab

Bizgram Asia Pte Ltd

Decision chart

A plausible decision flow might follow the lines of this.

First consider if you need any of the following:

On form factors - here is a rough comparison between common case sizes by CG Director:

An entire listing of different form factors on Wikipedia.

A short note on mini-ITX, and why it might not be worth the time:

Two key options guiding the form factor to use:

  1. Availability of parts for form factor
    • Potential for extension? e.g. to fit a GPU
    • Compatibility between motherboard and components
    • Heat management more critical
  2. 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:

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):


CPU

Background

Clock rate:

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.

graph TD C === |"Channel 0"| D0["DRAM Memory
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:

Channel:

Rank:

Bank groups:

CAS latency (CL):

Clock rate:

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:

Error-correcting codes (ECC):

Market conditions (July 2022)

Guiding recommendations

  1. 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
  2. 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):

Video ports:

Clock speed:

CUDA Cores / Stream Processors:

FLOPS:

Memory speed/bandwidth:

Guiding recommendations

None at the moment, but consider reading these articles:


Storage

graph LR B1[SATA]; B2[SAS]; B3[PCIe] B4[Ethernet] subgraph "Serial ATA interface (half-duplex)" A1("SATA 3.0
(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:


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.