hello

ASUS TRX50 Sage + RTX 5090 + RTX 4090/3090 다중 GPU 구성기 (Ubuntu 22.04, NVIDIA Open Kernel Module 이슈 해결)

들어가며

최근 블랙웰 아키텍처 기반 RTX 5090을 메인으로, 기존 RTX 4090RTX 3090 2장을 함께 사용해야 하는 작업 환경을 구성하게 되었습니다.
메인보드는 ASUS Pro WS TRX50-SAGE WIFI, CPU는 Threadripper PRO 7960X(48 PCIe lanes).
계획은 다음과 같았습니다.

  • 1번 슬롯: RTX 5090
  • 2번 슬롯: RTX 4090
  • 4·5번 슬롯: RTX 3090 × 2

하지만 처음부터 5090이 전혀 인식되지 않는 문제가 발생했습니다.


문제 증상

  1. BIOS에서 4장의 GPU가 모두 보였으나,
    Ubuntu 22.04 부팅 후 nvidia-smi에 5090만 나타나지 않음.
  2. lspci에서는 정상적으로 5090(PCI ID: 10de:2b85) 확인 가능.
  3. 드라이버를 최신(580.65.06) 프로프라이어터리로 설치해도 마찬가지.

dmesg에 다음과 같은 에러 반복:

NVRM: The NVIDIA GPU 0000:41:00.0 (PCI ID: 10de:2b85)
NVRM: installed in this system requires use of the NVIDIA open kernel modules.

원인 분석

  • RTX 5090은 최신 세대 블랙웰 GPU로, NVIDIA Open Kernel Module(OKM) 전용 지원이 필수입니다.
  • 기존 방식(폐쇄형 커널 모듈)은 probe 단계에서 실패하여 장치를 초기화하지 못합니다.
  • Ubuntu 22.04의 기본 PPA에는 nvidia-driver-560-open까지만 제공 → 5090 미지원.

시도한 해결책

  1. BIOS 설정 점검
    • CSM Disabled
    • Secure Boot Disabled
    • Above 4G Decoding / Resizable BAR 옵션은 BIOS에 없음
    • PCIe 슬롯별 Lane 배분 및 전원(PCIE 6P, 8P) 연결 확인
  2. 커널 파라미터 추가
    • pci=realloc 부팅 옵션 적용 → PCIe MMIO 공간 재할당
  3. PPA 560-open 설치
    • 설치 및 재부팅 후에도 probe of 0000:41:00.0 failed with error -1

결국 5090 지원이 포함된 580대 Open Kernel Module 설치가 필요하다는 결론.


최종 해결 절차

아래는 NVIDIA 공식 runfile로 580 Open Kernel Module을 설치한 과정입니다.

재부팅 후 확인

cat /proc/driver/nvidia/version   # Open Kernel Module 문구 확인
nvidia-smi                        # 4 GPU 모두 인식

NVIDIA 580.x runfile 설치

chmod +x NVIDIA-Linux-x86_64-580.65.06.run
sudo ./NVIDIA-Linux-x86_64-580.65.06.run --dkms --kernel-module-type=open

텍스트 모드 전환

sudo systemctl isolate multi-user.target
sudo systemctl stop gdm   # (사용중인 디스플레이 매니저에 맞게 변경)

Nouveau 드라이버 비활성

printf "blacklist nouveau\noptions nouveau modeset=0\n" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u

커널 최신화 및 빌드 환경 준비

sudo apt install -y linux-generic-hwe-22.04
sudo apt install -y build-essential dkms linux-headers-$(uname -r)

기존 드라이버 완전 제거

sudo apt purge 'nvidia*' 'libnvidia*' 'cuda*'
sudo apt autoremove --purge -y

결과

  • nvidia-smi에서 5090 + 4090 + 3090 × 2 정상 인식.
  • CUDA 연산 및 메모리 접근 모두 정상 동작.
  • dmesg에서 더 이상 requires use of the NVIDIA open kernel modules 에러 없음.

배운 점

  • 최신 세대 GPU는 드라이버 버전뿐 아니라 커널 모듈 타입이 필수 요건이 될 수 있다.
  • Ubuntu LTS PPA는 최신 GPU 지원이 늦어질 수 있으므로, NVIDIA 공식 runfile 설치가 오히려 빠른 경우가 많다.
  • 다중 GPU 환경에서는 BIOS의 PCIe Lane 구성, 전원 연결, MMIO 할당 여유 등을 항상 체크해야 한다.

이렇게 해서 최종 완성된 모습!

이제 vllm 서빙 시 tensor-parallel-size를 짝수로 할 수 있어 4를 도전해볼 수 있게 되었습니다!

Read more

TCP 공부하기

TCP(전송 제어 프로토콜) 개요 TCP는 불안정한 네트워크 환경에서도 신뢰성 있고 순서가 보장된 데이터 전송을 가능하게 하는 핵심 인터넷 프로토콜이다. IP가 호스트 간 패킷 전달만을 담당한다면, TCP는 포트 기반 프로세스 간 통신, 오류 복구, 재전송, 순서 제어를 제공한다. 흐름 제어와 혼잡 제어를 통해 TCP는 수신 버퍼와 네트워크 대역폭의 고갈을 방지한다.

By JHL

우리가 알던 고전적 소프트웨어 엔지니어링은 죽었다

Product Engineering 시대와 AI 개발 패러다임 변화 1. 패러다임 변화: 코드 작성의 목적이 달라졌다 1972년 Dennis Ritchie가 C 언어를 발표한 이후, 소프트웨어 산업은 오랫동안 다음 요소에 집중해 왔다. * 코드 효율성 (시간·공간 복잡도) * 코드 길이 및 생산성 * 가독성과 유지보수성 그러나 AI 시대가 시작되면서 기존 패러다임이 근본적으로 변하고 있음. John Carmack은

By JHL

GitLab에서 제작한 GitOps 초보자 가이드

소개 소프트웨어 애플리케이션의 복잡도가 증가함에 따라 인프라에 대한 요구도도 함께 증가하고 있습니다. 인프라 팀은 다양한 서비스를 빠르고 안정적으로 제공해야 하지만, 인프라 구축은 여전히 수동 프로세스에 의존하는 경우가 많습니다. 이 문제를 해결하기 위한 핵심 접근 방식이 인프라 자동화이며, 그중 하나가 GitOps입니다. 1. 인프라 자동화의 필요성 * 애플리케이션 개발은 CI/CD로 자동화되었지만 인프라

By JHL