TensorFlow CPU環境 SSE/AVX/FMA 指令集編譯

TensorFlow CPU環境 SSE/AVX/FMA 指令集編譯

sess.run()出現如下Warning

# 通過pip install tensorflow 來安裝tf在 sess.run() 的時候可能會出現
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.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 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 FMA instructions, but these are available on your machine and could speed up CPU computations.

這說明你的machine支持這些指令集但是TensorFlow在編譯的時候並沒有加入這些指令集,需要手動編譯TensorFlow才能夠加入這些指令集。

# 1. 下載最新的 TensorFlow
$ git clone https://github.com/tensorflow/tensorflow

# 2. 安裝 bazel
# mac os 
$ brew install bazel

# ubuntu 
$ sudo apt-get update && sudo apt-get install bazel

# Windows
$ choco install bazel

# 3. Install TensorFlow Python dependencies
# 如果使用的是Anaconda這部可以跳過

# mac os
$ pip install six numpy wheel 
$ brew install coreutils # 安裝coreutils for cuda
$ sudo xcode-select -s /Applications/Xcode.app # set build tools

# ubuntu
sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel
sudo apt-get install libcupti-dev

# 4. 開始編譯TensorFlow

# 4.1 configure
$ cd tensorflow # cd to the top-level directory created
# configure 的時候要選擇一些東西是否支持,這裏建議都選N,不然後面會包錯,如果支持顯卡,就在cuda的時候選擇y
$ ./configure # configure

# 4.2 bazel build
# CUP-only 
$ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

# GPU support
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

# 5 安裝剛剛編譯好的pip 包
# 這裏安裝的時候官方文檔使用的是sudo命令,如果是個人電腦,不建議使用sudo, 直接pip即可。
$ pip install /tmp/tensorflow_pkg/tensorflow-{version}-none-any.whl

# 6 接下來就是驗證你是否已經安裝成功
$ python -c "import tensorflow as tf; print(tf.Session().run(tf.constant('Hello, TensorFlow')))"
# 然後你就會看到如下輸出
b'Hello, TensorFlow'

# 恭喜你,成功編譯了tensorflow,Warning也都解決了!

報錯解決

Do you wish to build TensorFlow with MKL support? [y/N] y
MKL support will be enabled for TensorFlow
Do you wish to download MKL LIB from the web? [Y/n] y
Darwin is unsupported yet
# 這裏MKL不支持Darwin(MAC),因此要選擇N

ERROR: /Users/***/Documents/tensorflow/tensorflow/core/BUILD:1331:1: C++ compilation of rule '//tensorflow/core:lib_hash_crc32c_accelerate_internal' failed: cc_wrapper.sh failed: error executing command external/local_config_cc/cc_wrapper.sh -U_FORTIFY_SOURCE -fstack-protector -Wall -Wthread-safety -Wself-assign -fcolor-diagnostics -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG ... (remaining 32 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
clang: error: no such file or directory: 'y'
clang: error: no such file or directory: 'y'

# 這裏是因爲在configure的時候有些包不支持但是選擇了y,因此記住一點所有的都選n

Reference

[1]: https://www.tensorflow.org/install/install_sources

發佈了34 篇原創文章 · 獲贊 29 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章