최근들어 Deep learning 관련 연구를 진행하게 되었습니다.
deep learning을 진행하기 위해서는 R 보다는 python에서 실행하는것이 더 효율적입니다. (더 빠르고 정보가 많습니다.)
예전에 깔짝되던 Tensorflow, pytorch 중에 고민을 하다가 pytorch로 분석을 시작하게 되었고, pytorch중에서 GPU를 사용하는 방법에 대해서 설명하겠습니다.
먼저 cuda설정이 되어있는지 확인하려면 다음과 같이 python 코드를 짜면 됩니다.
import torch
print(torch.cuda.is_available())
# False = cpu
# True = gpu 사용가능
cuda가 설정이 안되어 있으면 아래 쭈욱 읽어보시면 됩니다.
스펙은 다음과 같습니다. (그냥 컴퓨존에서 영상편집용 컴퓨터를 메모리 업그레이드해서 샀습니다.)
가장 먼저 확인해야할 사항은 엔비디아 드라이버의 유무를 알아야 합니다.
https://www.nvidia.com/Download/index.aspx?lang=kr
위 사이트에 들어가서 드라이버를 먼저 다운받습니다.
그리고 cuda 를 설치를 해야합니다. 그러기 전에 필요한 cuda 버전을 확인할 필요가 있습니다.
https://pytorch.org/get-started/locally/
위 사이트에서는 pytorch가 안정적이게 사용할 수 있는 버전을 확인할 수 있습니다.
본 페이지에서는 Conda보다는 Pip 그냥 로컬로 설치하는 방법을 확인해보겠습니다. (conda로는 많이 포스팅이 되어있네요)
CUDA 10.2 버전을 이용해서 설치하겠습니다. (cuda도 최신이 항상 좋은 것이 아니라 오히려 조금 된 버전의 경우 더 안정적인 구동을 할수있습니다.)
저렇게 클릭을 하면 아래 Run this Command가 나옵니다. 저부분을 Powershell Script를 이용해서 설치를 해주면 됩니다.
그리고 위에서 gpu 확인하는 script를 이용해서 확인해주면 됩니다.
혹시 안되시면 다음과 같은 방법을 해보세요 (사실 저도 많이 헤메서.. Tensorflow cuda설치 참고해서 진행했었습니다.)
https://developer.nvidia.com/cuda-toolkit-archive
위에서 10.2 CUDA버전을 이용해서 설치를 하시고 (patch 두개가 있는데 다 다운받고 설치하였습니다.)
CuDNN 을 설치해야하는데 회원가입을 해야해서 귀찮지만 해줍니다.
https://developer.nvidia.com/cudnn
그리고 zip 파일로 다운을 받아서 (window는 zip파일) 압축 푼 파일을 CUDA 폴더에 덮어씌워줍니다.
그냥 설치를 하셨다면 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2 여기에다가 덮어 씌워줍니다.
그리고 환경변수를 변경해야 하는데 윈도우 누르고 "시스템 환경 변수 편집" 을 찾습니다.
그리고 들어가서
PATH 누르고 편집을 누르신 다음에
새로만들기 하시고 CUDA 폴더에서 bin, include, lib 세가지의 path를 추가해주시면 됩니다.
예전에는 cuda 설정하기가 어렵다고 말이 나왔었는데, 요즘은 생각보다 어렵진 않았네요. (뭐.. 다양한 블로그를 참조하기는 했죠.)
앞으로 시간될때 Deep learning관련 포스팅을 하도록 하겠습니다.
22-06-20일 다시 설치도중에 업데이트 된 내용 공유드립니다.
torch가 10.2를 더 이상 지원이 안된다고 하길래
cuda 11.3 -> cudnn 8.2 -> pytorch 설치 이 단계로 진행하면 세팅이 완료된 것을 확인하였습니다.
참고로 RTX 3090기준으로 성공했음을 밝힙니다.
'딥러닝\머신러닝' 카테고리의 다른 글
[tensorflow]python에서 이미지 읽는 방법 (0) | 2022.03.12 |
---|---|
[tensorflow] 유튜브에 나온 내용 해부해보기 (빵형의 개발도상국) (0) | 2022.03.10 |
[tensorflow 설정] gpu 세팅하기 (0) | 2022.03.10 |
[pytorch] tensor를 이해해보자! (1) | 2021.08.05 |
[pytorch] tensor 나누는 방법들 (split, chunks, 데이터 나누기) (0) | 2021.08.03 |
댓글