Knowhow/Python, Pytorch

Pytorch3d CUDA 12 이상에서 설치하기

침닦는수건 2024. 9. 13. 17:39
반응형

https://github.com/facebookresearch/pytorch3d/blob/main/INSTALL.md

 

pytorch3d/INSTALL.md at main · facebookresearch/pytorch3d

PyTorch3D is FAIR's library of reusable components for deep learning with 3D data - facebookresearch/pytorch3d

github.com

Mesh를 데이터로 활용한 학습을 구현할 때 diferrentiable rasterizer를 제공하기 때문에 유용한 것을 분명하나, 인기가 없어서 인지 버전 맞추는 것이 상당히 까다로운 pytorch3d다. 

 

위 링크를 따라가 설치 가이드라인을 따라 해보면 웬만해서 한 번에 성공하는 경우가 없다. conda install pytroch3d -c pytorch3d를 입력해봤자 다 오류난다. 

 

수고를 덜 유일한 방법은 저기 가이드라인에서 제공하는 환경에 정확히 맞추는 것 뿐이더라.

 

CUDA는 11.6으로, pytorch는 1.13.1+cu116으로, torchvision = 0.14.0+cu116으로 맞추면 설치할 수 있다.  

 

근데 문제는 CUDA 11.6 설치가 불가능할 때다. 예를 들어, GPU가 L40S 이상 부터는 아예 CUDA 11 지원을 안하기 때문에 가상 환경을 쓰건 docker를 쓰건 pytorch3d 사용이 불가능하다. 

 

(GPU가 CUDA 11 버전을 지원하는데, Local PC에 깔려있는 CUDA가 12일 경우에는 단순히 다음 링크에서 cuda 11.6 toolkit을 가상 환경에 깔아주면 끝나는 문제다. toolkit 제대로 깔고 nvcc --version 쳤을 때 CUDA 11.6으로 나오면 됨.)

 

https://anaconda.org/nvidia/cuda-toolkit

 

Cuda Toolkit | Anaconda.org

Meta-package containing all toolkit packages for CUDA development

anaconda.org

 

해결법

Pytorch3d에서 공식 가이드라인에서 설명을 (불친절하게도) 안해주지만 torch 2.3.1도 된다고 적어둔 걸보면 CUDA12가 아예 안되는건 아닌 것 같다. (설명을 안해줬을 뿐)

 

따라서 경험적으로 찾은 CUDA 12.1 pytorch 3d 환경 설정 방법을 공유한다. 

 

일단 지원된다고 하는 최신 버전 pytorch 2.3.1을 따로 CUDA 12.1 toolkit 하에 설치해준다. (python 는 그냥 3.9했다.)

conda install pytorch==2.3.1 torchvision==0.18.1 pytorch-cuda=12.1 -c pytorch -c nvidia
conda install -c iopath iopath

 

그리고 conda이나 pip 쓰지 않고 건너뛰어서 직접 git repository를 clone해서 설치한다.

git clone https://github.com/facebookresearch/pytorch3d.git
cd pytorch3d && pip install -e .

 

시간이 꽤 걸리니 차분히 기다려주면 설치 완료된다. 

 

진짜 이 방법이 제일 간단하다. 괜히 conda/pip 써서 설치하려고 시도하면 시간 낭비

 

 

 

비고

conda나 pip 써서 설치하지 마라. 그리고 CUDA 11.6 되더라도 위 방법대로 CUDA12로 맞춰서 설치해두는게 좋다. 요즘 CUDA 11을 지원 안하는 라이브러리들이 늘어나고 있어서 pytorch3d 쓰려다 다른 것들 못 쓰는 모양이 자주 나온다. 

 

반응형