Skip to content

Latest commit

 

History

History
219 lines (110 loc) · 16.1 KB

physical-setup.md

File metadata and controls

219 lines (110 loc) · 16.1 KB

Physical Setup

General

  • At least one SSD/NVMe (512 GB or larger preferred) is mandatory in the modern day due to the unreliability, degraded performance and excessive EMI of HDDs

  • See Avoid Multi-CCX Ryzen CPUs (1XXX, 2XXX, 3XXX, 59XX) | Calypto

  • See Low Latency Hardware | Calypto

  • Avoid single-channel, mixing/matching different DIMMs and ensure that they are in the correct slots (refer to motherboard manual)

  • Favor PCIe ports that go straight to the CPU rather than PCH. This typically applies to M.2/NVMe SSDs and GPUs (usually the top slot). Beware of limitations with the amount of lanes available

  • Ensure that your PCIe devices under the PCIe Bus category are running at their rated specification (e.g. x16 3.0) in HWiNFO. The current link width/speed of the device should match the maximum supported

    • Link speed specifically for GPUs that are not limited to P-State 0 will decrease when idling. For this reason, you can check with GPU-Z while running the built-in render test. See this example

    • See media/hwinfo-pcie-width-speed.png

  • IRQ sharing is problematic and is a source of high interrupt latency. Ensure that there is no IRQ sharing on your system by typing msinfo32 in Win+R then navigating to the Conflicts/Sharing section

    • Enabling message signaled interrupts on devices may resolve the software related causes of IRQ sharing but the purpose of checking this now is to resolve the hardware related causes
  • Avoid daisy-chaining power cables

  • Bufferbloat is a cause of high latency and jitter in packet-switched networks caused by excess buffering of packets. Measure and minimize it

  • Tape the end of loose power cables to reduce the risk of shorting components

Cooling

  • Remove the side panels from your case or consider not using one entirely (open bench)

  • Delid your CPU and use liquid metal for a significant thermal improvement. Carry out research before attempting

  • Avoid tower/air coolers due to limited cooling potential and lack of space for fans to cool other components

  • Consider mounting a fan over VRMs, CPU backplate, storage devices, PCH, NIC and other hot spots

  • Mount your AIO properly

  • Invest in non-RGB fans with a high static pressure

  • Ensure not to overload the motherboard fan header if you are using splitters

  • Remove the heat sink from your DIMMs and mount a fan over it using cable ties

  • Consider using an M.2/NVMe heat sink

  • Configure fan curves or set a static, high, noise-acceptable RPM

  • Replace stock thermal pads with higher quality ones

  • Repaste GPU due to factory application of thermal paste often being inadequate. Also consider replacing the stock fans with higher quality ones

Minimize Interference

  • Move devices that produce RF, EMF and EMI such as radios, cellphones and routers away from your setup as they have the potential to increase latency due to unwanted behavior of electrical components

  • Always favor wired over cordless. Wireless devices also tend to implement power saving for a longer battery life

  • Ensure that there is a moderate amount of space between all cables to reduce the risk of coupling

  • Disconnect unnecessary devices from your motherboard/setup such as LEDs, RGB light strips, front panel connectors, USB devices, unused drives and all HDDs. Refer to USB Device Tree Viewer for onboard devices (LED controllers, IR receivers) and disable them in BIOS if you can not physically disconnect them

Configure USB Port Layout

  • Plug your mouse and keyboard into the first two ports on your first USB controller. This can be determined in USB Device Tree Viewer with trial and error. Use the motherboard ports and avoid companion ports (indicated in the right section of the program) as the data has to go through a hub

    • Ryzen systems have a USB controller that is directly connected to the CPU which can be identified under the PCIe Bus category in HWiNFO. It is usually the USB controller that is connected to a Internal PCIe Bridge which is also labeled with the CPU architecture

  • If you have more than one USB controller, you can isolate devices such as DACs, headsets and other devices onto another controller to prevent them interfering with polling consistency

Configure Peripherals

  • Most modern peripherals support onboard memory profiles. Configure them before configuring the operating system as you will not be required to install the bloatware to change the settings later. More details on separating work/bloatware and gaming environments with a dual-boot in the next section

  • Higher DPI reduces latency. Most mice are able to handle 1600 DPI without sensor smoothing. Optionally reduce the pointer speed in Windows. This will not interfere with in-game input as modern games use raw input

  • Higher polling rate reduces jitter. Polling rates higher than 1kHz may negatively impact performance depending on your hardware so adjust accordingly

  • USB output is limited to roughly 7A and RGB requires unnecessary power. Turn off RGB where you can or strip the LEDs from the peripheral as running an RGB effect/animation can take a great toll on the MCU and will delay other processes

  • Use Mouse Tester to check if each poll contains data. If the interval is spiking to 2ms (500hz) or higher from 1ms (1000hz), this is obviously problematic and often caused by an inadequate sensor

  • Get a lint roller to remove dirt and debris from your mouse pad

  • Get an air dust blower to remove dirt and debris from the mouse sensor lens

  • Factory reset your monitor and reconfigure the settings. Avoid post-processing effects and set overdrive/AMA to an acceptably high setting as it reduces latency but comes with a penalty of additional overshoot

BIOS

  • Check Spectre, Meltdown and CPU microcode status after following the steps in the Spectre, Meltdown and CPU Microcode section on your current operating system. If you are unable to reproduce the results in the example images, you may need to roll back microcode on a BIOS level

  • Ensure that the settings you are changing scale positively and make note of them on a piece of paper for future reference/backtracking to resolve issues

  • Reset all settings to default settings with the option in BIOS to work with a clean slate

  • You can use BIOS and/or GRUB to change settings. I recommend configuring what you can in BIOS then use this method to change hidden settings

    • On some boards, you can enable Hidden OC Item or Hide Item if present to unlock a vast amount of options in BIOS
  • Disable Hyper-Threading/Simultaneous Multithreading. This feature is beneficial for highly threaded operations such as encoding, compiling and rendering however using multiple execution threads per core requires resource sharing and is a potential source of system latency and jitter. Other drawbacks include limited overclocking potential due to increased temperatures

  • Limit C-States, P-States and S-States to the minimum or disable them completely. It is a source of jitter due to the process of state transition

    • Verify S-State status with powercfg -a in CMD
  • Disable Virtualization/SVM Mode and IOMMU/VT-d if applicable as they can cause a difference in latency for memory access

  • Disable all power saving features such as Active State Power Management, Aggressive Link Power Management, DRAM Power Down Mode, PCIe Clock Gating etc. Search the internet if you are unsure whether a given setting is power saving related

  • Disable unnecessary devices such as WLAN, Bluetooth, High Definition Audio (if you are not using aux/line-in audio) controllers and unused USB ports (refer to USB Device Tree Viewer), PCIe slots, iGPU and DIMM slots

  • Disable Trusted Platform Module. On Windows 11, a minority of anticheats (Vanguard, FACEIT) require it to be enabled

    • Verify TPM status by typing tpm.msc in Win+R
  • Enable High Precision Event Timer. If the setting is hidden, there is a good chance that it is enabled by default

    • On AMD systems with newer AGESA firmware, changing this setting will have no effect
  • Resizable BAR requires GPT/UEFI

  • MBR/Legacy requires Compatibility Support Module and typically, only the storage and PCIe OpROMs are required, but you can enable all of them if you are unsure. Disable CSM if you are using GPT/UEFI

    • Windows 7 UEFI requires CSM and OpROMs unless you are using uefiseven
  • Disable Secure Boot. On Windows 11, a minority of anticheats (Vanguard, FACEIT) require it to be enabled

  • Disable Fast Startup or similar options

  • Disable Spread Spectrum and ensure BCLK frequency is close to 100.00 as possible in HWiNFO/CPU-Z

  • Disable Legacy USB Support as it generates unnecessary SMIs. You may need to turn this on while installing a new operating system or to access BIOS

  • Disable XHCI Hand-off

  • Set the primary graphics to dGPU instead of iGPU if applicable

  • Set PCIe link speed to the maximum supported (e.g. Gen 4.0)

  • Disable Execute Disable Bit/NX Mode. A minority of applications (Valorant) require it to be enabled

  • As we will be configuring a static frequency/voltage for the CPU, disable dynamic frequency features such as Speed Shift, SpeedStep, Turbo Boost and set the AVX offset to 0 so that the CPU does not downclock during AVX workloads

    • In some cases, the settings mentioned above may prevent the processor exceeding its base frequency despite manually configuring it in BIOS. Adjust accordingly if this is encountered
  • Set a static all-core core/uncore frequency and voltage for the CPU. Variation in hardware clocks can introduce jitter due to the process of frequency transitions

    • Configure load-line calibration to minimize vcore fluctuation under load (try to aim for a flat line), this setting varies between motherboards so do your own research
  • Enable XMP for your RAM or preferably configure the frequency and timings manually

  • The previous two bullet points (core/uncore/memory) affect each other in terms of stability which means you should re-test each component after tinkering with the other

  • Try not to leave voltage settings on automatic due to potential overvolting

Stability, Hardware Clocking and Thermal Performance

Ensure your CPU, RAM and GPU (with overclock applied) are stable before configuring a new operating system as crashes can lead to data corruption or irreversible damage to hardware. There are many tools to test different hardware and algorithms vary between tools which is why it is important to use a range of them (non-exhaustive list of recommended tools are listed below).

  • Due to error correction, you should check whether increasing frequency or changing timings scale positively in benchmarks such as liblava and MLC (run as administrator to disable prefetching and ensure that the mlcdrv.sys driver is loaded) by adopting a systematic testing methodology

  • Ensure to disable CUDA - Force P2 State with NVIDIA Profile Inspector to prevent memory downclocking while stress testing

  • There are countless factors that contribute to stability such as temperature, power delivery, quality of VRMs, silicon lottery etc

    • An important note to make is that you can pass hours of stress tests (e.g. RAM) but as soon as another component (e.g. GPU) begins to warm up and increase ambient temperature, you may encounter instability so ensure to cater for such scenario. Assuming a fan is mounted to blow air onto the DIMMs, consider stress testing RAM without a fan or reduce the RPM to deliberately allow them to run warmer so that greater stability can be ensured once the fan is running at full RPM again
  • A single error is one too many

  • Avoid thermal throttling at all costs, ambient temperature will generally increase during the summer which can be replicated with a heater to create a worst-case scenario

  • Deliberately underclock if your cooler is inadequate. A thermally stable component with an overall lower frequency is always better than thermal throttling at a higher frequency

  • Use HWiNFO to monitor system sensors, a higher polling interval can help to identify sudden spikes. Avoid running while benchmarking as it has the potential to reduce the reliability of results

  • Disable the paging file and use safe mode for stress testing preferably on a throwaway operating system in case it becomes corrupted

  • Tools