데이터사이언스/데이터 지식

pytorch gpu 설정 & autogluon gpu 연결 방법

박윤서 2024. 4. 24. 13:37

진짜 오랜만에 글을 적어봅니다.

최근 저는 여러 대회에서 높은 성능을 보였던 autogluon을 자주 사용하고 있었습니다.

평상시에는 노트북으로 작업하다보니 gpu를 연결할 일이 없었는데요.

이번에 회사에서 매장별 메뉴 판매량 예측 프로젝트를 진행하면서 gpu 연결이 필요하게 되었습니다.

 

이전에 pytorch gpu 연결 경험은 여러번 있어서 비슷한 방식으로 진행하면 될 것이라고 생각했는데 조금 고생했네요..ㅎㅎ모든 세팅까지 4-5시간 정도 걸린 것 같습니다,, 이 글을 보시는 분들은 시간 아끼시길 바라는 마음으로 작성합니다.

 

pytorch gpu 연결과 관련한 자료들은 여러 글들이 많습니다. 이곳에는 제가 진행한 작업들만 남겨놓겠습니다.

본인 gpu와 맞는 분이 작성한 글 그대로 따라하시면 편해요.

저는 다음 글을 참고하여 똑같이 진행했습니다.

https://wannabenice.tistory.com/54

 

[Setting] Windows - Nvidia Driver, CUDA, cuDNN, PyTorch 설치

최종 환경 CPU : Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz GPU : NVIDIA GeForce RTX 2060 SUPER Nvidia Driver : 528.24 python : 3.8.13 miniconda(Anaconda) : 22.11.1 CUDA : 10.2.89 cuDNN : 8.6.0 PyTorch : 1.10.1+cu102 Vscode, miniconda, python의 설치가

wannabenice.tistory.com


  • GPU : NVIDIA GeForce RTX 2060 SUPER
  • Nvidia Driver : 551.86
  • python : 3.10.14
  • CUDA : 10.2
  • cuDNN : 8.6.0

전체적으로 요약하면 위에 버전들로 세팅을 했습니다.

 

1. GPU 확인

gpu 확인 방법은 여러가지가 있습니다.

내 pc -> 속성 -> 장치 관리자 -> 디스플레이 어댑터

또는 작업관리자에 들어가서 확인 가능합니다.

 

2. Nvidia Driver

아래 링크를 통해 맞는 것을 골라서 설치하시면 됩니다.

https://www.nvidia.co.kr/Download/index.aspx?lang=kr

 

Download the latest official NVIDIA drivers

Download the latest official NVIDIA drivers

www.nvidia.com

 

3. CUDA 설치

3.1 cuda 지원, 성능, 코어 수 확인

아래 블로그를 통해 cuda 10.2를 선택했습니다.

GeForce RTX 2060 SUPER의 Micro-architecture는 Turing이고 Compute capability는 7.5입니다.

 

https://wannabenice.tistory.com/54

 

[Setting] Windows - Nvidia Driver, CUDA, cuDNN, PyTorch 설치

최종 환경 CPU : Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz GPU : NVIDIA GeForce RTX 2060 SUPER Nvidia Driver : 528.24 python : 3.8.13 miniconda(Anaconda) : 22.11.1 CUDA : 10.2.89 cuDNN : 8.6.0 PyTorch : 1.10.1+cu102 Vscode, miniconda, python의 설치가

wannabenice.tistory.com

참고링크

https://www.wikiwand.com/en/CUDA

https://en.wikipedia.org/wiki/CUDA

 

3.2 cuda toolkit 설치

v10.2를 다운 받았습니다.

window / 10/ x86_64 / exe(local)

자신 컴퓨터에 맞는 파일을 찾아서 다운 받으면 됩니다,.

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

 

4. cuDNN 설치

cuDNN : v8.6.0을 설치했습니다.

설치할 때 아마 회원가입이 필요했던 것으로 기억하는데 회원가입 진행하시면 됩니다.

아마 다운로드를 받으면 압축된 zip 파일이 있을 겁니다! 그 안에 있는 bin, include, lib 파일을 cuda toolkit 디렉토리에 그대로 복사하면 됩니다. 즉, 덮어쓰기 누르시면 됩니다.

 

* cuda toolkit 디렉토리

일반적으로 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.x에 설치됩니다. 여기서 X.x는 설치된 CUDA 버전을 나타냅니다.

 

5. 환경 변수 설정

아마 자동으로 되는 것으로 알고 있지만 안되어 있다면 환경 변수를 추가해주셔야 합니다.

  • 시스템 환경 변수를 업데이트하여 CUDA Toolkit 및 cuDNN 경로를 포함시킵니다.
  • '시스템 속성' > '고급' > '환경 변수'로 이동합니다.
  • '시스템 변수' 섹션에서 'Path'를 찾아 편집합니다.
  • CUDA Toolkit의 bin 폴더 경로(예: C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\vX.x\\bin)를 추가합니다.

6. autogluon 및 pytorch 설치

가장 중요한 autogluon 설치까지 왔네요...!!!

pytorch만 사용하시는 분은 pytorch 사이트에서 cuda 버전에 맞는 것을 설치하면 됩니다.

https://pytorch.org/get-started/previous-versions/

 

Previous PyTorch Versions

Installing previous versions of PyTorch

pytorch.org

이 사이트에 들어가셔서 ctrl+f 하셔서 자신의 cuda 버전을 찾으면 됩니다. (ex.10.2) 

아마 코드가 여러가지가 있을텐데

pip install torch==1.9.1+cu102 torchvision==0.10.1+cu102 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

저는 이 코드로 진행했을 때, pytorch에서 gpu가 뜨는 것을 확인했습니다.(torch.cuda.is_available() 실행시 True가 나오면 됩니다.)

+cu102 와 같은 것이 붙어 있는 코드를 복붙해서 설치하세요!! cu102가 안 붙어있는 걸 까시면 안됩니다.(제 cuda는 10.2 버전이라 102라고 써져있는 것입니다. 각자 cuda에 맞는 버전이 붙어있을겁니다.)

각자 자신이 깔아놓은 파이썬 버전에 따라서 코드가 달라지니 다운그레이드나 업그레이드가 필요할 수 있습니다. 이와 관련한 사항은 구글링하면 금방 나오니 자신에게 맞는 것을 찾으면 될 듯 합니다.

 

저는 pytorch 설치후 다음과 같은 코드를 통해 오토글루온을 설치했습니다. 주의하실 점은 오토글루온은 python 3.7 이상부터 가능하니 버전을 맞춰주세요.

pip install autogluon

 

사실 이렇게 하면 설치가 완료되어야 할텐데 저는 이렇게 진행했을 때, gpu가 autogluon 뿐만 아니라 torch 상에서도 뜨지 않는 현상이 발생했습니다.

 

따라서 다음과 같이 진행하였습니다.

#가상환경 설정
conda create -n ex python=3.10
conda activate ex
#설치
conda install -c conda-forge mamba
mamba install -c conda-forge -c pytorch -c nvidia autogluon "pytorch=*=*cuda*"

모든 작업은 가상환경에서 진행하시는 걸 추천 드립니다. 버전이 꼬이거나 문제가 생겼을 때, 그냥 가상환경 자체를 지워버리고 새로 만드는 것이 정신건강에 좋습니다.

저는 가상환경을 만든 후에 그 가상환경 안에서 위와 같은 코드를 작성하여 autogluon과 torch 설치를 완료했습니다.

코드 실행시 각 cuda에 호환되는 autogluon이 설치가 됩니다. pytorch도 함께 다운로드 되니 torch는 따로 install할 필요가 없습니다.

 

결론적으로 nvidia driver, cuda, cudnn 설정을 모두 마치고 위 코드를 통해서 autogluon gpu 설정을 완료하시면 됩니다.

많은 분들이 도움이 되셨으면 좋겠네요.

참고로 autogluon tabular predictor에서 gpu 사용 설정은 다음과 같은 코드만 추가하면 됩니다.

predictor = TabularPredictor(label=label).fit(
    train_data,
    num_gpus=1  #한줄 추가 
)

 

또한 autogluon timeseries 같은 경우에는 gpu 설정을 코드에서 따로 하지 않고 gpu가 떠있으면 알아서 딥러닝 모델 학습시에 사용한다고 하네요. 다들 gpu 사용해서 더 빠른 학습과 좋은 결과 얻으시길 바라겠습니다.