美文网首页Tools我爱编程
TensorFlow CPU环境 SSE/AVX/FMA 指令集

TensorFlow CPU环境 SSE/AVX/FMA 指令集

作者: iccccing | 来源:发表于2017-06-01 22:51 被阅读14422次

TensorFlow CPU环境 SSE/AVX/FMA 指令集编译

sess.run()出现如下Warning

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.

# 通过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在编译的时候并没有加入这些指令集,需要手动编译才能够介入这些指令集。

# 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

# 4.3生成whl文件
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

# 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

相关文章

网友评论

  • 拂_7eec:请问在windows10系统中,使用的pycharm运行时出现这种问题,上面的命令行不能执行怎么办?
    iccccing:# Windows
    $ choco install bazel
    其实都是一样的,区别就在于bazel的安装方式不同。下面是一篇windows安装bazel的说明,你可以看看
    https://docs.bazel.build/versions/master/install-windows.html
  • 20050710212:第3步,Anaconda可以跳过。那么第5步,Anaconda是不是需要到对应的虚拟环境中安装?
    iccccing:可以安装到虚拟环境,也可以安装到本地的环境,建议个人电脑,常用的话就安装到本地的环境中
    iccccing:到第五步就可以安装到本地的任何地方了
  • Mrs_凡小姐:求问~如果用的pycharm 这句应该怎么改呢
    $ sudo xcode-select -s /Applications/Xcode.app:flushed:
    Mrs_凡小姐:@JiaBoos 好的,谢谢~
    iccccing:$ sudo xcode-select -s /Applications/Xcode.app # set build tools
    这句话的功能是设置编译工具,如果是mac系统,只需要在命令行里输入这条命令,然后执行即可,和pycharm没有实际关系。
  • f00571aa8408:补充一点:
    $ sudo xcode-select -s /Application/Xcode.app # set build tools
    应该改为:
    $ sudo xcode-select -s /Applications/Xcode.app # set build tools
    吧。
    赫本iii:自动补全的习惯是运维具备的 别COPY就好哈哈
    f00571aa8408:@JiaBoos 其实谷歌官方文档这里也写错了……
    iccccing:是的,这个地方我少写了一个“s”,谢谢远哥指出!原文已修改!
  • f00571aa8408:请问如何查看自己电脑显卡是否受支持?
    iccccing:可以去 nvudia 官网查看,https://developer.nvidia.com/cuda-gpus,如果不支持可以直接使用CPU,一样会有所提速
  • iccccing:自己盖楼:smile:

本文标题:TensorFlow CPU环境 SSE/AVX/FMA 指令集

本文链接:https://www.haomeiwen.com/subject/mnkyfxtx.html