
개요
기존 파이썬 환경에서 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 개발자 문서
 
      
     
      
댓글남기기