NVIDIA/gds-nvidia-fs
NVIDIA GPUDirect Storage Driver
NVIDIA gds-nvidia-fs
무엇인가요 – Linux 커널 모듈(nvidia-fs.ko)로서 NVIDIA의 GPUDirect Storage(GDS) 드라이버를 구현합니다. 지원되는 스토리지 시스템이 DMA/RDMA를 통해 GPU 메모리로 데이터를 직접 이동하거나 GPU 메모리에서 데이터를 직접 이동할 수 있게 하여, CPU와 호스트 메모리를 거치지 않도록 합니다.
왜 중요한가요 – 현대의 AI/ML 워크로드는 GPU에 고속으로 테라바이트 단위의 데이터를 공급해야 하는 경우가 많습니다. 기존 경로는 데이터를 CPU를 통해 복사하므로 대역폭 제한이 발생합니다. 이 드라이버는 제로-복사 경로를 제공하여, 학습, 추론, 데이터 집약형 분석에서 처리량을 크게 향상시키고 지연을 줄일 수 있습니다.
핵심 기능
| 기능 | 세부 사항 |
|---|---|
| 직접 GPU I/O | NVMe/NVMe-OF, ScaleFlux 계산 스토리지, 또는 RDMA 지원 파일시스템과 GPU 메모리 간에 호스트 RAM에 일시 저장하지 않고 데이터를 이동 가능. |
| 지원되는 스토리지 백엔드 | • NVMe/NVMe-OF/ScaleFlux CSD 위의 XFS 및 EXT4 (순서 모드) • RDMA를 통한 NFS (MOFED ≥ 5.1) • 분산 RDMA 파일시스템: DDN Exascaler, WekaFS, VAST |
| 하드웨어 요구사항 | NVIDIA Tesla 또는 Quadro GPU (Pascal 세대 이상), 호환 가능한 NVMe 또는 분산 스토리지, Linux 커널 ≥ 4.15, MOFED ≥ 5.1, CUDA ≥ 10.0, 드라이버 ≥ 418.40 |
| 커널 통합 | 로드 가능한 커널 모듈(nvidia-fs.ko)로 빌드됨. |
| 문서 | 공식 GDS 문서: https://docs.nvidia.com/gpudirect-storage/index.html |
일반적인 사용 사례 워크플로우
- 환경 준비 – 지원되는 NVIDIA GPU, 적절한 스토리지(예: NVMe SSD 또는 RDMA 지원 파일시스템), 그리고 필요한 소프트웨어 스택(Linux 커널, MOFED, CUDA 툴킷, NVIDIA 드라이버) 설치.
- 드라이버 빌드
cd src export CONFIG_MOFED_VERSION=$(ofed_info -s | cut -d '-' -f 2) sudo make - 모듈 로드
sudo insmod nvidia-fs.ko - **CUDA 애플리케이션 또는 RAPIDS, PyTorch-Dataloader, TensorFlow 등의 라이브러리에서
cufileAPI를 사용하여 지원되는 스토리지의 파일을 열고 GPU 버퍼에 직접 읽기/쓰기. - 혜택 – 더 높은 실제 I/O 대역폭과 낮은 CPU 오버헤드로, 대규모 모델 학습 또는 추론에 대한 데이터 파이프라인 처리량이 향상됨.
시작하기
# 리포지토리 클론 (예시 URL)
git clone https://github.com/NVIDIA/gds-nvidia-fs.git
cd gds-nvidia-fs/src
# 호스트에서 감지된 MOFED 버전을 내보내기
export CONFIG_MOFED_VERSION=$(ofed_info -s | cut -d '-' -f 2)
# 커널 모듈 빌드 및 설치
sudo make
sudo insmod nvidia-fs.ko
로드 후 드라이버는 커널에 등록되어 NVIDIA GPUDirect Storage(cufile) 라이브러리를 호출하는 애플리케이션에서 사용 가능해집니다.
누구에게 적합한가요
- 대규모 모델 학습을 위한 고성능 데이터 파이프라인을 구축하는 AI/ML 엔지니어.
- CPU 측 I/O 버블넥을 줄여 GPU 활용도를 극대화하고자 하는 데이터센터 운영자.
- 스토리지 인식 GPU 컴퓨팅, 계산 스토리지, RDMA 기반 시스템을 연구하는 연구자.
제한 사항 및 참고 사항
- 드라이버는 Linux 커널 4.15 이상에서만 작동하며, RDMA 지원을 위해 MOFED(Mellanox OFED) 스택이 필요합니다.
- XFS/EXT4는 순서 모드에서 마운트되어야 하며, 다른 마운트 옵션은 지원되지 않습니다.
- 저수준 커널 구성 요소이므로 일반적으로 사용자는 상위 레벨 라이브러리(예: NVIDIA의
cufileAPI)를 통해 상호작용합니다.
요약 – nvidia-fs는 NVIDIA GPUDirect Storage를 가능하게 하는 커널 레벨 구성 요소로, 현대의 스토리지 시스템에서 GPU 메모리로 초고속, 제로-복사로 데이터를 이동할 수 있게 하여, 차세대 AI 워크로드의 핵심 구성 요소입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트