Install TensorFlow with GPU support on Mac OS X

NVIDIA 개발자 사이트에서 CUDA Toolkit (https://developer.nvidia.com/cuda-downloads)과 cuDNN (https://developer.nvidia.com/cudnn)을 다운로드한다. Toolkit은 바로 받을수 있지만, cuDNN은 회원가입 후 다운로드 가능하다.

다운로드한 dmg 파일을 열어서 설치하면 끝. cuDNN은 터미널에서 다음과 같이 입력하여 설치한다.

$ cd /usr/local
$ tar zxf path_to/cudnn-8.0-osx-x64-v5.1.tgz

path_to는 cudnn 파일의 위치에 따라 입력해주면 끝.

 

다음으로 Tensorflow 공식 홈페이지에서 나온대로 설치를 진행한다. 나 같은 경우엔 homebrew를 이용해서 python을 설치했고, pip도 설치된 상태임. 따라서 pip로 설치할 경우 /usr/local/lib 아래 폴더에 모든 패키지들이 설치됨.

$ pip install -U tensorflow-gpu

이 한줄로 설치는 모두 끝.

 

python에서 import 할때 Segmentation Fault 11 에러가 발행하는데, 이는 cuda 라이브러리를 찾지 못해서 발생하는 것이라고 tensorflow github 이슈게시판에 있음. 해결 방법은

$ cd /usr/local/cuda/lib
$ ln -s libcuda.dylib libcuda.1.dylib

와 같이 하면 됨. 이제 다시 import 해보면 정상적으로 되는걸 확인할 수 있고, session를 생성하면 다음과 같이 gpu도 제대로 인식하는걸 볼수 있다.

>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.8.0.dylib locally

>>> sess = tf.Session()
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:874] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 16.49MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)

일단 설치는 완료.

Leave a Reply