꿀팁 혹은 끌팁

AMD GPU Mac에서 Metal을 이용한 Tensorflow GPU 작업

yourk 2023. 1. 12. 18:50

AMD 그래픽카드의 전멸 속에서 머신러닝을 노래하자

Apple M1이 나오고, M1의 기준으로만 도배된 이 시점에서 아직도 인텔 맥을 붙잡고 있는 사람들에게 희망이 되었으면 좋겠습니다.

 

Apple에서는 감사하게도 이주했다고 인텔과 AMD를 통한 지원을 끊지 않고, tensorflow-macos, tensorflow-metal으로 GPU를 통한 tensorflow 학습을 지원합니다. (https://developer.apple.com/metal/tensorflow-plugin/)

 

다만 AMD의 GPU가 탑재되지 않은 경우에는, 얄짤없이 CPU로만 구동하실 수 밖에 없습니다(...)

애플에서 텐서플로우를 구동할 수 있는 조건은 아래와 같습니다.

  • (당연하겠지만) AMD GPU가 탑재되었거나 Apple silicon을 탑재한 맥 컴퓨터
  • macOS 12.0 Monterey 이상의 맥 컴퓨터
  • Python 3.8 이상
  • Xcode command-line tools 설치

M1을 가지고 있으나, 아이패드인 관계로 철저하게 x86 Mac 입장에서 가이드를 작성하겠습니다.

 

(선택) 가상화 환경

이 부분은 필요하신 분만 시행하시면 되겠습니다.

python3 -m venv ~/(가상화 환경 이름)
source ~/(가상화 환경 이름)/bin/activate

를 실행하면 가상화 환경 생성, 가상화 환경에 진입합니다.

가상화 환경에 진입!

실행한 직후, 터미널이 이렇게 변합니다. (저는 이미 가상화 환경이 있어서 진입만 했습니다)

 

Tensorflow 설치

이제 메탈 기반으로 tensorflow를 설치합시다.

pip install tensorflow-macos==2.9 tensorflow-metal==0.5.0

터미널에 명령어를 날리면 끝입니다. 따로 설정할 필요가 없습니다.

굳이 최신버전을 설치하지 않은 이유는 GPU를 인식하지만 놀랍게도 에러를 내며 뻗어버립니다(...)

 

Metal을 이용한 Tensorflow 사용 문서에 기재된 작동이 보장되는 가장 최신 버전인 tensorflow-macos 2.9와 tensorflow-metal 0.5.0을 이용합니다.

 

이렇게 GPU가 잡히는지 확인해보는 코드를 돌려봅시다.

import tensorflow as tf
tf.config.list_physical_devices()

 

GPU:0 으로 tensorflow에서 정상적으로 인식한 모습

자, 테스트를 통해서 GPU가 작동하는지 확인해봅시다.

GPU 점유율이 올라가며 작동함을 알 수 있습니다.