우분투 cuda 설치 - ubuntu cuda seolchi

2022-07-12 2 분 소요

ubuntu 20.04, nvidia driver 495, cuda 11.3, cudnn 8.2.1, pytorch 버전을 설치하는 방법입니다.
우분투에서 파이썬 가상환경도 만들어봅니다.

기존 nvidia, cuda 완전 삭제

  • 혹시 우분투에 nvidia, cuda를 설치한 적이 있다면 해당 명령어를 터미널에 실행해보길 바란다. 1

      $ sudo apt-get purge nvidia*
    

      $ sudo apt-get autoremove
    

      $ sudo rm -rf /usr/local/cuda*
    

설치가능한 드라이버 확인

  • 그래픽 카드 및 설치 가능한 드라이버를 다음 명령어로 확인해본다.

우분투 cuda 설치 - ubuntu cuda seolchi

  • 이제 설치하고픈 버전을 골라 설치하거나, 자동으로 드라이버를 설치한다. 2
  • 본인은 nvidia-driver-495로 설치해보겠다.

      # 자동으로 드라이버 설치
      $ sudo ubuntu-drivers autoinstall
    

      # 원하는 버전 설치
      $ sudo apt install nvidia-driver-495
    

  • nvidia 드라이버 설치가 끝나면 NVIDIA kernel module의 load를 도와주는 modprobe 패키지를 설치한다. 3

      $ sudo apt-get install dkms nvidia-modprobe
    

  • 그리고 다음 명령어로 마무리해준다.

      $ sudo apt update
      $ sudo apt upgrade
    
      # 재부팅
      $ sudo reboot
    

  • 재부팅 후 설치가 잘 되었는지 확인하기 위해 다음 명령어를 실행해본다.
  • 아래처럼 잘 나오면 설치가 잘 된것이다.

우분투 cuda 설치 - ubuntu cuda seolchi

cuda 11.3 설치

  • cuda 11.3을 설치하기 위해 해당 사이트에 들어간다.
  • NVIDIA DEVELOPER - CUDA Toolkit Archive
  • 그 다음, linux -> x86_64 -> Ubuntu -> 20.04 -> runfile(local)로 가 해당 명령어를 실행한다.

우분투 cuda 설치 - ubuntu cuda seolchi

우분투 cuda 설치 - ubuntu cuda seolchi

# runfile(local)
$ wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
$ sudo sh cuda_11.3.1_465.19.01_linux.run

# 만약 위 과정이 안되면 아래 명령어를 실행한다. - deb(local)
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
$ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.1-465.19.01-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.1-465.19.01-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda

  • Continue 후, accept, 그 다음 Driver 선택을 해제후 Install 한다.

우분투 cuda 설치 - ubuntu cuda seolchi

우분투 cuda 설치 - ubuntu cuda seolchi

우분투 cuda 설치 - ubuntu cuda seolchi

  • 설치가 잘 진행되었다면 아래 그림처럼 나올 것이다.

우분투 cuda 설치 - ubuntu cuda seolchi

만약 gcc가 없어서 문제가 발생한다면, 다음 명령어를 수행한다.

$ sudo apt update 
$ sudo apt install build-essential 
$ sudo apt-get install manpages-dev

  • cuda 버전을 확인하고 싶으면, 다음 명령어를 실행한다.

우분투 cuda 설치 - ubuntu cuda seolchi

  • CUDA Toolkit 관련 설정을 환경 변수에 추가하기 위해 다음 명령어를 실행한다. 4

      $ sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.3/bin'>> /etc/profile"
      $ sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.3/lib64'>> /etc/profile"
      $ sudo sh -c "echo 'export CUDARDIR=/usr/local/cuda-11.3'>> /etc/profile"
      $ source /etc/profile
    

cuDNN 설치

  • cuDNN을 설치하기 위해 해당 사이트에 접속한다.
    • NVIDIA cuDNN
  • NVIDIA 계정이 있어야 한다. 없다면 회원가입해야 한다는 점 유의한다.
  • 그림에 표시한대로 따라 다운로드 받는다.

우분투 cuda 설치 - ubuntu cuda seolchi

우분투 cuda 설치 - ubuntu cuda seolchi

우분투 cuda 설치 - ubuntu cuda seolchi

우분투 cuda 설치 - ubuntu cuda seolchi

  • 다운로드 받은 파일을 압축풀어 파일을 복사한다.
    • 복사 명령어 : cp [복사할 디렉토리/파일] [복사될 디렉토리/파일]
    • 압축 풀기 명령어 : tar xvzf [압축 파일명]
    • *은 모든 것을 포함한다는 의미

      $ tar xvzf cudnn-11.3-linux-x64-v8.2.1.32.tgz
      $ sudo cp cuda/include/cudnn* /usr/local/cuda/include
      $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
      $ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
      
      $ sudo ln -sf /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.2.1 /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
      $ sudo ln -sf /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.2.1  /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
      $ sudo ln -sf /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.2.1  /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
      $ sudo ln -sf /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.2.1  /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
      $ sudo ln -sf /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.2.1  /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
      $ sudo ln -sf /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.2.1 /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
      $ sudo ln -sf /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn.so.8.2.1 /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn.so.8
      

  • 새로 추가된 라이브러리를 시스템에서 찾을 수 있도록 한다.

  • 다음은 설정이 제대로 되었는지 확인하기 위한 명령어이다.

      ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
    

    우분투 cuda 설치 - ubuntu cuda seolchi

python 가상환경 설치

  • 먼저 python 버전을 확인하고, venv를 설치해준다. 5

      $ python3 --version
      $ sudo apt-get install python3-venv
    

  • 그다음, 원하는 이름으로 가상환경을 생성한다.

      $ python3 -m venv [가상환경 이름]
      # 예시로
      $ python3 -m venv tf2.8
    

  • 다음은 가상환경를 활성화하는 과정이다.
  • 활성화하면 터미널 앞에 가상환경 이름이 나타날 것이다.

      $ source [가상환경 이름]/bin/activate
      # 예시로
      $ source tf2.8/bin/activate
    

  • deactivate를 실행하면, 가상환경은 종료된다.

pytorch 및 필수 패키지 설치

  • 가상환경을 활성화했다면 다음 패키지를 설치해준다.
    • pytorch는 cuda 11.3에 맞는 버전이다.
    • pytorch 버전을 알고 싶으면 다음 사이트를 참고하길 바란다.
    • pytorch.org - get_started
  • 그외 필요한 패키지는 아래와 같은 방식으로 설치해주면 된다.

      $ pip install --upgrade pip --user
      $ pip install pandas matplotlib seaborn scipy sklearn
      $ pip install jupyter notebook
      $ pip install ipykernel
      $ python -m ipykernel install --user --name 가상환경이름 --display-name 표시할 가상환경 이름
    
      $ pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
    

References