Как проверить, что граф Tensorflow перезаписывает использование MKL?

Глядя на код Tensorflow, немного MKL оптимизация выполняется путем перезаписи графа с заменой наборов узлов объединенными функциями, использующими MKL. Я пытался искать перезаписи с помощью tf.logging.set_verbosity(1), но никогда не видел ожидаемые сообщения журнала.

Я собрал Tensorflow из исходников на процессоре с включенными MKL и XLA. Я думаю, что сборка использует MKL, потому что я могу использовать формат данных «NCHW» для tf.nn.conv2d и tf.nn.bias_add в прямом проходе, если они встречаются вместе. Он также работает быстрее и полностью использует процессор. Обратный проход через ошибки, говорящие, что «CPU BiasGradOp поддерживает только NHWC», хотя похоже, что существуют функции MKL для объединения Conv2D и BiasAdd как вперед, так и назад с «NCHW». Поэтому я хочу искать непосредственно переписывания.

Как я могу увидеть, происходит ли перезапись графика?


person user728291    schedule 03.07.2017    source источник


Ответы (4)


Один из способов — использовать функцию временной шкалы/трассировки. Вы можете следить за этим ответом StackOverflow. Если он использует MKL, вы увидите узлы с такими именами, как _MklReshape или _MklConv2D.

person Ariel    schedule 19.07.2017

Это не специальное тестирование перезаписи графа, но вы можете проверить, включен ли mkl в тензорном потоке, используя:

tf.python.pywrap_tensorflow.IsMklEnabled()

От: https://github.com/tensorflow/tensorflow/issues/17176#issuecomment-371364155

person sziem    schedule 26.08.2019
comment
в текущей версии команда изменена на такую: python -c import tensorflow; печать (tensorflow.pywrap_tensorflow.IsMklEnabled()) - person cn123h; 28.01.2020

В Tensorflow есть отладчик (tfdbg) с руководством здесь. Отладчик выводит список всех узлов графа, которые будут посещены session.run() перед его запуском.

Вы также можете исследовать входные тензоры, выходные тензоры и атрибуты каждого узла.

Ответ Ариэля также работает, чтобы увидеть типы операций, если вы не хотите тратить время на компиляцию с помощью tfdbg.

person user728291    schedule 31.07.2017

Для v2.0.0+ команда:

python -c "from tensorflow.python import pywrap_tensorflow; print(pywrap_tensorflow.IsMklEnabled())"

источник: https://software.intel.com/en-us/forums/intel-optimized-ai-frameworks/topic/837000

person adroste    schedule 05.06.2020