TensorFlow 1.9迎來優化版,詳細效能更新干貨分享!

劉美利發表於2018-08-09

英特爾®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進行編譯時註冊。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542119/viewspace-2199527/,如需轉載,請註明出處,否則將追究法律責任。

相關文章