NumPy 코드를 GPU에서 그대로 돌리는 Python 라이브러리
지금까지 CPU에서 돌리던 데이터 처리 코드를 GPU로 옮기려면 복잡한 C++ 코드를 새로 짜야 했다면, 이제는 import 문만 바꾸면 됩니다. CuPy는 NumPy와 SciPy의 API를 그대로 따르는 GPU용 배열 라이브러리입니다. NVIDIA CUDA나 AMD ROCm 환경에서 기존 Python 코드를 수정 없이 실행할 수 있게 해줍니다.
import 문만 바꾸면 끝나는 GPU 전환
CuPy는 NumPy와 SciPy의 함수 명칭과 동작 방식을 그대로 따릅니다. 예를 들어 import numpy as np를 import cupy as cp로 바꾸고, 변수 이름만 np에서 cp로 교체하면 됩니다. 이렇게 하면 동일한 로직이 GPU에서 병렬 처리되어 실행됩니다. 복잡한 GPU 프로그래밍 지식이 없어도 기존 Python 스크립트를 그대로 활용하여 계산 속도를 높일 수 있습니다.
CUDA 저수준 기능 접근과 설치
단순한 배열 연산뿐 아니라 CUDA의 저수준 기능에도 접근할 수 있습니다. RawKernels를 통해 기존 CUDA C/C++ 코드를 Python에서 호출하거나, Streams를 이용해 성능을 최적화할 수 있습니다. 설치 방법은 플랫폼에 따라 다릅니다. Linux와 Windows에서는 PyPI의 pip install cupy-cuda12x 또는 pip install cupy-cuda13x 명령으로 설치할 수 있습니다. AMD ROCm 7.0을 사용하려면 실험 단계인 pip install cupy-rocm-7-0을 사용해야 합니다. Conda를 사용하는 경우 conda install -c conda-forge cupy 명령으로 설치할 수 있으며, CUDA 버전이 특정 버전이어야 한다면 cuda-version 메타패키지를 함께 지정하면 됩니다.
누가 이 라이브러리를 써야 하는가
이미 NumPy나 SciPy로 작성된 데이터 분석이나 과학 계산 코드가 있고, 이를 GPU로 가속하고 싶은 개발자에게 적합합니다. 특히 NVIDIA GPU를 사용하는 환경에서 기존 코드를 최소한의 수정으로 성능을 끌어올리고 싶을 때 유용합니다. AMD GPU를 사용하는 경우에도 ROCm 7.0 환경에서 실험적으로 사용할 수 있습니다. 다만, ROCm 지원은 아직 실험 단계이므로 안정적인 프로덕션 환경에서는 NVIDIA CUDA 환경을 우선 고려하는 것이 좋습니다. MIT 라이선스로 배포되며, Preferred Networks와 커뮤니티 기여자들이 함께 개발하고 유지보수하고 있습니다.