英特尔® Optimization for TensorFlow* 安装指南

TensorFlow* 是深度学习领域的一款主流机器学习框架,需要高效利用计算资源。为充分利用英特尔® 架构和实现最高性能,TensorFlow 框架已使用面向深度神经网络的英特尔® 数学核心函数库(英特尔® MKL-DNN)基元进行了优化,该工具是一种面向深度学习应用的流行性能库。

如需了解相关优化和性能数据的更多信息,请查看博文 现代英特尔® 架构上的 TensorFlow* 优化

Anaconda* 帮助人工智能社区在 TensorFlow 库中便捷实施高性能计算。从 TensorFlow v1.9, 开始,Anaconda 会继续使用面向深度神经网络的英特尔® 数学核心函数库(英特尔® MKL-DNN)基元构建 TensorFlow,以便为您的 CPU 提供最高性能。如果您目前使用 conda 软件包管理器管理环境和软件包,您只需在您的虚拟环境中安装 Anaconda.org 中的 TensorFlow 软件包。

此外,面向最新 TensorFlow* 版本 的英特尔® 优化作为 Python 2.7、3.5 和 3.6 的 Wheel 和 Docker 映像分发。

安装 Anaconda* Cloud 中的最新面向 TensorFlow* 的英特尔® 优化

TensorFlow* 版本:1.9

安装说明:

打开 Anaconda 提示,使用下列指令

conda install tensorflow

如果您的 anaconda 通道并非默认的最高优先级通道(或您对比并不确定),可使用以下命令获取具有英特尔优化的正确 TensorFlow

conda install -c anaconda tensorflow

除上述安装方法外,面向 TensorFlow 的英特尔优化还在英特尔通道上作为 wheel 和 docker 映像  及 conda 软件包分发。实施一项安装程序,获取英特尔优化的 TensorFlow。

安装英特尔通道中的最新面向 TensorFlow* 的英特尔® 优化

TensorFlow* 版本:1.9

安装说明:

打开 Anaconda 提示,使用下列指令。支持 Python 2.7 和 3.6。

conda install tensorflow -c intel

通过 PIP 在现有 Python* 环境中安装面向 TensorFlow* Wheel 的英特尔® 优化

支持 Linux* 操作系统

TensorFlow 版本:1.9.0

安装说明:

运行以下指令,在现有 Python* 环境中安装 wheel,首选 Python* 的英特尔® 分发版:

# Python 2.7
pip install https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp27-cp27mu-linux_x86_64.whl

# Python 3.5
pip install https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp35-cp35m-linux_x86_64.whl

# Python 3.6
pip install https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl

编辑时间 2018 年 8 月 7 日:Wheel 路径已更新至 1.9.0

AVX2 上 ISA 警告:

“TensorFlow 库并不使用 <指令集> 的指令,但它们可在您的机器上使用,帮助加速 CPU 计算。”

您可以忽略该警告,因为 TensorFlow 编译所用的英特尔 MKL-DNN 库利用了处理器中的最新指令集实施计算密集型操作。

旧 CPU 可能并不支持该版本的 TensorFlow,并可能导致“非法指令(核心转储)”错误。

在现有 Python* 环境中安装面向 TensorFlow* 的英特尔® 优化  Docker 映像 

获取并运行容器

这些 docker 映像全部发布在 http://hub.docker.com 的 intelaipg/intel-optimized-tensorflow 命名空间,可通过以下命令获取:

$ docker pull docker.io/intelaipg/intel-optimized-tensorflow:<tag>

例如,如需直接运行 python 2.7 数据科学容器,只需

$ docker run -it -p 8888:8888 intelaipg/intel-optimized-tensorflow

然后转向您的浏览器 http://localhost:8888/

Available Container Configurations 

下列标记/配置可用:

Docker 容器配置
配置Tags
具有 jupyter 的 Python 2.7 和示例笔记本电脑

latest

latest-mkl

1.9.0-mkl

Python 3.5 支持 jupyter 和示例笔记本电脑

latest-py3

latest-mkl-py3

1.9.0-mkl-py3

Python 2.7 支持 TensorFlow 开发工具链

latest-devel

latest-devel-mkl

1.9.0-devel-mkl

Python 2.7 支持 TensorFlow 开发工具链

latest-devel-py3

latest-devel-mkl-py3

1.9.0-devel-mkl-py3

如需获取英特尔优化 TensorFlow 的最新版本说明,请参考文章

借助英特尔® MKL 使用源代码构建 TensorFlow

不推荐使用源代码构建 TensorFlow。然而,如果上述指令因为 ISA 不受支持而无法运行,您随时可使用源代码进行构建。

使用源代码构建 TensorFlow 需要安装 Bazel,相关信息请参考 安装 Bazel

安装说明:

  1. 运行 TensorFlow 源代码目录中的 "./configure
  2. 执行以下命令创建 pip 程序包,以安装经过优化的 TensorFlow build。
    • 可更改PATH,使其指向特定 GCC 编译器版本:
      export PATH=/PATH//bin:$PATH
      
    • LD_LIBRARY_PATH 还支持全新:
      export LD_LIBRARY_PATH=/PATH//lib64:$LD_LIBRARY_PATH
      
    • 对标记进行相应设置,以使用英特尔® 数学核心函数库(英特尔® MLK)构建 TensorFlow,并传递您希望用于编译库的合适指令集: 

通过以下命令设置的标记将添加 AVX、AVX2 和 AVX512 指令,以便在您使用旧 CPU 时显示“非法指令”错误。如果您希望在旧 CPU 上进行构建,请对指令标记进行相应设置

bazel build --config=mkl -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mavx512f --copt=-mavx512pf --copt=-mavx512cd --copt=-mavx512er //tensorflow/tools/pip_package:build_pip_package

        3.安装优化的 TensorFlow wheel

     bazel-bin/tensorflow/tools/pip_package/build_pip_package ~/path_to_save_wheel
     pip install --upgrade --user ~/path_to_save_wheel /<wheel_name.whl>

归档 Wheel

Version

Wheels(2.7, 3.5, 3.6)

1.6

https://anaconda.org/intel/tensorflow/1.6.0/download/tensorflow-1.6.0-cp27-cp27mu-linux_x86_64.whl

(or)

*/tensorflow-1.6.0-cp35-cp35mu-linux_x86_64.whl

(or)

*/tensorflow-1.6.0-cp36-cp36mu-linux_x86_64.whl

有关编译器优化的更完整信息,请参阅优化通知