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
에 의해 설치된다.