NVIDIA/cudf

cuDF - GPU DataFrame Library

NVIDIA cuDF – GPU 가속 데이터프레임

정의 – cuDF는 NVIDIA GPU에서 표 형식 데이터(CSV, Parquet 등)를 작업할 수 있는 라이브러리 모음입니다. pandas API를 미러링하므로 pandas 코드를 그대로 대체하여 동일한 작업(읽기, 필터링, 그룹화, 조인 등)을 CPU 대신 GPU에서 실행할 수 있습니다. 핵심은 Arrow 호환 컬럼 구조를 가진 C++ 라이브러리(libcudf)이며, Python 바인딩은 pylibcudf와 고수준 cudf 패키지를 통해 제공됩니다. 추가 어댑터를 통해 cuDF는 Polars(cudf-polars)와 Dask(dask-cudf)를 지원합니다.

AI/ML에 중요한 이유 – 대부분의 데이터 과학 파이프라인은 모델에 공급하기 전에 정리, 재구성, 집계가 필요한 대규모 테이블에서 시작됩니다. cuDF는 이러한 단계를 가속화하여 전처리 시간을 수 분에서 수 초로 단축하는 경우가 많으며, 모델 반복을 빠르게 하고 더 큰 데이터셋을 처리할 수 있게 합니다.

주요 구성 요소

  • libcudf – Arrow 호환 컬럼 컨테이너와 저수준 알고리즘을 갖춘 CUDA C++ 코어.
  • pylibcudf – 코어를 Python에 노출하는 Cython 바인딩.
  • cudf – pandas 호환 DataFrame 라이브러리. 기존 pandas 스크립트를 코드 변경 없이 가속화하는 cudf.pandas도 제공.
  • cudf-polars – Polars DataFrame 라이브러리용 GPU 엔진.
  • dask-cudf – 분산 워크로드를 위한 GPU 지원 Dask DataFrames.

설치 (하나 선택)

# pip 사용 – CUDA 버전에 맞는 접미사 선택
pip install cudf-cu13   # CUDA 13용
pip install dask-cudf-cu13
# …또는 CUDA 12용
pip install cudf-cu12
# conda 사용 – RAPIDS 채널 사용
conda install -c rapidsai cudf dask-cudf

개발 빌드의 경우 나이틀리 채널(-c rapidsai-nightly)을 추가하세요.

빠른 예제 – pandas와 동일한 코드이지만 GPU에서 실행됩니다:

import cudf

# Parquet 파일을 GPU 메모리로 직접 로드
df = cudf.read_parquet('data.parquet')

# null이 있는 행을 제거하고 두 컬럼으로 그룹화하여 평균 계산
result = df.dropna().groupby(['A', 'B']).mean()
print(result)

기존 pandas 스크립트를 변경 없이 실행할 수도 있습니다:

python -m cudf.pandas my_script.py

또는 Jupyter 노트북에서:

%load_ext cudf.pandas
import pandas as pd   # 이제 GPU에서 실행

Polars 사용자:

import polars as pl
lf = pl.scan_parquet('data.parquet')
out = lf.drop_nulls().group_by(['A', 'B']).mean().collect(engine='gpu')

커뮤니티 및 기여 – 버그 및 기능 요청은 GitHub 이슈 트래커를 통해 접수됩니다. 토론은 RAPIDS Slack 워크스페이스에서 이루어집니다. 기여는 표준 NVIDIA RAPIDS 기여 가이드를 통해 환영합니다.


cuDF는 진정한 프로덕션 등급의 GPU 데이터 처리 라이브러리로, 현대 AI/ML 파이프라인에 완벽하게 부합합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트