CUDA Python 개요 — 어떤 구성요소들이 있나

CUDA Python 개요 — 어떤 구성요소들이 있나

CUDA C를 직접 다루기 어려운 파이썬 사용자에게 NVIDIA는 CUDA Python이라는 이름 아래 여러 공식 모듈을 제공해요. 이들은 역할이 나뉘어 있어서 목적에 따라 골라 쓰면 돼요.

출처: https://nvidia.github.io/cuda-python/latest/

주요 구성요소를 정리하면 이래요:

  • cuda.core — 파이썬다운(pythonic) 방식으로 CUDA 런타임과 핵심 기능에 접근하는 고수준 API예요.
  • cuda.bindings — CUDA C API의 저수준 파이썬 바인딩이에요. driver, runtime, nvrtc, nvvm, nvml 등을 직접 호출해요.
  • cuda.pathfinder — 사용자 파이썬 환경에 설치된 CUDA 구성요소를 찾아주는 유틸리티예요.
  • cuda.coop / cuda.compute — CCCL의 디바이스·호스트 병렬 프리미티브(정렬·스캔·리듀스 등)를 파이썬에서 쓸 수 있게 한 모듈이에요.
  • numba.cuda — 파이썬 부분집합을 CUDA 커널·디바이스 함수로 컴파일하는 DSL이에요.
  • cuda.tile — NumPy 비슷한 코드를 CUDA 커널에서 쓰게 해 주는 타일 프로그래밍 DSL이에요.

이렇게 많은 모듈이 있지만, 가장 기본이 되는 축은 두 가지예요. 고수준 cuda.core(생산성)와 저수준 cuda.bindings(제어력). 두 문서 페이지에서 각각의 용례를 확인할 수 있어요.

참고: 이 문서는 development 브랜치 기준이라 설치 가이드는 cuda.bindings 문서의 설치 섹션을 참고하는 게 정확해요.

더 알아보기