LoginSignup
5
6

More than 5 years have passed since last update.

MacBook Pro (Mid 2012) でtensorflow-gpuをセットアップした時のメモ

Last updated at Posted at 2017-02-12

概要

iMacやMacBook Proは、機種によってはNVIDIAのグラフィックボードを搭載しているようです。
手持ちのMacBook Pro (Retina, 2012 MID)にNVIDIA GeForce GT 650Mが載っていました。
せっかくのGPUを活かすべく、tensorflow-gpuのセットアップをしてみました。

注意

  • 2017年2月12日時点の記事です。
  • CUDA GPUsが必要です。

環境

  • OS 10.12.3 (Sierra)
  • Python 2.7
  • tensorflow-gpu 0.12.1

セットアップ

基本的には、公式のDownload and Setupに従います。また、コマンドは参考記事とほぼ同様です。

※以下はTensorflowをconfigure済みの場合のコマンドです。途中で試行錯誤したので、一部の手順が抜けている可能性があります。

Cuda

$ brew upgrade
$ brew install coreutils
$ brew cask install cuda

cuDNN

NVIDIAのダウンロードページから入手。ユーザー登録が必要。

今回はcuDNN v5.1 Library for OSXをダウンロードしました。

中身を、/user/local/cuda/lib/user/local/cuda/includeにそれぞれ移します。

後の実行時にエラーが出たので、シンボリックリンクも貼りました。

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

パスの記述は、最終的に以下のようになりました。

.bashrc
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib"
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

tensorflow-gpu

$ brew install bazel
$ brew install tensorflow-gpu==0.12.1

インストールができたら、configureしてください。

動作確認

tensorflowを使うサンプルを動かしてみます。インポートエラーなどが出なければOKです。

公式のUsing GPUsに色々書かれていますが、configを渡すこともできます。

sample.py
import tensorflow as tf
...
# for tensorflow-gpu
config = tf.ConfigProto()
config.log_device_placement = True
config.gpu_options.allow_growth = True
...
sess = tf.Session(config=config)
sess.run(c)

実行時に、以下のようにデバイスの情報が表示されます。

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: 833.14MiB

さいごに

途中で結構ハマってしまいました。
また、Free memoryが少ない場合、実行後に落ちました。最初はセットアップに失敗したかと思いましたが、Chromeなど他のアプリケーションをシャットダウンすると上手くいきました。
CPU版tensorflowと比べると、かなり処理が速くなった気がします。メモリ容量で問題が出た時は、別マシンか外付けのグラフィックカードを使うのが良いかもしれません。

参考記事

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6