피드로 돌아가기
Dev.toInfrastructure
원문 읽기
PCI 주소 가변성 해결을 통한 GPU Passthrough 안정화 및 컨테이너 기반 아키텍처 전환
GPU PCI Address Instability: When Your Card Moves Between Reboots
AI 요약
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 아키텍처 고려