티스토리 뷰

이번 글은 M1 칩이 장착된 맥북에서 mujoco-py를 어떻게 사용하는지에 대해 정리한 글이다.

 

21년 12월 16일 딥마인드에서 무조코 버전 2.1.1을 Release 하였다.

아래 주소로 들어가면 Release 내용을 볼 수 있으며, MacOS M1 칩에서도 무조코가 지원되는지 궁금해서 봤는데 지원한다는 내용이 적혀있다.

 

Release 2.1.1 · deepmind/mujoco

API changes Added mj_printFormattedModel, which accepts a format string for floating point numbers, for example to increase precision. Added mj_versionString, which returns human-readable strin...

github.com

Apple Silicon 칩에서도 돌아간다는 내용은 아래의 사진과 같다.

사진 1. Apple chip에서도 지원

그래서 바로 다운로드 후 테스트를 진행해보니 Mujoco는 너무 쉽게 실행이 되서 놀랐지만, mujoco-py에 대한 이슈가 있었다.

mujoco-py는 딥마인드가 아닌 OpenAI에서 관리를 하는 라이브러리이기 때문에, mujoco가 최신 버전으로 업그레이드 되더라도 mujoco-py는 바로바로 업그레이드되지 않는다. 실제로 최신 버전 설치 후 mujoco-py 2.1.0 버전을 import 해보니 에러를 볼 수 있었다.

 

C/C++ 기반의 API를 다룰 수 있다면 상관없겠지만.. 파이썬이 주 언어인 필자는 분명 다른 방법이 있을 것이라는 생각을 하였다. 다행히도 Github Issues 항목에서 mujoco-py 2.1.0을 사용할 수도 있다는 글을 보게되었다.

 

Build a binary for Apple Silicon · Issue #2 · deepmind/mujoco

MacOS binary releases should also be available for Apple Silicon machines.

github.com

이 내용은 아래의 사진과 같다.

사진 2. mujoco-py 2.1.0 버전을 사용하기 위한 방법

saran 박사님께서 dm_control 패키지는 곧 변경 사항을 푸시할 예정이지만, mujoco-py는 딥마인드 소유가 아니기 때문에 업데이트를 하려면 위와 같이 변경하면 된다라는 내용인 듯하다. 

 

간단하게 설명하면

1) .mujoco 폴더 안에 mujoco210/bin 폴더 만들기

2) libmujoco.2.1.1.dylib 파일을 libmujoco210.dylib로 이름을 변경 후, mujoco210/bin 폴더에 복사하기

3) mujoco 헤더 파일들이 들어있는 Headers 폴더를 include 폴더로 변경해서 mujoco210 안으로 복사하라는 의미이다.

 

위 사진의 글에서도 볼 수 있는데, 결국에는 파일 이름이나 위치만 변경하면 끝이다.

될 것이라는 자신감을 가지고 설치를 진행해보자.

 

1. Mujoco 2.1.1 설치

1-1. Mujoco version 2.1.1 바이너리 파일 다운로드

아래의 주소로 들어가서 해당 OS에 맞는 mujoco dmg 파일을 다운로드 한다.

 

Release 2.1.1 · deepmind/mujoco

API changes Added mj_printFormattedModel, which accepts a format string for floating point numbers, for example to increase precision. Added mj_versionString, which returns human-readable strin...

github.com

필자는 아래 빨간색 박스로 표시된 설치 파일을 다운 받았다.

사진 3. mac OS에서 mujoco 설치

다운받은 dmg 파일을 실행하면 아래의 폴더와 파일들이 보일 것이며 

사진 4. Mujoco 폴더 및 파일 구성

Mujoco 경로는 /Volumes 디렉토리 안에 있다.

$ cd ~/Volumes/Mujoco

사진 5. Mujoco 설치 경로

1-2. ~/.mujoco 숨김 폴더 생성

.mujoco 숨김 폴더를 만들고 bin 디렉토리, include 디렉토리를 만든다.

$ mkdir ~/.mujoco
$ cd ~/.mujoco
$ mkdir bin include

1-3. libmujoco.2.1.1.dylib 파일과 Headers 폴더 안 헤더 파일 복사

$ cd ~/.mujoco/mujoco210/bin
$ cp -r /Volumes/MuJoCo/MuJoCo.framework/Versions/Current/libmujoco.2.1.1.dylib libmujoco210.dylib

$ cd ~/.mujoco/mujoco210/include
$ cp -r /Volumes/MuJoCo/MuJoCo.framework/Versions/Current/Headers/ .

 

여기까지는 사진 2와 같은 방법으로 진행하였다.

But, 해줘야 할 일들이 몇 가지 더 있다.

2. 추가 작업

추가 작업을 해야 하는 이유는 위와 같이 진행하면 에러를 만날 것이다.

추가 작업 내용은 openai 깃허브 이슈에서 볼 수 있었는데, 놀랍게도 사진 2에서 볼 수 있듯이 깃허브 이름이 wookayin으로 같은 분이 해결 방법을 알려주었다. 이 분이 deepmind에 질문하고, 삽질을 한 후에 설치 방법을 세세하게 정리한 것이다. 정말 감사한 분이다👍(더 놀라운 건 한국인이다!)

 

Support MuJoCo 2.1.1 (including arm64 mac support) · Issue #662 · openai/mujoco-py

I hope this can be a tracking issue for supporting MuJoCo 2.1.1, which was just released few hours ago. There are some incompatible changes, so the python binding mujoco-py also needs to catch up t...

github.com

사진 6. 추가 작업

어려운 건 없는데 해줘야 할 일은

1. glfw 설치 후 mujoco210/bin 디렉토리에 링크 걸기

2. gcc 설치 후 컴파일 경로 지정하기

이렇게 두 가지이다.

 

참고로 필자는 anaconda에서 진행하지 않고 miniforge에서 진행하였다.

miniforge로 진행한 이유는 밑의 블로그를 참고하면 된다.

요약하면, Apple Silicon의 arm64를 공식적으로 지원하는 곳이 Miniforge이기 때문에 Local 환경에서 설치를 꺼려하는 분들이라면 Miniforge를 이용하자!

 

Apple Silicon(M1) Macbook 에 Conda 설치하기(Miniforge)

드디어 기다리고 기다리던 M1 맥북에어가 도착했다. macOS 11.0 인 Big Sur 부터는 Apple의 머신러닝 계산 framework 이 탑재되어 있다. 이 기능은 M1 뿐만 아니라 인텔 모델에도 들어가긴하지만, M1칩에는

cpuu.postype.com

 

2-1. glfw 설치 후 bin 디렉토리 안으로 링크 걸기

$ brew install glfw
$ cd ~/.mujoco/mujoco210/bin
$ ln -s /opt/homebrew/lib/libglfw.3.dylib .

2-2. gcc 설치 후 컴파일 경로 지정하기

$ brew install gcc
$ export CC=/opt/homebrew/bin/gcc-11

 

3. mujoco-py 설치

위 과정을 모두 완료하였으면 이제 잘 되는지 테스트를 해보자.

$ pip install mujoco-py && python -c 'import mujoco_py'

 

아무런 에러가 나오지 않는다면 성공이다!!

아래 페이지의 예제처럼 panda robot을 불러온다면, 확실히 M1 칩을 사용했을 때 훨씬 빠르다는 느낌을 받을 수 있다.

기존 인텔칩 사용 mac일때 프레임 속도가 평균 20 FPS 였지만, M1 칩에서는 평균 60 FPS로 무려 세 배의 차이가 났다.

 

GitHub - jdj2261/lets-do-mujoco

Contribute to jdj2261/lets-do-mujoco development by creating an account on GitHub.

github.com

 

모두 성공하셨길 바라며, 글을 마무리한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31