Enable AMD CPU with Multi-GPU System

From HPCWIKI
Jump to navigation Jump to search

Template:Status

Template:TOC

Overview

AMD CPU와 다중 GPU 시스템에서 IOMMU로 인한 데드락 문제를 해결하고, DDP(Direct Data Direct) 설정 방법을 설명합니다.

Summary

  • 무엇인가? AMD CPU + 다중 GPU 시스템에서 발생하는 데드락 문제 해결 가이드
  • 왜 필요한가? IOMMU 활성화 시 PCIe Bifurcation과 함께 다중 GPU 사용 시 시스템 데드락 발생
  • 언제 사용하는가? AMD EPYC CPU에 다중 GPU(2개 이상)를 설치한 시스템


Purpose

이 문서가 존재하는 이유

  • Goal: AMD CPU + 다중 GPU 시스템에서 데드락 문제 해결 방법 제공
  • Scope: IOMMU 비활성화, DDP 설정, BIOS/UEFI 설정
  • Non-goals: Intel CPU 다중 GPU 문제, 단일 GPU 문제


Key Concepts

Concept Description Related
IOMMU I/O Memory Management Unit — DMA 주소 변환 및 장치 격리 PCIe
DDP Direct Data Direct — AMD CPU와 GPU 간 직접 데이터 전송 AMD CPU
PCIe Bifurcation PCIe 레인을 여러 장치로 분할 (x16→x8/x8 등) PCIe
Deadlock 시스템이 응답하지 않는 상태 — CPU와 GPU 간 통신 문제 Troubleshooting
AMD EPYC AMD 데이터센터 CPU — 다중 GPU 지원 AMD CPUs


Architecture

AMD CPU + 다중 GPU 시스템 아키텍처:

graph TD
    A[AMD EPYC CPU] --> B[PCIe Root Complex]
    B --> C[Slot 1: GPU 1]
    B --> D[Slot 2: GPU 2]
    B --> E[Slot 3: GPU 3]
    B --> F[Slot 4: GPU 4]
    A --> G[IOMMU]
    G --> H[DMA 주소 변환]
    G -.->|비활성화 시| I[DDP 직접 전송]
    C --> J[GPU 1 PCIe x16]
    D --> K[GPU 2 PCIe x16]
    E --> L[GPU 3 PCIe x16]
    F --> M[GPU 4 PCIe x16]


Workflow

AMD CPU + 다중 GPU 시스템 구성 흐름:

  1. AMD EPYC CPU 확인 (7002/7003 시리즈)
  2. 다중 GPU 설치 (2개 이상)
  3. BIOS/UEFI 진입
  4. IOMMU 비활성화
  5. PCIe Bifurcation 설정 (필요시)
  6. DDP 설정 확인
  7. 시스템 부팅 및 GPU 인식 확인
Stage Input Output
BIOS Entry 시스템 부팅 중 Del 키 BIOS/UEFI 설정 화면
IOMMU Disable Security/IOMMU 설정 IOMMU 비활성화
PCIe Bifurcation PCIe 설정 x16→x8/x8 또는 x8/x8/x8/x8
DDP Check GPU 설치 확인 DDP 활성화 확인
System Boot 저장 후 부팅 GPU 인식 확인


Detailed Explanation

AMD CPU cause deadlocks with multi-GPU in single system

AMD CPU를 사용하는 시스템에서 다중 GPU(2개 이상)를 설치하고 IOMMU를 활성화하면 시스템 데드락이 발생할 수 있습니다. 이는 AMD CPU의 PCIe 컨트롤러와 IOMMU 간 호환성 문제로, GPU 간 통신이 차단되어 시스템이 응답하지 않는 상태가 됩니다.

What is DDP?

DDP(Direct Data Direct)는 AMD CPU와 GPU 간 직접 데이터 전송을 위한 기술입니다. IOMMU를 비활성화하면 DDP를 통해 CPU와 GPU 간 데이터 전송이 직접 이루어져 성능이 향상됩니다.

Solution - Disable IOMMU

IOMMU를 비활성화하여 다중 GPU 시스템을 안정적으로 구성합니다.

1. BIOS/UEFI 진입 (부팅 중 Del 키) 2. Security → IOMMU 설정 3. IOMMU를 Disabled로 변경 4. 저장 후 재부팅 5. GPU 인식 확인 (nvidia-smi 또는 lspci)

Others

  • PCIe Bifurcation 설정이 필요한 경우: x16→x8/x8 또는 x8/x8/x8/x8 분할
  • AMD EPYC 7002/7003 시리즈 모두에서 확인됨
  • Intel CPU에서는 일반적으로 이 문제 발생 안 함


Configuration

BIOS/UEFI 설정

IOMMU: Disabled
PCIe Bifurcation: Auto 또는 수동 설정
Above 4G Decoding: Enabled
SR-IOV Support: Disabled (필요시)

Linux 시스템 설정

# GPU 인식 확인
nvidia-smi

# PCIe 장치 확인
lspci | grep -i nvidia

# IOMMU 상태 확인
dmesg | grep -i iommu


Examples

Example 1: 4x GPU 시스템 구성

CPU: AMD EPYC 7742 (64코어)
GPU: 4x NVIDIA A100 (PCIe)
메모리: 512GB DDR4
PCIe: 128개 Gen 4 레인
구성: 4x x16 슬롯 (Bifurcation x8/x8/x8/x8)

Example 2: 2x GPU 시스템 구성

CPU: AMD EPYC 7543 (32코어)
GPU: 2x NVIDIA A100 (PCIe)
메모리: 256GB DDR4
PCIe: 128개 Gen 4 레인
구성: 2x x16 슬롯


Best Practices

  • IOMMU는 다중 GPU 시스템에서 반드시 비활성화
  • PCIe Bifurcation은 슬롯 수에 맞게 설정
  • Above 4G Decoding은 반드시 활성화
  • AMD EPYC 7002/7003 시리즈 모두에서 테스트 권장
  • BIOS/UEFI를 최신 버전으로 업데이트


Limitations

  • IOMMU 비활성화 시 보안 기능 감소 (DMA 공격 가능성)
  • 단일 GPU 시스템에서는 IOMMU 활성화 권장
  • Intel CPU에서는 일반적으로 이 문제 발생 안 함
  • 일부 마더보드에서 PCIe Bifurcation 지원 안 할 수 있음


References


Related Pages

Knowledge Graph

Related

AMD CPUsCUDAAMD EPYCNVIDIA GPUGPUEpyc Milan (7003 series)EPYC Rome (7002 series)AMD Bergamo (97x4)