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 파이프라인에 완벽하게 부합합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트