피드로 돌아가기
NVIDIA peermem invalid argument-fix
Dev.toDev.to
Infrastructure

MLNX_OFED 의존성 제거 및 DMA-BUF 기반 GPUDirect RDMA 최적화

NVIDIA peermem invalid argument-fix

Fabricio2026년 6월 21일3advanced

Context

Ubuntu inbox rdma-core 스택 환경에서 nvidia-peermem 모듈 로드 시 MLNX_OFED 전용 API 부재로 인한 -EINVAL 오류 발생. 기존 legacy 경로인 nvidia-peermem은 특정 벤더 전용 커널 API에 의존하여 메인라인 커널 기반 환경에서 호환성 한계 노출.

Technical Solution

  • Proprietary API 의존성을 제거한 mainline Linux 프레임워크인 DMA-BUF 기반의 네이티브 경로 채택
  • nvidia-drm modeset=1 설정을 통한 GPU 메모리의 DMA-BUF export 활성화
  • cudaMalloc으로 할당한 GPU 메모리를 cuMemGetHandleForAddressRange API를 통해 DMA-BUF FD로 변환
  • 변환된 FD를 ibv_reg_dmabuf_mr API로 InfiniBand HCA에 등록하여 직접 메모리 접근 구조 설계
  • Hopper 아키텍처 이상의 GPU와 NVIDIA open kernel driver 조합을 통한 드라이버 레벨 최적화

1. H100/H200/B200 등 Hopper+ GPU 및 Open Driver 사용 여부 확인

2. /sys/module/nvidia_drm/parameters/modeset 값이 Y인지 검증

3. nvidia-peermem 모듈 강제 로드 시도 대신 DMA-BUF 기반의 3단계 호출(cudaMalloc -> cuMemGetHandle -> ibv_reg_dmabuf_mr) 성공 여부로 GPUDirect RDMA 작동 확인

원문 읽기