LoginSignup
3
2

More than 3 years have passed since last update.

最新のCUDAでTensorflowを動かす(最終更新2018.4)

Last updated at Posted at 2018-04-11

私的メモです.
文調も自分に言い聞かせる感じです.
とある人に見せて欲しいといわれたので公開しています.


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
3
2
1

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
3
2