NVIDIA 그래픽 카드(혹은 GPU)와 컴퓨터 운영 체제(OS) 간의 통신을 관리하고 제어하는 소프트웨어로 NVIDIA GPU를 컴퓨터에서 올바르게 인식하고 제어, 리소스를 최적화하고, 그래픽 작업을 처리하기 위해 GPU에 명령을 전달하는 역할
CUDA는 C/C++ 프로그래밍 언어를 기반으로 하며, GPU에서 병렬 코드를 작성하고 실행할 수 있는 풍부한 라이브러리와 도구를 제공, CUDA는 GPU 컴퓨팅에서 일종의 컴파일러 역할을 수행한다.
CUDA는 2개의 API를 가지고 있는데, 하나는 runtime API이고 다른 하나는 driver API이다. 각 API가 각자의 version을 가지고 있다.
nvidia-smi
는 runtime API로 GPU 드라이버에 의해 설치된다. nvcc
는 CUDA toolkit
에 의해 설치된다.
nvidia-smi
- Driver Version : nvidia driver 버전
- CUDA Version : nvidia driver에서 사용을 권장하는 버전
nvcc --version
- 실제로 설치된 CUDA 정보를 확인을 할 수 있음
딥 러닝 및 인공 신경망(ANN) 프레임워크를 가속화하기 위한 라이브러리로 pytorch
프레임워크와 통합되어 사용자가 프레임워크에서 CuDNN을 사용하여 모델을 개발하고 실행할 수 있도록 합니다.
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2