Skip to content

BIOS/UEFI Optimization

Your BIOS/UEFI firmware controls fundamental hardware behavior. Incorrect settings can:

  • Reduce GPU performance by 10-20%
  • Cause system instability during long training runs
  • Prevent GPUs from being detected
  • Limit PCIe bandwidth

Time investment: 15-20 minutes Performance gain: Up to 20% in some cases

On boot, press the designated key repeatedly:

  • Most systems: Delete or F2
  • ASUS: Delete or F2
  • MSI: Delete
  • Gigabyte: Delete
  • ASRock: Delete or F2
  • Dell/HP workstations: F2 or F10

Why it matters: GPUs need maximum PCIe bandwidth for optimal performance.

Navigation: Advanced → PCIe/PCI Configuration

Settings:

PCIe Speed: Gen 4 (or highest available)
Above 4G Decoding: Enabled
Re-Size BAR Support: Enabled (if available)

Location: Usually under “Advanced” → “PCI Subsystem Settings”

Goal: Prevent power-saving features from throttling during training.

Settings to change:

Power State: High Performance
C-States: Disabled
CPU Enhanced Halt (C1E): Disabled
Intel SpeedStep / AMD Cool'n'Quiet: Disabled

Why disable power saving?

  • Prevents CPU throttling during training
  • Ensures consistent performance
  • Eliminates wake-up latency

If you have 2+ GPUs, these settings are critical:

IOMMU / VT-d: Enabled (for PCIe passthrough capabilities)
Bifurcation: Check manual for your board
PCIe Link Speed: Gen 4 (Gen 3 minimum)

PCIe Lane Distribution: For optimal multi-GPU:

  • 2 GPUs: x16/x16 or x16/x8
  • 3 GPUs: x16/x8/x8
  • 4 GPUs: x8/x8/x8/x8

Enable XMP/DOCP profile:

Memory Profile: XMP / D.O.C.P / A-XMP

What this does:

  • Runs RAM at rated speed (3200MHz, 3600MHz, etc.)
  • Without this, RAM runs at base JEDEC speed (2133MHz)
  • Significantly improves data loading performance

Enable if using Docker or VMs:

Intel VT-x: Enabled
Intel VT-d: Enabled

Location: Advanced → CPU Configuration

Why enable this?

  • Required for Docker containers (common in ML workflows)
  • Needed for running VMs
  • Better PCIe device management

Optimize boot time:

Fast Boot: Enabled
Boot Logo Display: Disabled
Bootup NumLock State: On (preference)
Full Screen Logo: Disabled

For easier development:

Secure Boot: Disabled

Why?

  • Some Linux distros and CUDA drivers conflict with Secure Boot
  • Can re-enable later if needed

Don’t change these unless you know what you’re doing:

  • CPU Core Voltage (unless overclocking)
  • DRAM Voltage (XMP handles this)
  • Fan curves (configure in OS instead)
  • Boot priority (set after OS install)

Print or save this checklist:

  • PCIe Speed set to Gen 4 (or highest)
  • Above 4G Decoding: Enabled
  • Re-Size BAR: Enabled
  • Power Management: High Performance
  • C-States: Disabled
  • XMP/DOCP Profile: Enabled
  • Virtualization (VT-x/SVM): Enabled
  • VT-d/IOMMU: Enabled
  • Secure Boot: Disabled
  • Fast Boot: Enabled
  • Settings saved and system rebooted

Once in your OS, verify settings took effect:

# Check PCIe generation
lspci -vv | grep -i "lnkcap\|lnksta"

# Should show "Speed 16GT/s" for Gen 4

# Check if all GPUs detected
nvidia-smi

# Verify XMP/DOCP worked
sudo dmidecode -t memory | grep Speed
  1. Re-seat the GPU physically
  2. Try a different PCIe slot
  3. Update BIOS to latest version
  4. Check if Above 4G Decoding is enabled
  1. Clear CMOS (consult motherboard manual)
  2. Remove one setting at a time
  3. Likely culprit: XMP profile incompatibility
  1. Check GPU is in primary x16 slot
  2. Verify PCIe generation in BIOS
  3. Some boards drop to Gen 3 with multi-GPU
  • Press F7 for Advanced Mode
  • Look under “Advanced” and “AI Tweaker” tabs
  • Press F7 for detailed view
  • Settings → Advanced tab
  • Press Ctrl+F1 for advanced options (on some models)
  • Check “Tweaker” and “Peripherals” tabs
  • Advanced mode enabled by default
  • Check “OC Tweaker” for performance settings

After optimizing BIOS:

  1. Save settings and exit (F10 usually)
  2. Proceed to OS Installation
  3. Later: Monitor system health