снижение производительности тензорного потока с Intel MKL - PullRequest
0 голосов
/ 25 октября 2018

Выполнение широкого, линейного и глубокого вывода модели с простым ванильным tf1.11, который поставляется с предварительно собранными изображениями глубокого обучения, версия M9 для графического процессора показывает гораздо лучшую производительность по сравнению с версией M10 (для вывода процессора)

M9:tf-latest-cu92

M10: tf-latest-cpu

В обоих изображениях версия tf составляет 1.11, и они предварительно собраны с оптимизированными двоичными файлами intel mkl.Я включаю подробное ведение журнала для инструкций MKL и на изображении M10 я вижу множество настроек, связанных с MKL

 KMP_AFFINITY=granularity=fine,verbose,compact,1,0
 KMP_BLOCKTIME=0
 KMP_SETTINGS=1
 OMP_NUM_THREADS=32

И ведение MKL инструкции с таймингами.на изображении M9 я не наблюдаю ничего подобного, даже если на обоих изображениях отображается информация о версии:

MKL_VERBOSE Intel(R) MKL 2019.0 Product build 20180829 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors, Lnx 2.20GHz lp64 intel_thread
MKL_VERBOSE SDOT(2,0x5622b7736500,1,0x5622b7736500,1) 2.54ms CNR:OFF Dyn:1 FastMM:1 TID:0  NThr:16
1.11.0

Я наблюдаю снижение производительности в 2-4 раза при использовании инструкций intel mkl, а не изображения M9.Примечание: несмотря на то, что изображение M9 предназначено для графических процессоров, я переключился на видимость устройства cuda и сравнивал только с процессором.То же самое наблюдение сделано на другом Linux-боксе с установкой pip из tf 1.11 в чистом virtualenv.

Любые идеи о том, как отладить или извлечь максимум из библиотеки intel mkl.

1 Ответ

0 голосов
/ 19 января 2019

Это поведение было исправлено в M16 + (с TF 1.12).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...