참고: 컴퓨터에서 GPU 사용이 설정되어 있는 경우에도, Anaconda 가상환경을 사용 중이라면 Anaconda 가상환경에 접속해서 아래 과정을 통해 다시 설정해야 함.
Contents
- 우분투에서 Pytorch 용 GPU 사용 설정 방법
- [후속조치] Error: NVIDIA GeForce RTX 3080 Ti with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37.
- Code 내에서 GPU 로 Complie 하도록 설정 방법
- CUDA Version 확인 시, nvcc -version 과 nvidia-smi 가 다른 이유
- GPU 사용량 확인 방법
-------------------------------------------------------------------------------------------------------------------------------------------------------------
우분투에서 Pytorch 용 GPU 사용 설정 방법
1. CUDA Version 확인: 터미널에서 "nvcc --version" 명령어 실행
2. Pytorch Site 접속하여 Pytorch 설치
1) https://pytorch.org/get-started/locally/
PyTorch
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
pytorch.org
2) "Run this Commend" 의 명령어 실행
2-1) 만약, CUDA Version이 없다면 (나의 경우, CUDA = 10.1 인데 선택할 수 없었음), 3)번으로 이동
3) 아래 사이트 접속해서 CUDA = 10.1 찾아서 해당 명령어 실행
https://pytorch.org/get-started/previous-versions/
PyTorch
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
pytorch.org
# CUDA 10.1
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch
4) 설치 확인
------------------------------------------------------------------------------------------------------------------------------------------------------------
[후속조치] GPU가 현 Pytorch 버전에 호환되지 않음
1. Pytorch 버전을 높이기 위해서는 Cudatoolkit의 버전을 높일 필요가 있음.
2. Cuda Version 확인 결과
1) nvcc --version (Runtime API): 10.1
2) nvidia-smi (Driver API): 11.7
3. Runtime API version을 높이기로 결정하고, cudatoolkit = 11.7을 설치 (https://developer.nvidia.com/cuda-toolkit-archive)
CUDA Toolkit 11.7 Downloads
Resources CUDA Documentation/Release NotesMacOS Tools Training Sample Code Forums Archive of Previous CUDA Releases FAQ Open Source PackagesSubmit a BugTarball and Zip Archive Deliverables
developer.nvidia.com
4. Cudatoolkit = 11.7 설치 중, 기존 버젼을 삭제하라는 경고문 나와서 취소 후 기존 버젼 삭제 후 다시 설치 함.
5. 결과
1) nvcc --version (Runtime API): 11.7
2) nvidia-smi (Driver API): 11.7
------------------------------------------------------------------------------------------------------------------------------------------------------------
Code 내에서 GPU 로 Complie 하도록 설정 방법1
1. Device(GPU) 설정 및 GPU 정보 확인
import torch
# device 설정
check_cuda = torch.cuda.is_available()
device = torch.device('cuda:0' if check_cuda else 'cpu')
# device 정보 확인
print('Processor:', device)
print('cuda index:', torch.cuda.current_device())
print('gpu 개수:', torch.cuda.device_count())
print('graphic name:', torch.cuda.get_device_name())
2. GPU를 사용하고자 하는 곳에 ".to(device)"를 붙여 줌
예) x_test = mnist_test.test_data.view(-1, 28*28).float().to(device)
------------------------------------------------------------------------------------------------------------------------------------------------------------
Code 내에서 GPU 로 Complie 하도록 설정 방법2
1. 코드 내에서 아래와 같이 선언해 줌
import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"]="0"
2. 그 외, 여러 GPU에 python code 할당
선택한 GPU에만 메모리 할당하는 방법
출처: https://www.tensorflow.org/tutorials/using_gpu Issue: multi-GPU 시스템에서 tensorflow를 실행할 경우 하나의 GPU에서 코드가 실행되게 프로그래밍을 해도 모든 GPU에 메모리를 할당한다. 이는 위의 출처에 가
dongjinlee.tistory.com
------------------------------------------------------------------------------------------------------------------------------------------------------------
CUDA Version 확인 시, nvcc -version 과 nvidia-smi 가 다른 이유
1. CUDA는 2개의 Primary APIs를 가짐
1) Runtime API: CUDA toolkit installer에 의해 설치 (e.g. libcudart.so on linux / nvcc)
2) Driver API: GPU driver installer에 의해 설치 (e.g. libcuda.so on linux / nvidia-smi)
2. 만약, GPU driver를 Bundle로 설치하지 않고 독립적으로 설치했다면 Version의 차이가 발생
3. 일반적으로 nvidia-smi (Driver API) 버전이 nvcc - v (Runtime API) 버전과 같거나 더 높음. 일반적으로 Newer Driver API가 old CUDA toolkit을 지원하므로 문제가 되지 않음.
참고:
https://stackoverflow.com/questions/53422407/different-cuda-versions-shown-by-nvcc-and-nvidia-smi
------------------------------------------------------------------------------------------------------------------------------------------------------------
실시간 GPU 사용량 확인 방법
- 시작: 1초마다 갱신 (1을 0.5로 바꿔주면 0.5초마다 갱신된다.)
watch -n 1 nvidia-smi
- 종료: Ctrl+C
- 각 Parameter 해석은 아래 링크 참조
NVIDIA-SMI 확인방법 및 활용하기
NVIDIA-SMI 확인방법 및 활용하기 nvidia-smi 옵션 사용법 nvidia gpu를 사용하기 위해서는 nvidia에서 제공하는 GPU Driver를 각각의 os에 맞게 설치해야 한다. 드라이버 설치에 성공하고 가장 먼저 사용하는
kyumdoctor.co.kr
'Programming' 카테고리의 다른 글
Jupyter Notebook에서 D드라이브 접속하는 방법 (0) | 2023.03.13 |
---|---|
Docker Container 설치: 우분투 환경 (0) | 2022.12.07 |
Docker Container의 장점 및 기능: 독립 환경 구성 (0) | 2022.12.06 |
Optimization: MLE, MRT, DSL (0) | 2022.11.18 |
Tensorflow와 Pytorch 차이 (0) | 2022.10.23 |