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을 설치하자
흠.. 내 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
이걸로 라이브러리 경로에 파일이 있는지 확인할 수 있다고 한다.
...?
이걸 보니까 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에서 저 버전을 쓰려고 한 건데, 버전을 업그레이드 해보자.
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와 CUDA 호환을 확인해보자.
CUDA 12.6은 딱히 나와있지는 않지만 가장 최신 버전을 설치해보자.
많은 글들을 찾아보면 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
이거에 맞춰서 해주자.
뒤늦게야 알았는데,
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 실행 성공
예제로 generate하는데 이정도 걸렸다.
Visualize
jupyter notebook
주피터를 실행
local 서버 호스팅이 되면
FLEX/flex/notebooks/viz_results.ipynb
여기로 들어가서 실행
잘 나온다
2d 렌더링인줄 알았는데 돌려볼 수 있네.
물건을 집으려는 다양한 동작이 생성된 것을 볼 수 있다.
이거 뭐 서로 쟁취하려고 싸우는 것처럼 되버렸다. 🧐
마무리
이로써 여정이 상당히 길었다.
이걸 시행착오를 빼고 필요한 내용만 좀 정리된 버전으로 설치 메뉴얼을 올리면 좋겠다.
'개발 · 컴퓨터공학' 카테고리의 다른 글
Typescript glsl 파일 import 하기 (3) | 2024.09.30 |
---|---|
FLEX github코드 세팅하기 - 정리 (FLEX: Full-Body Grasping Without Full-Body Grasps) (41) | 2024.09.17 |
FLEX github코드 세팅하기 - 1 (FLEX: Full-Body Grasping Without Full-Body Grasps) (14) | 2024.09.15 |
Unreal Engine ML / RL 언리얼 머신러닝 강화학습 플러그인 (unreal ML deformer) (14) | 2024.09.04 |
Visual Studio opengl32.lib 파일을 열 수 없습니다 오류 (0) | 2024.08.21 |