ITPub博客

TensorFlow 1.9迎来优化版,详细性能更新干货分享!

翻译 机器学习 作者:刘美利 时间:2018-08-09 14:38:12 0 删除 编辑

英特尔®TensorFlow * 1.9优化版现在已经进入使用阶段。当TensorFlow建立在英特尔® MKL-DNN(用于深度神经网络的英特尔®数学内核库)时,一些人不愿意基于源代码编译TensorFlow,去提升CPU性能,而英特尔®TensorFlow * 1.9优化的这些二进制包就为这些人提供了方便。

除了支持英特尔®MKL-DNN之外,在生成二进制文件之前,以下补丁可用于源代码:

以下是详细的发布说明。二进制文件可作为 python whl packages和Docker containers使用。

Python* Packages (whls)

有三个可用的python packages:

Python packages配置

组态

链接

Python 2.7

https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp27-cp27mu-linux_x86_64.whl

Python 3.5

https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp35-cp35m-linux_x86_64.whl

Python 3.6

https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl


若要安装英特尔Tensorflow优化版,请运行下面的一个指令将wheel安装到现有的Python* installation中,最好是Intel® Distribution for Python*:

#Python 2.7

Pip install

https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp27-cp27mu-linux_x86_64.whl

#Pthon 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.cloud.google.com/intel-optimized-tensorflow/tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl

Docker Images

获取并运行容器

这些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 / 上转到您的浏览器 

可用的配置容器

可以使用以下标签/配置:

Docker容器配置

组态

标签

Python   2.7与jupyter和sample notebooks

latest

latest-mkl

1.9.0-mkl

Python   3.5与jupyter和sample notebooks

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

发行说明

这些发行说明仅适用于构建支持英特尔®MKL-DNN的TensorFlow时引入的更改。有关TensorFlow 1.9中引入的功能和修复,请参阅TensorFlow 1.9  发行说明

新功能和可用性改进

新功能

  • 使用MKL构建时更改了inter_op_parallelism_threads默认值,以避免线程过度订阅。

  • 添加了默认的OpenMP* OMP设置,在使用MKL内核时,这些设置可以提高性能。

  • 增加了查询CPUID的功能,以保证Intel 64位体系结构上每个物理内核上的超线程数量。

绩效改进

  • 将英特尔MKL-DNN升级至版本0.14。

  • 将KMP_BLOCKTIME 环境变量更改为0。

  • 增加默认的inter_op_parallelism_threads参数以避免过于保守。

  • 通过重用MKL-DNN原语来增强Conv2d 性能。

其他变化

  • 删除了已弃用的StringPiece 类的使用。

  • 更新了基于64字节对齐的tensorflow / compiler / aot测试

  • 更新了Tensor.Slice_Basic 以进行64字节对齐

  • 更新了ScopedAllocatorConcatOpTest.Reshape 以进行64字节对齐

Bug修复

  • 修复了MKL_ML 操作的注册问题。

  • 修复了BFCAllocator : Extend 对齐问题。

  • 修复了使用旧版本gcc时与MklConcat 相关的构建问题。

  • 修复了AVX512版本中的对齐崩溃问题。

  • 修复了convrnn 单元测试失败的问题。

  • 修复了   mkl_layout_pass_ 测试失败的问题

  • 修复了启用MKL-DNN构建时util_cuda_kernel_helper_test_gpu 失败的问题。

  • 修复了内存分配检查失败下的英特尔MKL-DNN单元测试问题。

  • 修复了// tensorflow / python / profiler:model_analyzer_test中的失败问题

  • 修复了在Mac上查找libhdfs.so 时的错误; Mac OS使用libhdfs.dylib。

  • 修复了不需要重新排序时mkl_input_conversion 操作中的错误。

  • 设置EIGEN_MAX_ALIGN_BYTES = 64 以防止在使用AVX512支持编制时执行单元测试期间发生崩溃。

  • 修复了单元测试single_machine_test.cc,因为启用了英特尔MKL-DNN时插入了特殊节点。

已知问题

  • TensorFlow 1.9分支后修复了以下问题:

  • 使用gcc6.3构建,在链接时未定义对'dladdr'的引用。

  • 使用英特尔MKL-DNN时,Concat-related ops在混合格式/布局中失败

  • MklConv2DWithBiasBackpropBias只可以在使用英特尔MKL-ML进行编译时注册。

 


请登录后发表评论 登录
全部评论

注册时间:2018-06-13

  • 博文量
    69
  • 访问量
    87981