개요

기존 파이썬 환경에서 TensorRT를 이용해 학습한 딥러닝 네트워크 모델을 최적화하여 추론하면서 GPU 메모리에 INPUT과 OUTPUT을 할당하기 위해 pycuda 라이브러리를, 이미지 전처리를 하기 위해 numpy 라이브러리를 사용하였다. CuPy 라이브러리는 이를 거의 대체할 수 있으며 GPU 기반 연산으로 CPU+메모리 기반 연산에 비해 더 빠른 연산속도를 보장한다.

CuPy 이용 요구사항

(2023년 2월 기준)

  • CUDA Capability 3.0 이상의 GPU
  • CUDA Driver v10.2 / v11.x / v12.0
  • Python v3.7 ~ v3.11.0

Python Package Dependency

CuPy의 API는 NumPy 1.23 버전과 SciPy 1.8 버전에 기반하여 작성되어 있다. 이에 호환되는 라이브러리 버전은 다음과 같다. (2023년 2월 기준)

  • NumPy: v1.20 ~ v1.23
  • SciPy(opt): v1.6 ~ v1.9

Additional CUDA Libraries

CuPy가 호환되어 활성화 할 수 있는 CUDA 관련 라이브러리의 버전은 다음과 같다. (2023년 2월 기준)

  • cuTENSOR: v1.4 ~ v1.6
  • NCCL: v2.8 ~ v2.16
  • cuDNN: v7.6 ~ v8.7
  • cuSPARSELt: v0.2.0

설치

CuPy는 파이썬 패키지로 구성되어 있어 PyPI또는 Conda로 설치가 가능하다.

쿠다 설치 명령어
v10.2(x86_64) pip install cupy-cuda102
v10.2(aarch64 - Jetpack4) pip install cupy-cuda102 -f https://pip.cupy.dev/aarch64
v11.0 ~ v11.8(x86_64) pip install cupy-cuda11x
v11.2 ~ 11.8 (aarch64 - JetPack 5 / Arm SBSA) pip install cupy-cuda11x -f https://pip.cupy.dev/aarch64
v12.x (x86_64) pip install cupy-cuda12x
v12.x (aarch64 - JetPack 5 /Arm SBSA) pip install cupy-cuda12x -f https://pip.cupy.dev/aarch64

본인의 경우 CUDA 11.6 기반의 Python 환경에서 해당 라이브러리를 사용하기 위해 다음과 같이 설치하였다.

$ pip install cupy-cuda116

주의

cupy를 다음과 같이 그냥 설치 시 현재 최신 stable 소스 기반으로 빌드하여 설치된다.

$ pip install cupy

Conda를 통해 설치

conda-forge 채널로 부터 설치 가능하다. 설치 시 cudatoolkit 버전의 명시를 통해 원하는 버전의 cupy 설치가 가능하다.

# latest version
$ conda install -c conda-forge cupy 

# specific version
$ conda install -c conda-forge cupy cudatoolkit=11.6

설치 실패 시

설치 실패의 원인은 다양할 수 있다.

  • setuptools 버전을 높인다.
    $ pip install -U setuptools pip
    
  • -vvvv 옵션을 통해 모든 로그를 확인하여 원인 파악
    $ pip install cupy -vvvv
    

버전 관련 주의 사항

cupy 라이브러리의 버전은 지원되는 CUDA 버전과는 별개의 문제인 것 같다. 현재 본인이 설치한 cupy-cuda116 라이브러리의 버전은 10.6.0이다. cupy의 설치 가능한 버전들을 보면 최신버전이 12.0.0b3 같은 것들이라 해당 버전이 호환되는 CUDA를 대변하나 라고 생각할 수 있지만 원하는 CUDA 버전에 맞게 설치하려면 위에 언급한 것처럼 cupy-cuda11x 라이브러리를 통해 설치하자

참고: CuPy 개발자 문서

댓글남기기