개발 · 컴퓨터공학 / / 2024. 9. 16. 11:25

FLEX github코드 세팅하기 - 2 (FLEX: Full-Body Grasping Without Full-Body Grasps)

728x90
반응형

FLEX: Full-Body Grasping Without Full-Body Grasps

Examples 실행하기

이제 데이터와 사전학습 모델도 준비되었으니 예제를 돌려보자.

 

python run.py \
--obj_name stapler \
--receptacle_name receptacle_aabb_TvStnd1_Top3_frl_apartment_tvstand \
--ornt_name all \
--gender 'female'

과연...

흠.. 예상대로 바로 되진 않네.

에러 내용을 보자.

 

pytorch3d가 없다.

없나?

없네..

pip install pytorch3d

일단 그냥 깔아보았다. 

그리고 해보니

다른 에러.

 

찾아보니 CUDA toolkit이 있어야 사용하는 라이브러리 이다.

생각해보니 WSL로 ubuntu 환경으로 시작했으니 CUDA toolkit이 필요하다.

nvcc --version

명령어로 확인해보면 당연히 없다.

 

CUDA toolkit 설치 

CUDA toolkit을 설치하자

 

CUDA toolkit 설치하기, PyTorch GPU 호환 버전 설치하기 (PyTorch 2.0.1+cpu 오류, CUDA 설치 호환, PyTorch CUDA

PyTorch를 GPU에서 돌아가는 CUDA 호환 버전으로 설치하자. pytorch gpu 호환 확인python -c "import torch; print(torch.cuda.is_available())"이미 pytorch를 설치했다면, gpu가 사용가능한지 확인해보자.사용가능한 상태

like-grapejuice.tistory.com

 

흠.. 내 ubuntu 아키텍처는 뭐지?

 

아키텍처 확인 명령어
uname -m

하면 나오는데 나는 x86_64네 

 

흠.. WSL ubuntu를 설치했으니 이걸로 해야겠지.

 

설치 유형은 잘 모르겠어서 네트워크로 해본다. 

 

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda

위 명령어들을 하나씩 수행해준다. 

그러고 나서 다시 nvcc를 해보자. 

 

잉?

cuda를 설치하고 toolkit을 따로 설치하나보다.

바라는대로 해주자.

 

자 설치를 하고 다시 nvcc를 해보니

cuda toolkit이 잘 나온다. 

 

python run.py \
--obj_name stapler \
--receptacle_name receptacle_aabb_TvStnd1_Top3_frl_apartment_tvstand \
--ornt_name all \
--gender 'female'

다시 해보면

 

또 이러네?

환경 변수 설정? 일 수도 있다.

 

export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH

 

sudo ln -sf /usr/local/cuda-10.2/lib64/libcudart.so /usr/local/cuda-10.1/lib64/libcudart.so.10.1

심볼릭 링크 확인 

 

여기까지 했는데도 libcudart.so 에러가 난다.

 

sudo find / -name libcudart.so.10.1

이걸로 라이브러리 경로에 파일이 있는지 확인할 수 있다고 한다. 

 

...?

 

https://sofar-sogood.tistory.com/entry/Pytorch-%EC%97%90%EB%9F%AC-OSError-libcudartso102-cannot-open-shared-object-file-No-such-file-or-directory

 

[Pytorch 에러] OSError: libcudart.so.10.2: cannot open shared object file: No such file or directory

에러 CUDA버전이 맞지 않을때 나타나는 에러다. Pytorch를 재설치하면 된다. CUDA 11.3 버전 설치 # conda conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch # pip pip3 install torch torchvision torchaudio --extr

sofar-sogood.tistory.com

이걸 보니까 CUDA 버전이 맞지 않아 생기는 에러라는 말이 있다.

코드에는 11.3을 설치하는데, 아까 cuda toolkit은 11.8을 설치하긴 했다.

다시 설치해보자.

 

CUDA 삭제
sudo apt-get --purge remove cuda
sudo apt-get --purge remove nvidia-cuda-toolkit

 

어..? 생각해보니 파이토치는 안깔았었는데 그게 문제였나 싶다.

 

아니지 파이토치는 여기에 설치가 이미 있다. 

그럼 뭐가 문제지? 

오류 해결하기

nvidia-smi

이걸로 CUDA 드라이버를 보니 왜인지 모르게 12.6이 설치되어있었다. 

흠.. 생각해보니 이전에 nvidia 소프트웨어로 드라이버 업데이트를 한 적이 있다. 

 

현재 toolkit이 11.5인데 11.3으로 재설치해보자.

CUDA toolkit 11.3 설치

11.3이 FLEX에서 권장하는 cuda toolkit 버전이다.

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-wsl-ubuntu-11-3-local_11.3.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-3-local_11.3.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

 

왜 11.3을 설치했는데 자꾸 11.5가 되냐;;

 

libcudart.so.10.1

아나콘다 환경 lib에 들어가보니 libcudart 종류가 이렇게 나온다.

10.1이 없어서 생긴 건 맞지만, 어떻게 해야 하지? 

꼭 10.1을 사용해야하는걸까.

 

pytorch3d 0.3.0 구버전 오류 

pytorch3d 0.3.0에서 저 버전을 쓰려고 한 건데, 버전을 업그레이드 해보자. 

https://code.debro.co.kr/29

 

pytorch3d 관련 오류 해결 - undefined symbol

pytorch3d 라이브러리 관련 오류로 pip install pytorch3d 로 설치할 경우 구버전이 설치되어 발생하는 문제 실행환경 : pytorch 1.8.2 from pytorch3d import _C ImportError: ../python3.8/site-packages/pytorch3d/_C.cpython-38-x86_64

code.debro.co.kr

pytorch3d를 그냥 install하면 구버전이 설치되는 문제를 겪는 한국인이 또 있었던 모양이다. 

 

conda install pytorch3d -c pytorch3d

conda를 이용해서 pytorch3d를 설치하는 방법이 있어서 해보자. 

 

이제 pytorch3d 최신 버전이 깔렸다. 

 

이제 에러가 또 바뀌었다.

RuntimeError: No CUDA GPUs are available

잉?

일반적으로 저 에러는 CUDA driver가 인식이 안될때 뜨는거라는데, 

내 경우 nvidia-smi도 nvcc --version도 잘 뜬다;; 

 

원인을 파악해보자.

pytorch의 버전이 CUDA를 지원하지 않아서?

python -c "import torch; print(torch.cuda.is_available())"

python을 실행해서 cuds available 확인을 해보았는데 False가 나왔다.

이게 원인인 것 같다. 

 

conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

FLEX에서 필요한 pytorch 버전은 1.10.1인데 다시 설치해보자.

 

뭔가 이미 설치되있는게 아니라고 뜨고 제대로 설치된 느낌이다.

 

하아 근데 available이 아니라네..

 

CUDA pytorch 호환

이거 12.6 CUDA에서 pytorch 1.10.1이 호환이 안되나 싶다.

 

 

pytorch/RELEASE.md at main · pytorch/pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration - pytorch/pytorch

github.com

여기서 pytorch와 CUDA 호환을 확인해보자.

 

CUDA 12.6은 딱히 나와있지는 않지만 가장 최신 버전을 설치해보자.

 

https://www.reddit.com/r/learnmachinelearning/comments/1f59yda/please_help_trying_to_install_torch_for_gpu/

 

From the learnmachinelearning community on Reddit

Explore this post and more from the learnmachinelearning community

www.reddit.com

많은 글들을 찾아보면 CUDA 12.6은 사용하지 않는 편이 좋을 것 같다...

 

하.. 괜히 그래픽 드라이브 업뎃했어.. 😡

 

만약 이 방법도 안된다면.. CUDA를 제거하고 이전 버전으로 설치하도록 할 것이다.

 

결국 마지막 보루만 남았다.

그래픽 드라이버 재설치 

CUDA 재설치 

sudo apt-get --purge -y remove 'cuda*'
sudo apt-get --purge -y remove 'nvidia*'
sudo apt-get autoremove --purge cuda

# cudnn remove
cd /usr/local/
sudo rm -rf cuda*

CUDA를 제거했다.

 

삭제 했는데 왜 뜨지? 

 

그래픽 드라이버 560.70 (CUDA 12.6)을 제거하고 재부팅했다.

 

이제 11.4로 바뀌었다. 

 

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

11.5 버전의 toolkit을 설치했다. 

 

chamfer_distance가 없다고 하네 requirements에 포함되어있을 것인데,

설치해주자 

pip install -r requirements.txt

 

다시 원점이다...

 

pytorch version 변경

이걸 보면서 pytorch 1.10.1이 CUDA 11.3까지밖에 지원하지 못하는건 아닐까 생각이 들었다.

 

conda install pytorch==1.11.8

기존 1.10.1 이었던 걸 삭제하고 1.11.8으로 설치

1.11.0을 설치했다가 버전 관련되어서 의존성 문제가 떠갖고 1.11.8로 설치했다. 

 

설치를 했는데 torch가 없다고 뜨길래 보니 pip에서 설치가 안되었다.

 

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia

torch를 CUDA  11.6을 지원하는 1.13.1로 설치했다.

그랬더니..

 

됐다!

 

다시 example 테스트 

에러가 바뀌긴 했지만 해결되지는 않았다.

흠.. kaolin이라니

 

pip install kaolin==0.12.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.10.1_cu113.html

그러고 보니 kaolin설치시 torch 버전도 바꿔서 설치해주면 어떨까 싶다. 

 

pip install kaolin==0.16.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VERSION}_cu{CUDA_VERSION}.html

이거에 맞춰서 해주자.

 

 

(설치 후) GPU, CUDA, cuDNN 버전 확인

윈도우 명령 프롬프트에서 nvcc --version을 입력하면 설치된 cuda version을 확인할 수 있다.현재 CUDA 11.8이 설치되어 있는 것을 확인할 수 있다. 1\. cuDNN 버전 8 이전C: > Program Files > NVIDIA GPU Comp

velog.io

뒤늦게야 알았는데, 

nvidia-smi에서 나오는 CUDA Version은 현재 버전이 아니라 하드웨어 권장 버전이라고 한다...

 

결국 CUDA 재설치를 하지 않더라도 toolkit만 버전에 맞췄다면 되었다는 것.. 

 

헛고생 했다;; 😢

 

pip install kaolin==0.16.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.13.1_cu116.html

 

어이쿠 kaolin과 torch cuda의 버전이 안맞는 모양이다. 

 

pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.13.1_cu116.html

이건 된다.

 

여기까지 했으니 다시 example 코드를 돌려 볼까? 

Example 실행 성공

 

oh yeah!

 

예제로 generate하는데 이정도 걸렸다. 

 

Visualize

jupyter notebook

주피터를 실행

local 서버 호스팅이 되면

FLEX/flex/notebooks/viz_results.ipynb

여기로 들어가서 실행 

 

잘 나온다 

 

2d 렌더링인줄 알았는데 돌려볼 수 있네.

물건을 집으려는 다양한 동작이 생성된 것을 볼 수 있다.

 

이거 뭐 서로 쟁취하려고 싸우는 것처럼 되버렸다. 🧐

마무리

이로써 여정이 상당히 길었다.

이걸 시행착오를 빼고 필요한 내용만 좀 정리된 버전으로 설치 메뉴얼을 올리면 좋겠다.

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유