NVIDIA 명령어 정리

NVIDIA 프로그램 설치과정에서 nvidia-smi, nvcc 등과 같은 여러가지 프로그램을 확인하는 명령어가 존재한다. 이러한 명령어가 어느 상황에서 쓰이는지 확인해보자

CUDA (Driver) library vs. CUDA (Runtime) library

위의 두 사진을 보면 모두 CUDA와 관련된 버전을 확인할 수 있다.

위의 두 라이브러리는 기능적으로 겹치는 부분이 많지만, 대체로 CUDA Runtime API를통해서 대부분의 문제를 더욱 간편하게 해결할 수 있다고 한다.

어떤이의 기술블로그에 따르면 CUDA 코딩을 할때, CUDA Driver library로 짠 코드는 하나도 없을 정도로 문제 해결을 휘해선 CUDA Runtime library의 활용이 절대적이라고 한다.

CUDA Toolkit and NVCC

오해(Common misunderstandings)

  1. PyTorch 구동을 위해 CUDA Toolkit 설치가 필요한가? → 아니다.

    PyTorch는 사전에 자동으로 CUDA Toolkit을 설치하게 된다.

    Untitled

    위와 같이 환경 자체에 설치가 된다.

  2. NVIDIA Driver 버전과 CUDA Toolkit은 서로 상관이 없는가? → 아니다.

    CUDA Toolkit을 설치하기 위해서는 NVIDIA가 설정한 NVIDIA Driver의 최소 버전보다 높아야 한다. 그 이상이라면 설치하는 데에 문제는 없다.

  3. Docker container에서 GPU를 구동하기 위해서는 CUDA Toolkit이 필요한가? → 아니다.

    NVIDIA-Driver과 NVIDIA 컨테이너 런타임만 있다면 구동이 가능하다.

  4. Docker에서 GPU를 사용하기 위해서 NVIDIA-docker runtime을 설치해야 하는가? → 그렇다.

    –gpus all ****옵션을 활용하기 위해서는 nvidia-docker를 설치해야한다.

    docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:2.7.1-gpu
    
  5. NVIDIA container 안에서 cuDNN과 NVCC 명령어를 사용할 수 있는가? → 아니다.

    컨테이너 안에서는 nvidia-smi만 사용할 수 있다. cuDNN을 사용하기 위해선 다른 docker 이미지를 사용하면 된다. → 예) nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04