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