私的メモです.
文調も自分に言い聞かせる感じです.
とある人に見せて欲しいといわれたので公開しています.
mac対応の最新CuDNNはcuDNN v7.0.4 (Nov 13, 2017), for CUDA 9.0
らしい
https://developer.nvidia.com/rdp/cudnn-download
そこで今回インストールするものは
1. CUDA -> v9.0
2. cuDNN -> v7.04
としよう
ここからCUDA Toolkit 9.0 (Sept 2017)
をダウンロードしてインストール
https://developer.nvidia.com/cuda-toolkit-archive
ついでにシステム環境設定→CUDA→install Updateを実行
ここから(はじめにアクセスしたサイト)cuDNN v7.0.4 (Nov 13, 2017), for CUDA 9.0
をダウンロード
https://developer.nvidia.com/rdp/cudnn-download
展開先ディレクトリで
sudo mv cuda/include/* /usr/local/cuda/include/
sudo mv cuda/lib/* /usr/local/cuda/lib/
を実行
ここでCUDAが対応するClangのバージョンを確認する.
CUDA 9.1だとXcode8.3.3らしい.今回は9.0だけど9.0については記載ないし8.3.3でいってみよう
http://docs.nvidia.com/cuda/cuda-installation-guide-mac-os-x/index.html
ここからCommand_Line_Tools_Xcode_8.3をダウンロード&インストール
https://developer.apple.com/download/more/
clangのバージョンを上記でインストールしたところにするために
sudo xcode-select --switch /Library/Developer/CommandLineTools
を実行
Tensorflowのインストール
brew install bazel swig
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
そうしたらここを参考にしてみよう
1.
https://gist.github.com/smitshilu/53cf9ff0fd6cdb64cca69a7e2827ed0f
Remove all align(sizeof(T)) from following filesをやる
2.
https://medium.com/@mattias.arro/installing-tensorflow-1-2-from-sources-with-gpu-support-on-macos-4f2c5cab8186
TensorFlow 1.2 / 1.3 expects a C library called OpenMP......をやる
つまり記事中の↓をやる
I commented out line 98 of tensorflow/third_party/gpus/cuda/BUILD.tpl, which contained linkopts = [“-lgomp”]
3.
CPUのMAVX等々と絡めてコンパイル
./configure
bazel build --config=cuda --config=opt --copt=-mavx --copt=-mfma --copt=-mavx2 --copt=-msse4.1 --copt=-msse4.2 --action_env PATH --action_env LD_LIBRARY_PATH --action_env DYLD_LIBRARY_PATH //tensorflow/tools/pip_package:build_pip_package
最後にパッケージ化とインストール
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-0.8.0rc0-py2-none-any.whl
ちなみにこれは気にしなくてもいいみたい
確保できるようになるまで使用量を少しずつ減らして(0.9倍ずつして),確保できるよになるまで続けるみたい
2017-12-15 22:35:52.384597: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 11.88G (12755840000 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2017-12-15 22:35:52.384718: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 10.69G (11480255488 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2017-12-15 22:35:52.384815: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 9.62G (10332229632 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY