BIOS/UEFI Optimization
Why BIOS Settings Matter
Section titled “Why BIOS Settings Matter”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
Accessing BIOS/UEFI
Section titled “Accessing BIOS/UEFI”On boot, press the designated key repeatedly:
- Most systems:
DeleteorF2 - ASUS:
DeleteorF2 - MSI:
Delete - Gigabyte:
Delete - ASRock:
DeleteorF2 - Dell/HP workstations:
F2orF10
Essential Settings for ML Workloads
Section titled “Essential Settings for ML Workloads”1. PCIe Configuration
Section titled “1. PCIe Configuration”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”
Navigation: Settings → Advanced → Integrated Peripherals
Settings:
PCI Express Root Port: Gen 4
Above 4G Memory/Crypto Currency Mining: Enabled
Re-Size BAR Support: Auto or EnabledNavigation: Tweaker → Advanced CPU Settings
Settings:
PCIe Speed: Gen 4.0
Above 4G Decoding: Enabled
Resizable BAR Support: Enabled2. Power Management
Section titled “2. Power Management”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: DisabledWhy disable power saving?
- Prevents CPU throttling during training
- Ensures consistent performance
- Eliminates wake-up latency
3. Multi-GPU Systems
Section titled “3. Multi-GPU Systems”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
4. Memory Configuration (XMP/DOCP)
Section titled “4. Memory Configuration (XMP/DOCP)”Enable XMP/DOCP profile:
Memory Profile: XMP / D.O.C.P / A-XMPWhat this does:
- Runs RAM at rated speed (3200MHz, 3600MHz, etc.)
- Without this, RAM runs at base JEDEC speed (2133MHz)
- Significantly improves data loading performance
5. Virtualization
Section titled “5. Virtualization”Enable if using Docker or VMs:
Intel VT-x: Enabled
Intel VT-d: EnabledLocation: Advanced → CPU Configuration
SVM Mode: Enabled
IOMMU: EnabledLocation: Advanced → CPU Configuration
Why enable this?
- Required for Docker containers (common in ML workflows)
- Needed for running VMs
- Better PCIe device management
6. Boot Options
Section titled “6. Boot Options”Optimize boot time:
Fast Boot: Enabled
Boot Logo Display: Disabled
Bootup NumLock State: On (preference)
Full Screen Logo: Disabled7. Security Settings
Section titled “7. Security Settings”For easier development:
Secure Boot: DisabledWhy?
- Some Linux distros and CUDA drivers conflict with Secure Boot
- Can re-enable later if needed
Settings to Leave as Default
Section titled “Settings to Leave as Default”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)
BIOS Settings Checklist
Section titled “BIOS Settings Checklist”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
Verification After Boot
Section titled “Verification After Boot”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 SpeedTroubleshooting
Section titled “Troubleshooting”GPU Not Detected
Section titled “GPU Not Detected”- Re-seat the GPU physically
- Try a different PCIe slot
- Update BIOS to latest version
- Check if Above 4G Decoding is enabled
System Won’t Boot After Changes
Section titled “System Won’t Boot After Changes”- Clear CMOS (consult motherboard manual)
- Remove one setting at a time
- Likely culprit: XMP profile incompatibility
Lower Than Expected PCIe Speed
Section titled “Lower Than Expected PCIe Speed”- Check GPU is in primary x16 slot
- Verify PCIe generation in BIOS
- Some boards drop to Gen 3 with multi-GPU
Manufacturer-Specific Guides
Section titled “Manufacturer-Specific Guides”ASUS Boards
Section titled “ASUS Boards”- Press
F7for Advanced Mode - Look under “Advanced” and “AI Tweaker” tabs
MSI Boards
Section titled “MSI Boards”- Press
F7for detailed view - Settings → Advanced tab
Gigabyte Boards
Section titled “Gigabyte Boards”- Press
Ctrl+F1for advanced options (on some models) - Check “Tweaker” and “Peripherals” tabs
ASRock Boards
Section titled “ASRock Boards”- Advanced mode enabled by default
- Check “OC Tweaker” for performance settings
Next Steps
Section titled “Next Steps”After optimizing BIOS:
- Save settings and exit (
F10usually) - Proceed to OS Installation
- Later: Monitor system health