Не удалось связать MKL при сборке TensorFlow - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь собрать tenorflow v1.13 с MKL.Сборка выполнена успешно, пакет pip создан правильно, но когда я тестирую пакет, MKL явно не используется в конце, т.е. когда я запускаю в Python 3.6.8:

import tensorflow
print("Is MKL enabled?{}".format(tensorflow.pywrap_tensorflow.IsMklEnabled()))

Возвращается"False"

Я работаю на CentOS 7 в следующей среде conda:

# Name                    Version                   Build  Channel
blas                      1.0                         mkl  
ca-certificates           2019.1.23                     0  
certifi                   2018.1.18                py36_2    intel
cloog                     0.18.0                        0  
cython                    0.29.6           py36he6710b0_0  
gcc                       4.8.5                         7  
gmp                       6.1.2                h6c8ec71_1  
icc_rt                    2019.3                intel_199    intel
intel-openmp              2019.3                intel_199    intel
intelpython               2019.3                        0    intel
isl                       0.12.2                        0  
keras-applications        1.0.7                    pypi_0    pypi
keras-preprocessing       1.0.9                    pypi_0    pypi
libedit                   3.1.20181209         hc058e9b_0  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 8.2.0                hdf63c60_1  
libgfortran-ng            7.3.0                hdf63c60_0  
libstdcxx-ng              8.2.0                hdf63c60_1  
mkl                       2019.3                intel_199    intel
mkl-dnn                   0.14                          2    intel
mkl_fft                   1.0.11           py36h7b7c402_0    intel
mkl_random                1.0.2            py36h7b7c402_4    intel
mock                      2.0.0                    py36_0  
mpc                       1.0.3                hec55b23_5  
mpfr                      3.1.5                h11a74b3_2  
ncurses                   6.1                  he6710b0_1  
numpy                     1.16.2           py36h7e9f1db_0  
numpy-base                1.16.2           py36hde5b4d6_0  
openmp                    2018.0.3                intel_0    intel
openssl                   1.1.1b               h7b6447c_1  
pbr                       5.1.3                      py_0  
pip                       19.0.3                   py36_0  
python                    3.6.8                h0371630_0  
readline                  7.0                  h7b6447c_5  
setuptools                40.8.0                   py36_0  
six                       1.12.0                   py36_0  
sqlite                    3.27.2               h7b6447c_0  
tbb                       2019.4                intel_199    intel
tk                        8.6.8                hbc83047_0  
wheel                     0.33.1                   py36_0  
xz                        5.2.4                h14c3975_4  
zlib                      1.2.11               h7b6447c_3  

Bazel в версии 0.23.0 GCC в версии 7.3.1 (см. Ниже)

Я использую следующие командные строки для создания пакета tenorflow:

scl enable devtoolset-7 bash
bazel build --config=mkl --config=opt --copt=-march=x86-64 --copt=-mavx --copt=-msse4.1 --copt=-msse4.2 --copt=-O2 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Очевидно, что возникает много предупреждений, но ни одно из них не связано с MKL.Примечательно, что я использую GCC7 здесь.Я пробовал GCC4 и GCC5.Я использую Это не изменило проблему.Кто-нибудь знает, почему MKL не связан?

1 Ответ

0 голосов
/ 10 мая 2019

Так как версия tenorflow == 1.13 является последней версией, она может быть нестабильной (https://www.tensorflow.org/versions/)

. Она работала нормально, установив версию tenorflow == 1.11, используя следующие шаги.

git clone https://github.com/tensorflow/tensorflow 
cd tensorflow 
git checkout r1.11 
conda create -n <conda_environment_name> python=3.6
source activate <conda_environment_name> 
conda install numpy bazel  
conda install -c intel mkl-dnn  
conda install -c conda-forge keras-preprocessing

Сконфигурируйте сборку вашей системы, запустив следующую команду в корне дерева исходных текстов TensorFlow:

$./configure

Команда сборки bazel для поддержки Intel® MKL-DNN.

 bazel build --config=mkl -c opt //tensorflow/tools/pip_package:build_pip_package 

создайте каталог tfwheels для размещения файлов колес и выполните следующие команды

mkdir tfwheels 
bazel-bin/tensorflow/tools/pip_package/build_pip_package /home/<your_path>/tfwheels/tensorflow_pkg
pip install /home/<your_path>/tfweels/tensorflow_pkg/tensorflow-<version>-cp36-cp36m-linux_x86_64.whl

для версии tenorflow == 1,12 (аналогичные шаги)

см. https://software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide

Надеюсь, это поможет.

...