본문 바로가기

Server/Unix, Linux

[끝판왕]Ubuntu 20.04 NVIDIA driver 및 CUDA toolkit 설치 총 정리

반응형

Ubuntu 20.04 nvidia CUDA driver setting

정답은 늘 가까이 있었거늘...

  • 요약 각종 블로그 글따위, 게시판 글따위 아무 도움이 되지 않는다. 심지어 대부분의 stackoverflow도....
    • 왜냐? 공식 설치 문서가 있으니까!!!!!

Official Docs for install

image

공식 설치 문서만 잘 보면된다. 특히 2. Pre-installation Actions9. Post-installation Actions 대부분의 사람들은 그저 핵심 부분인 4. Driver installation 만을 잘 정리해놓았다. 하지만 가장 중요한건 사전 패키지 설치등과 관련된 2번단계와 최종 환경설정인 9번단계가 중요한데, 이를 그냥 무시하고 핵심만 설명하니, 대부분의 경우 되지 않았다.

나는 다음과 같은 환경에서 설치에 성공하였다.

  • 수십번의 다양한 버전 (450, 465, 460, 465... 및 11.1, 11.3, 11.1, 11.3...)의 패키지에 대한 install/uninstall
  • 때려치고 그냥 우분투 다시 깔까...라는 약한 의지
  • 수많은 환경변수에 대한 꼬임
  • Ubuntu 20.04 LTS
  • GCC 9
  • Geforce 2080 Ti

정확하게 이 부분만이 해결책은 아니었겠지만, 개인적으론 이 부분이 중요했던 것 같다. (2.4)

sudo apt-get install linux-headers-$(uname -r)

Docker setting

  • CUDA를 다시 깔고 나면, nvidia-docker2가 지워진다. 따라서 다시 깔아야 함
  • 공식 설치 문서

What is best docker image for DL/ML?

  • 당연히 대부분의 사람들은 dockerhub에 가서 내 취향에 맞는 잘 만들어놓은 이미지를 찾을 예정, 하.지.만.
  • 이미 사실 누가 열일을 잘 해놓음 그것도 목적에 맞게, 거기다가 기본 예제까지 넣어서!!! 싹-다-
  • 바로누가? NVIDIA
  • NVIDIA GPU Cloud; NGC

NGC에 들어가서 Containers 탭에서 내가 원하는 이미지 tensorflow 또는 pytorch를 선택해서 골라쓰면 된다. 둘 말고도 당연히 다양한 목적을 가진 container가 매우 최신버전으로 존재한다. NVIDIA 칭찬해. 그리고, 다음의 docs에 가면 각 Frameworks 별 Release Notes가 있다....!
다양한 예제를 이미 담고있기까지!! 더이상의 자세한 설명은 생략한다.

  • docs.nvidia.com/deeplearning

    • 개인적으론 PyTorch가 더 좋아보이는듯...?
    • 대단한 Pytorch Image의 위엄
  • Ubuntu 20.04 including Python 3.8 environment

  • NVIDIA CUDA 11.3.0, cuBLAS 11.5.1.101, NVIDIA cuDNN 8.2.0.41, NVIDIA NCCL 2.9.6 (optimized for NVLink™ )

  • APEX, rdma-core 32.1

  • OpenMPI 4.1.1rc1, OpenUCX 1.10.0, GDRCopy 2.2

  • NVIDIA HPC-X 2.8.2rc3, Nsight Compute 2021.1.0.18, Nsight Systems 2021.1.3.14

  • TensorRT 7.2.3.4, TensorBoard 1.15.5

  • DALI 1.0.0, MAGMA 2.5.2

  • DLProf 1.1.0, PyProf r21.04

  • Tensor Core optimized examples:

    • ResNeXt101-32x4d, SE-ResNext, TransformerXL, Jasper, BERT, Mask R-CNN, Tacotron 2 and WaveGlow v1.1, SSD300 v1.1, Neural Collaborative Filtering (NCF), ResNet50 v1.5, GNMT v2
  • Jupyter and JupyterLab:

    • Jupyter Client 6.0.0, Jupyter Core 4.6.1, Jupyter Notebook 6.0.3, JupyterLab 2.3.1, JupyterLab Server 1.0.6, Jupyter-TensorBoard

이제 원하는대로 사용깔아서 쓰기만 하면 된다! 만쉐!!!!! 는 아니고...

  • JupyterLab이 3.0.XX가 나왔는데 아직 2.3.1이다.. 필수 업데이트 요망!!

Start the Docker Container

이제 원하는 이미지를 골랐으면 받고(pull) 실행하면 된다.

나는 pytorch를 골랐으니 다음의 옵션으로 시작할 예정, 개인적으로 재사용할 예정이라 --rm은 제거하고 --name으로 이름을 부여, 포트 추가, 볼륨 연결 등을 해 주었다.

sudo docker run --gpus all -it -p 8888:8888 -p 6006:6006 -v /home/Workspace:/workspace/mywork --name jupytorch nvcr.io/nvidia/pytorch:21.04-py3
  • 실행 옵션에 대한 더 자세한 궁금한 사항은 이 글요 글을 참고
반응형