BIOS/UEFI Optimization
Optimize BIOS settings for deep learning workstations: configure PCIe lanes, enable Resizable BAR, set power limits, and tune for GPU performance.
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 EnabledNavigation: Tweaker → Advanced CPU Settings
Settings:
PCIe Speed: Gen 4.0
Above 4G Decoding: Enabled
Resizable BAR Support: Enabled2. 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. :::