피드로 돌아가기
GPU PCI Address Instability: When Your Card Moves Between Reboots
Dev.toDev.to
Infrastructure

PCI 주소 가변성 해결을 통한 GPU Passthrough 안정화 및 컨테이너 기반 아키텍처 전환

GPU PCI Address Instability: When Your Card Moves Between Reboots

Guatu2026년 5월 7일2advanced

Context

BIOS의 PCIe Enumeration 과정에서 발생하는 비결정적 주소 할당으로 인한 VM 부팅 실패 현상 분석. 특히 AMD Ryzen C-states 및 UMA 설정에 따른 장치 초기화 지연이 PCI Address 변경을 유발하여 QEMU Assertion Error 발생.

Technical Solution

  • i440fx 대신 q35 머신 타입을 채택하여 PCIe 매핑 실패 및 IRQ 충돌 가능성 최소화
  • Passthrough 설정 시 pcie=1 옵션을 명시하여 장치를 PCIe 모드로 강제 인식
  • d3cold_allowed 설정을 0으로 변경하여 GPU의 Deep Power State 진입을 차단하고 논리적 연결 상태 유지
  • CPU 커널 파라미터 조정을 통해 Deep Sleep 상태 진입을 방지함으로써 PCIe Bus Scan의 무작위성 억제
  • VM 추상화 계층을 제거하고 Host에 NVIDIA Driver를 직접 설치한 뒤 NVIDIA Container Toolkit으로 GPU를 노출하는 구조로 전환하여 주소 의존성 완전 제거

- VM GPU Passthrough 설계 시 q35 머신 타입 및 pcie=1 옵션 적용 여부 검토 - BIOS 및 커널 수준에서 CPU/GPU의 절전 상태(C-states, D3cold)가 장치 인식 순서에 미치는 영향 확인 - PCI 주소 고정이 불가능한 환경에서는 VM Passthrough 대신 Host Driver 기반의 Containerization 아키텍처 고려

원문 읽기