아나콘다 가상환경이라는 개념을 알고는 있다는 가정하에 시작을 한다.
1. Neural Recon github 에서 파일을 다운로드(클론)
2. anaconda의 가상환경 생성 - environment.yaml 이용.(안된다고 마음대로 바꾸지 말기)
3. 그런데,, 만약 torch 버전과 cuda 버전이 맞지 않는다면..
(정답) 자신의 gpu가 지원해주는 cuda 버전을 지원하는...... torch 버전을 확인한다.
그리고 먼저 cuda를 깔아서 제대로 작동하는지 확인한다. 나의 경우 rtx3080ti 였기에 가장 안정적이라고 생각이되는 cuda 11.3을 설치했다.
그리고 그 cuda버전을 지원하는 pytorch 와 그 패거리(torchvision, torchaudio,..)를 공식 홈페이지에서 참고해서 설치한다. 여기서 너무너무 중요한(생각지도 못해서 어이없는) 디테일은 conda 명령어가 아닌, pip 명령어로 설치해서, torch에 cuda를 물려줄 수 있었다는 점이다. 도대체 왜...?
Linux and Windows (conda 명령어.. 이걸로 하니 안되더라)
# CUDA 10.2
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch
# CUDA 11.1
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
# CPU Only
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly -c pytorch
Linux and Windows (pip 명령어로, 이걸로 하니 torch에 cuda가 물린걸 확인할 수 있었다.)
# RocM 4.0.1 (Linux only)
pip install torch -f https://download.pytorch.org/whl/rocm4.0.1/torch_stable.html
pip install ninja
pip install 'git+https://github.com/pytorch/vision.git@v0.9.0'
# CUDA 11.1
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
# CUDA 10.2
pip install torch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0
# CPU only
pip install torch==1.8.0+cpu torchvision==0.9.0+cpu torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
버전별, os별 명령어가 담긴 공식 사이트
(과정) 원래대로라면 3번은 있을거라 생각도 못한 과정이었다. 당연히 environment.yaml은 개발자가 직접 점지해준 버전들이니 서로 화기애애하게 잘 맞는 패키지들이려니 했다. 5분이면 설치가 끝날 줄 알았는데,
아니, 나는 아예 (anaconda 가상환경)에서 torch에 cuda가 제대로 인식되지 않았으며, 원인을 보니 설치도 되지 않았음을 알았다.
그래서, 해당 가상환경에 직접 cuda를 깔아주고 시도를 해도 torch는 cuda를 잡지 못했다.
그래서 엄청난 시행착오를 하다가 갑자기 잡히는걸 확인했다. 버전문제가 아닌, conda 설치 명령어와 pip 설치 명령어의 차이임을 깨달은 나는 이걸 까먹지 않기 위해 이 포스팅을 작성한다.
참고로, cuda를 먼저 깔고, cuda 의존성 torch(pytorch)를 깔아야, torch가 의존하기로한 cuda 버전과는 무관하게, 내가 설치한 cuda버전에 잘 물린걸 가상환경 상에서도 확인할 수 있었다. 그럼 왜 (base)에서는 cuda가 잘 물렸나?
이게 바로 운이좋아서 conda 설치 명령어가 아닌, pip 명령어로 설치했던 거였고, 왜 (base)는 되고 (conda 가상환경)은 안될까 이유를 여러개 분석하다가 찾아낸 거였다.
추가 수정사항
cuda 버전에 상관없이 torch를 설치하라고 적었었는데, 해당 torch가 지원하지 않는 cuda capability sm_86... 이런 것들이 있다.
보통 sm_37 sm_50 sm_60 .. 이런 형식이고 rtx 3000번 시리즈는 sm_86부터 된다. 그래서, 결론적으로 자신의 gpu가 sm_86(보통 rtx3000번대)만 된다면, torch를 cuda에 버전을 맞춰서 설치하라. 이번 예를 들면 torch가 cuda 11버전을 지원하는 버전부터 깔라...
'건축 컴퓨터 비전 > 3D Reconstruction' 카테고리의 다른 글
2022 3d reconstruction 논문 목록 (0) | 2022.07.07 |
---|---|
Neural Recon 실행기#3 (0) | 2022.04.14 |
Neural Recon 실행기 #2 (0) | 2022.03.24 |