본문 바로가기
Keras

Keras에서 GPU 사용하기 - MacBook 18' pro, Radeon pro 560X 4G

by Kloong 2021. 2. 11.

졸업 프로젝트를 위해 열심히 딥러닝을 공부하던 나.

ConvNet 파트에 들어가자 모델 하나 학습 시키는데 1시간이 걸렸다.

슬픈 마음으로 Google Collab을 이용해야 하나 고민하고 있었는데, 내 친구가 맥북에 GPU가 있지 않냐고 했다.

 

그렇다. 나는 멀쩡한 GPU를 놔두고 CPU를 고문하고 있었던 것이다.

이렇게 좋은 노트북을 써본적이 없어서 나는 GPU가 들어있으리라고 생각도 못했었다 ㅋ큐ㅠㅠㅠㅠ

 

암튼 그래서 MacBook 18' pro, Radeon pro 560X 4G 환경에서 Keras GPU를 사용하는 법을 정리해봤다.

 

일단 tensorflow는 Nvidia 친화적이기 때문에 구글링하면 CUDA 세팅 어쩌구 밖에 안나온다.

좀더 찾아보니 plaidml과 Metal 을 이용한 방법이 있었다. 이 글의 내용도 아래 두 링크를 대부분 참조했다.

 

machinelearningkorea.com/2019/09/15/%EB%A7%A5%EB%B6%81amd-560x%EC%97%90%EC%84%9C-%EB%94%A5%EB%9F%AC%EB%8B%9D%ED%9B%88%EB%A0%A8-%EB%B0%A9%EB%B2%95/

 

맥북(AMD 560x)에서 딥러닝훈련 방법 – Go Lab

전통적으로 AMD그래픽카드는 딥러닝을 학습하는데 있어 CUDA의 부재로 Tensorflow등의 라이브러리를 실행시키기 어려웠습니다. 이렇게 몇년이 흘러도, AMD에서는 이 시장은 큰 시장이 아니라고 판단

machinelearningkorea.com

www.facebook.com/groups/KerasKorea/permalink/3077728298909781/

 

Park Chansung

안녕하세요? 정식으로 게시글을 올리는것은 처음인것 같습니다. 약간 뒷북성 내용이긴 하지만, Mac 사용 유저에게 도움이 되는 내용을 알게 되어 공유 드립니다. mac 에서 딥러닝을 하는 방법은

www.facebook.com

 

일단 나는 머신러닝알못이라 어떻게 돌아가는 건지는 잘 모르겠지만

내가 이해한 바로는 keras의 backend를 plaidml로 바꾸는 것이다.

그래서 설치 방법과 사용 방법도 매우 간단하다.

 

일단 keras를 사용하고 있는 환경에 plaidml을 설치한다.

pip install -U plaidml-keras

 

그리고 plaidml 관련 설정을 해준다.

plaidml-setup

 

위 명령어를 입력하면 뭐라고 왕창 나오고 y 누르다 보면

터미널에 이런 게 뜨는데

우리는 metal과 외장 그래픽 카드(Radeon pro 560x)를 사용할 것이기 때문에 5번을 누른다

그리고 y 몇번 더 누르면 세팅 끝.

 

잘 설치되었는지 확인하기 위해 벤치마크를 돌려보자.

pip install plaidbench
plaidbench keras mobilenet

위 명령어를 입력하면 벤치마크가 실행되는데, 실행되는 동안 Radeon pro 560X GPU 상에서 돌아가고 있는지를 확인하기 위해서 맥 기본 앱인 [활성 상태 보기]를 켠 후 cmd+4 를 누르면,

요런 게 나온다. 저 파란색이 GPU가 열심히 일한다는 뜻.

벤치마크는 오래 안걸리므로 저렇게 까지 시퍼렇진 않다. 내가 첨부한 사진은 ConvNet 모델 학습중에 캡쳐한 사진이라서 저렇게 나온다.

 

아무튼 벤치마크에서 GPU가 잘 일하고 있음을 확인했다면 이제 실제 딥러닝에 사용만 하면 된다.

그리고 놀라운 사실은 keras는 기존 코드는 그대로 둔 채로, 맨 처음에 backend만 바꿔주면 gpu로 연산을 한다!!

 

반드시 코드 맨 처음에

import os
os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"

이렇게 해 주고서

 

그 다음에

import keras

를 해야지 keras가 backend가 plaidml로 바뀐다.

 

위에 첨부한 링크를 자세히 읽어보면 알겠지만 Nvidia - CUDA 환경에 비해 성능이 다이나믹하게 증가하지는 않지만, 적어도 CPU로 연산하는 것보다는 훨씬 빠르다. 학습용으로는 이정도면 충분한 듯.

 

출처

machinelearningkorea.com/2019/09/15/%EB%A7%A5%EB%B6%81amd-560x%EC%97%90%EC%84%9C-%EB%94%A5%EB%9F%AC%EB%8B%9D%ED%9B%88%EB%A0%A8-%EB%B0%A9%EB%B2%95/

 

맥북(AMD 560x)에서 딥러닝훈련 방법 – Go Lab

전통적으로 AMD그래픽카드는 딥러닝을 학습하는데 있어 CUDA의 부재로 Tensorflow등의 라이브러리를 실행시키기 어려웠습니다. 이렇게 몇년이 흘러도, AMD에서는 이 시장은 큰 시장이 아니라고 판단

machinelearningkorea.com

www.facebook.com/groups/KerasKorea/permalink/3077728298909781/

 

Park Chansung

안녕하세요? 정식으로 게시글을 올리는것은 처음인것 같습니다. 약간 뒷북성 내용이긴 하지만, Mac 사용 유저에게 도움이 되는 내용을 알게 되어 공유 드립니다. mac 에서 딥러닝을 하는 방법은

www.facebook.com

 

댓글