BIOS/UEFI Optimization
Optimize BIOS settings for deep learning workstations. Configure PCIe lanes, enable Resizable BAR, set power limits, and tune BIOS for maximum GPU performance and stability.
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
On boot, press the designated key repeatedly:
- Most systems:
DeleteorF2 - ASUS:
DeleteorF2 - MSI:
Delete - Gigabyte:
Delete - ASRock:
DeleteorF2 - Dell/HP workstations:
F2orF10
:::tip If you miss it, just restart and try again. Some systems show “Press [KEY] to enter setup” during boot. :::
Essential Settings for ML Workloads
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 Enabled Navigation: Tweaker → Advanced CPU Settings
Settings:
PCIe Speed: Gen 4.0
Above 4G Decoding: Enabled
Resizable BAR Support: Enabled 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: Disabled
Why disable power saving?
- Prevents CPU throttling during training
- Ensures consistent performance
- Eliminates wake-up latency
:::caution This increases idle power consumption by 20-50W. If power costs are a concern, you can re-enable these features and use OS-level power management instead. :::
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
:::tip[Check your motherboard manual] Not all boards support x16/x16. Some switch to x8/x8 with 2 GPUs, which is fine - modern GPUs rarely saturate x8 Gen4. :::
4. Memory Configuration (XMP/DOCP)
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
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
Optimize boot time:
Fast Boot: Enabled
Boot Logo Display: Disabled
Bootup NumLock State: On (preference)
Full Screen Logo: Disabled
7. Security Settings
For easier development:
Secure Boot: Disabled
Why?
- Some Linux distros and CUDA drivers conflict with Secure Boot
- Can re-enable later if needed
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
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
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
Troubleshooting
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
- Clear CMOS (consult motherboard manual)
- Remove one setting at a time
- Likely culprit: XMP profile incompatibility
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
ASUS Boards
- Press
F7for Advanced Mode - Look under “Advanced” and “AI Tweaker” tabs
MSI Boards
- Press
F7for detailed view - Settings → Advanced tab
Gigabyte Boards
- Press
Ctrl+F1for advanced options (on some models) - Check “Tweaker” and “Peripherals” tabs
ASRock Boards
- Advanced mode enabled by default
- Check “OC Tweaker” for performance settings
Next Steps
After optimizing BIOS:
- Save settings and exit (
F10usually) - Proceed to OS Installation
- Later: Monitor system health
:::tip[Document your settings] Take photos of your BIOS settings. If you need to reset CMOS, you’ll want this reference. :::