LoginSignup
5
0

More than 5 years have passed since last update.

macOS+pyenv+TensorFlowでGPUを使おうとしてハマった

Last updated at Posted at 2017-04-01

環境

macOS : Sierra
pyenv : 1.0.10
TensorFlow : 1.0.1

ハマった内容

DockerでTensorFlowを実行していたんだけど限界を感じたので「やっぱりGPUや!GPGPU入門や!」としようとしたらハマった。

インストール方法

pyenvでAnacondaを用意して、PipでTensorFlowをインストールした

pyenv

だいぶ前だったので覚えてないけれど、Homebrewを使った気がする

$ brew update
$ brew install pyenv

参考 : pyenv/pyenv: Simple Python version management

CUDA & cuDNN

Download and Setup  |  TensorFlowを参考にしてセットアップする

easy_installは使わなかった。

感想でしかないのだけれど、こういうTensorFlowの範疇外のノウハウまで書かれているのはTensorFlowのユーザーの広がりと、サポートの大変さがにじみ出ていると思う。

TensorFlow

Jupyter Notebookを使いたいので、pyenvでAnacondaを利用

$ pyenv local anaconda3-x.x.x

なお、次のようなことをやろうとするとうまく行かなかった(ログを残せばよかった)

$ pyenv virtualenv anaconda3-x.x.x tensorflow
$ pyenv shell tensorflow
$ jupyter-notebook


# (この環境にはjupyter-notebookというコマンドが無いのでanaconda3-x.x.xを使ってね的なエラーメッセージ)

エラー内容

ここまで実行してもimport tensorflowが通らなかった

StackOverflowでも同じバグを踏んでいる人が居た

解決策

Githubでissueに解決策が書かれていた

他にもいくつか解決策が書かれていたけれど、結局これにしたがってmacOSのSIP (Security Integrity Protection) を切った

原因

Homebrewでインストールした場合、cudaは/Developer/NVIDIA/CUDA-8.0/にインストールされ、/usr/local/cudaにエイリアスが作成される

インストール先のディレクトリ/usr/local/cudaがmacOSでSIPにより保護されているため、pythonからアクセス出来ないのが原因

なので色々と対処方法は考えられるけれど、cuda, cuDNN, TensorFlowのアップデートの手間を考えてSIPを切った

Disclaimer

上記の内容はOSに備えられたセキュリティ機構を自らオフにしています

CentOSでselinuxをOffにするのと同様に、実行する場合は自己責任で実行ください

Reference

TensorFlow

cuda & cuDNN

pyenv

Jupyter

Dynamic Library周り

SIP無効化

5
0
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
0